Iteration 2 Plan - Siripa-Maneein/ku-polls GitHub Wiki

Goal

The goal of this iteration is to add an end date to a question, improve page layout and navigation, allow user to view the result without voting, and externalize the secret data for security.

Features

  1. A question has an end date that voting is not allowed after that date, and can be null to allow voting forever.
  2. User can return to polls list screen from any page.
  3. User can go directly to poll results page from the polls index.
  4. Display voting results in tabular format.
  5. If user enters URL of a poll not yet published or not allowed voting, then redirect him to polls list page and show an error message.
  6. If user enters the base URL, he will be redirected to the index page.
  7. Externalize sensitive configuration data from code.
  8. Accept only one vote (Remove vote again link).

Milestone

  • Ending date of a poll is enforced.
  • User can easily return to polls list from any page. Does not need to use browser "Back" button.
  • If a URL of unpublished poll is entered, user is redirected to polls list page.

Acceptance Criteria

  1. All code is worked in iteration2 branch and merged into main.
  2. Visitor can not vote after the end date has passed.
  3. There are unit tests for voting in each time period(e.g. before published/published/after end date).
  4. Visitors can navigate between pages within links in the application.
  5. Visitors are redirected to the index page from base URL.
  6. Visitors are redirected to the index page showing error message from the detail page when voting is not allowed.
  7. Visitors can view results without voting.
  8. Voting results are shown in tabular format.
  9. Visitors can vote only one time.
  10. Any sensitive data is externalized.
  11. The code passed all test cases.

Retrospective Summary

  • Iteration 2

What went right:
I divided the work into small tasks and add them to the project board. When I can think of a new one, I also added them right away, so I didn't forget to do them. In this iteration, I work for a small part at a time, and I found that it is more effective than doing the bigger part at one time.

What went wrong:
The time spent for some tasks is longer than what I expected.

What can be improved:
Try estimating time more accurately.