Skip to content

Latest commit

History

History
108 lines (105 loc) 路 49.4 KB

story-points.md

File metadata and controls

108 lines (105 loc) 路 49.4 KB

Story Point Estimates

Complexity estimates for each User Story, with justifications

View user stories with acceptance criteria here

Story Number Story Story Point Estimate Reasoning
TSV-A001 As a user I should be able to view the solution in my browser simply by visiting a URL 1 A hosting solution and URL will be set up in sprint zero. After which files will just need to be updated via ftp.
TSV-A002 As a user I should have fast loading times or be displayed with a loading graphic 3 For each load there needs to be a label with the type, if it less than 1 second there is no need for a loading graphic, anything longer there will need to be a suitable screen developed.
TSV-A003 As a user I should be able to easily switch between different parts of the application 3 The application will be set up as a single page application, but only load data when requested.
TSV-A004 As a user I should find the user interface clear and simple to look at 2 The material design standard will be followed throughout.
TSV-B005 As a user I should be able to view the map 2 The application should allow for the map to meet all the points outlined in the acceptance criteria
TSV-B006 As a user I should be able to pan (move the map with pointing device) and zoom (with both control buttons and hardware such as mouse wheel) 1 This functionality should be built into Google Maps, so will just need to be configured.
TSV-B007 As a user I should be able to search for a specific location 5 The will require integration with the Places API, and an AJAX search as well as the creation and implementation of a suitable autocomplete. A further challenge would be to get this running so fast it appears instant.
TSV-B008 As a user I should find the map clear and neat to look at 2 A custom theme will be written and applied to the map.
TSV-C009 As a user I should be able to see the heat map over the top of the standard map 13 The heat map will need to be created and then configured and displayed.
TSV-C010 As a user I should be able to toggle the display of the heat map to show and hide it 3 A suitable switch will need to be developed and implemented and then bound to the map.
TSV-C011 As a user I should be able to adjust the opacity of the heat map with a simple slider 3 Again a suitable slider control will need to ne implemented and should affect the configuration of the heat map
TSV-C012 As a system I should bind data to the heat map 5 The data will need to be in the right structure, and the heat map will need to be expecting that structure.
TSV-C013 As a system I should be able to bind additional data to the map to update it after the initial heat map has already been rendered 5 A potential challenge here will be updating the UI after
TSV-C014 As a user I should find the colors of the heat map clearly represent the data it is displaying 2 Suitable colors will be applied following the acceptance criteria. One potential challenge is defining the colors between, as they may look less clear
TSV-D015 As a system I should be able to identify weather a string is positive, neutral or negative overall 5 An AI API will be used so it will need to be configured, tested and integrated.
TSV-D016 As a system I should be able to identify weather the attitude towards a certain specified topic is positive, neutral or negative 5 This will most likely be a different API, and will also need to be configured, tested and integrated in a similar way.
TSV-D017 As a system I should be able to give a confidence estimate showing how likely it is that the sentiment value is accurate 2 Once the API is configured this should be reasonably strait forward to calculate.
TSV-D018 As a system I should be able to return emotion analysis results for a given string 5 This will involve another call to a API with certain parameters in order to determine which emotions are conveyed
TSV-D019 As a system the load time for fetching results should be sufficiently fast 3 This will require efficient algorithms, async tasks and a minimum amount of network calls.
TSV-D020 As a system I should give a suitable response and error code if no result is available 2 This will involve checking numerous conditions, so is not a simple if statement, that is why the point estimate is 2 rather than 1.
TSV-E021 As a system I should be able to fetch a specified number of Tweets from around a given location from the Twitter API 5 Work will also need to be done to process the location data into the correct format.
TSV-E022 As a system I should be able to fetch a specified number of Tweets talking about a specific topic, hashtag or keyword from the Twitter API 3 This will be done in a similar way to fetching the location Tweets, but with keyword rather than location.
TSV-E023 As a system I should have reasonable response times in fetching Tweets from the Twitter API 2 If all the algorithms are efficient, and minimum number of network calls then this will be quite strait forward or determined by the Twitter API.
TSV-E024 As a system I should respond with a suitable error if there is a problem fetching Tweets from the Twitter API 2 There are several different types of error, all conditions will need to be tested and appropriate display to the user.
TSV-E025 As a system I should be able to create a series of Tweet objects ready for the next stage 1 This should be a fairly straight-forward task.
TSV-F026 As a user I should be able to see the heat map bound to data to display results 3 Providing the heat map was correctly set up, and the data is in the right structure there shouldn鈥檛 be anything too complex here, however data will be coming in after the initial UI has rendered so this needs to be considered.
TSV-F027 As a user I should be able to see search for a keyword and location to see the heat map for just that topic 13 There are several challenges this story may give. Firstly a new bunch of network requests will need to be sent off and be processed, and then the rendered map will need to be re-rendered without page load. If the map is for a specific location zoom will need to be set as well.
TSV-F028 As a user I should be able to hover over specific areas of interest and see what is trending or causing that particular heat patch 13 A hover listener will need to be configured. Also suitable UI components developed and implemented. Most importantly an algorithm determining what is actually causing those heat patches needs to be developed.
TSV-F029 As a system I should be displaying data both from the database and live from Tweets 5 This sounds simple enough, although it does mean the UI will need to update when more data is available on the network without a page refresh.
TSV-F030 As a system I should be able to load fast and display suitable loading graphic when loading times are more than 1 second 2 Algorithms must be efficient, with minimum network calls, and fully asyncrynous where possible. The loading graphic can just be a simple gif or a css animation.
TSV-G031 As a system I should be able to write to the database asyncrously 3 The best solution may be to use a pre-written package such as Q as it facilitate the 4 main type of async call required for this story.
TSV-G032 As a system I should be able to read from the database asyncrously 2 This should be slightly less complex as the previous story as it is just reading and the data can be pulled down in any order.
TSV-G033 As a system I should be able to query the database for just relevant Tweets 2 In MongoDb this is very easy, just pass in the query in the form of JSON parameters. It does however mean that all data must be in the correct structure.
TSV-G034 As a system I should delete the oldest entries when there reaches a certain number of records 2 Each record will also have a timestamp, and it is simple to count records, so will not be complex to sort by timestamp then remove the appropriate number.
TSV-G035 As a system I should be able to check and make safe data before inserting 1 A function will be written which does everything outlined in the acceptance criteria, it will then just be called to for every record that is going to be inserted.
TSV-G036 As a system I should use both the cached and live data in conjunction or depending on user selection 2 All the challenges faced in this story will have been covered on previous stories.
TSV-H037 As a user I should find the start page clear and concise 2 This will need to be worked on across several sprints, but shouldn鈥檛 pose as too much of a problem technically
TSV-H038 As a user I can make a search directly from the home page 1 Just a simple form
TSV-H039 As a user I can navigate to any other part of the application directly from the home screen 1 These will just be links. However they will need to be clear and contain a graphic. They should also be generated dynamically for code reuse.
TSV-I040 As a user I should be able to get an immediate overview of results of sentiment by location 3 A D3 regional map will need to be developed. This shouldn鈥檛 be too challenging given the available resources
TSV-I041 As a user I should be able search for a specific search term, on the regional map screen 1 Simple form redirecting to the sub-route which fetches tweets from a different source, but all frontend code will remain the same
TSV-I042 As a user I should be able to see a list of most positive and negative regions 2 The algorithm which calculates this will need to be very efficient, and results should be displayed clearly
TSV-J043 As a user I should be able see what is currently trending worldwide 8 Several steps, to this, must be async
TSV-J044 As a user I should be able to enter a custom location to view local trends 5 Again, many steps, including a place-lookup. Must be asyncronus
TSV-J045 As a user I can click a trend to find out more 1 Reasonable straitforward to make an SVG component clickable
TSV-J046 As a user I can view trends visually, to get an overview of volume and sentiment 3 D3 bubble chart will need to be developed from scratch
TSV-K047 As a user I should be able to read the plain text tweets relating to a chosen topic/ word 3 Nothing particularly complex here, except managing high volumes of textual data
TSV-K048 As a user I should be able to quickly pick out the key information while reading 2 A script will be written using the remove-words module to highlight keywords in bold
TSV-K049 As a user I should see new tweets come in in real-time 3 Real-time functionality for high volumes of data will need to be efficient
TSV-L050 As a user I can see a word cloud after entering my search term 5 Rendering of word cloud positioning may pose as a challenge
TSV-L051 As a user I can see a text list of the top words used in positive and negative tweets 5 Algorithm will need to sort words from a very large set of tweets
TSV-M052 As a user I can view the scatter plot for a given search term/ keyword 3 Same backend as word cloud
TSV-M053 As a user I can hover over a point to view the associated key word 1 Simple D3 function
TSV-N054 As a user I can interact with the globe 2 Following the globe guide, this shouldn鈥檛 be too complex
TSV-N055 As a user I can see sentiment for each location (that has Twitter) on the globe 5 Will need to render bars onto globe after initial lode
TSV-N056 As a user I can view statistics of the data shown on the globe 2 Should be similar to that of the map
TSV-O057 As a user I can see both positive and negative sentiment over the past 24 hours on the timeline 3 Once timeline is rendered this should be simple
TSV-NO58 As a user I can interact with the timeline and the axis 2 Since only simple interaction is required it should be fine
TSV-P059 As a user I can enter between one and four search terms to compare 1 Simple form, with dynamically adding fields
TSV-P060 As a user I can see the overall sentiment for each of my search terms 2 Straightforward to calculate and display. Will need to be done for each topic
TSV-P061 As a user I can see most commonly used words and their sentiment for each topic 3 Similar to that of the word cloud, but for each topic, and in a linear way
TSV-P062 As a user I can view links to the other data visualisations for each of the topics 2 Similar to that of the homepage
TSV-Q063 As a user I can view a summary of the key tones identified for a topic 8 High level of complexity compared with sentiment results
TSV-Q064 As a user I can see a more detailed breakdown in the form of a segmented radar chart 5 Radar chart will need to be interactive, and nested circles may get complex
TSV-R065 As a user I can view the key entities extracted from a set of tweets 13 Again much more complex than sentiment results. Also additional resources (like Wikipedia needs to be requested)
TSV-R066 As a user I can see what volume of each entity and category visually on a Sankey chart 5 Sankey chart will need to be interactive and correctly scaled
TSV-S067 As a user I can make a search 2 Simple but crucial so various potential complexities will be considered
TSV-S068 As a user I can get a quick overview of the average sentiment of my topic 3 Simple summary
TSV-S069 As a user I can see which keywords are most commonly used in the twitter results 3 Needs to be calculated efficiently and displayed clearly
TSV-S070 As a user I can see a summary of the tones identified 2 Just summary from tone route
TSV-S071 As a user I can see a summary of the entities extracted 2 Just summary from the entity route
TSV-S072 As a user I can see how my topic compares to the rest of Twitter 8 Will need to quickly calculate sample for the rest of Twitter
TSV-S073 As a user I can read a set of tweets relating to my topic 2 Just a sub extract from the raw tweet page
TSV-S074 As a user I can view more results for my search term on each data visualisation 1 Just links, with custom search term
TSV-T075 As a development environment I should compile CoffeeScript into JavaScript 2 Gulp task
TSV-T076 As a development environment I should compile LESS/ SASS into CSS 2 Gulp task
TSV-T077 As a development environment I should check HTML/ Jade for missing entities 2 Gulp task
TSV-T078 As a development environment I should prepare graphics from source to their web form 2 Gulp task
TSV-T079 As a development environment I should remove obsolete files 2 Gulp task
TSV-T080 As a development environment I should bundle browser scripts 3 Gulp task using Browserify
TSV-T081 As a development environment I should check code (where possible) for errors /bad style 2 Gulp task
TSV-T082 As a development environment I should watch for changes in source files and then recompile the appropriate files 2 Gulp watch task
TSV-T083 As a development environment I should keep multiple development browsers across various devices in sync for seamless compatibility testing 2 Gulp task with Browser-Sync
TSV-T084 As a development environment I should run unit tests and output results 3 Should also include all other tests
TSV-U085 As a test environment I should run unit tests 2 Can be done through the Gulp test task above
TSV-U086 As a test environment I should have integration tests 2 Once configured, very simple and fully automated
TSV-U087 As a test environment I should be able to stub data as to not make external data requests 3 Using Sinnon.js which will require upskilling
TSV-U088 As a test environment I should use assertions for the unit tests 2 With Chai. Goes without saying that assertions are required
TSV-U089 As a test environment I should show coverage test results 2 And needs to generate HTML report. Will use Istanbul
TSV-U090 As a test environment I should check dependencies are up-to-date 1 Very simple with once David-DM is configured
TSV-U091 As a test environment I should check code quality with automated code reviews 1 Again, easy with Codeacy
TSV-U092 As a test environment I should do headless browser testing and HTTP service testing 3 SuperTest is less straightforward
TSV-V093 As a developer I should be able to get a continuous stream of chunked tweets 21 A large backend task
TSV-V094 As a developer, the streamed tweets should be formatted and safe 5 Needs to be efficient as large volume of data
TSV-W095 As a developer I should be able to extract an array of keywords from a string 13 Efficiency again is key
TSV-W096 As a developer, I should be able to customise the deletion word set 3 Reasonably simple, but will need verifying
TSV-X097 As a developer I can get a valid latitude and longitude for any fuzzy place name 13 Will use Google API鈥檚 and own scripts
TSV-X098 As a developer I can get the country code in multiple forms from latitude and longitude 13 Trigonometry
TSV-X099 As a developer I can get location of geo-tagged tweets from their ID鈥檚 8 Uses Twitter API
TSV-Z100 As a system I am super-efficient (and totally awesome)