Development Plan - GToidZ/ku-polls GitHub Wiki
The application development takes 3 weeks. Implementation of application splits into an iteration per week, resulting in 3 iterations.
Timeline
Iteration |
Features |
1 |
Display a list of polls in homepage. |
|
Users can select and interact with a poll choice. Casting a vote counts the score to the poll. |
|
Users can see total vote count on each poll. |
|
Users can see vote count for each choices on a poll. |
|
A poll has a publication date and will be visible on or after publication date. |
|
Administrator can create, edit and delete polls. |
|
Navigation: user can return to polls list screen from any page or view results w/o voting. |
2 |
A Poll has an end date. No voting allowed after the end date. |
|
Question has methods for is_published and can_vote with unit tests. |
|
Navigation: user can go directly to poll results page from the polls index. |
|
If user enters URL of a poll not yet published then redirect him to polls list page. |
|
Separate sensitive configuration data from code. |
|
Improve formatting of poll detail and poll results page. |
3 |
User must authenticate (login) in order to vote. |
|
Unauthenticated users cannot vote, and poll detail page has a link to login page. |
|
Each user has only one vote per poll question. |
|
A user can change his previous vote while a poll is open. |
|
Provide instructions for installing and running application. |
... |
Provide sample data for polls, and instructions how to import it. |
|
Automate running of unit tests. |
|
Add code coverage to measure how well unit tests cover our code. |
Weekly Timeframe (if possible)
|
Day 1 |
Day 2 |
Day 3 |
Day 4 |
Day 5 |
Day 6 |
Day 7 |
Implementation |
x |
x |
x |
x |
|
|
|
Bug Fixing |
|
|
|
x |
x |
|
|
Code Styling |
|
|
|
|
|
x |
|
Retrospective |
|
|
|
|
|
|
x |
Software Process
- Iterative and Incremental Development with 1-week long iterations.
- Using Project Board to show and update statuses for tasks.
- Github Flow to manage development with branches and PRs.
- Unit testing and code review after implementation.
- Retrospective at the end of the week.
Tech & Tools
- Python, as the main programming language.
- Django, web framework based on Python.
- Git, a source version control tool.
- GitHub for hosting the source repository and issue tracking.
- GitHub Actions for CI/CD.
- GitHub Wiki for hosting documentation.
- GitHub Projects for backlog and task management.
- Visual Studio Code as the main text editor.
- Neovim as a fallback text editor.