Skip to content

Iteration 2 Plan

Pakorn Laohakanniyom edited this page Sep 13, 2022 · 3 revisions

Goal

The KU polls has more functionality features such as the home button, end date for polls. Improve webpage navigation and layout. Exclude sensitive configuration by externalize configuration.

Features

  1. Each poll question has a expiration date (end date) and no voting allowed after the end date.
  2. A visitor can view result without voting.
  3. A visitor can return to polls list screen from any page.
  4. If A visitor goes to the base URL redirect them to the index page.
  5. A visitor Can't vote after the poll is end or unpublished.
  6. Separate configuration data from code for more security.

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.

Tasks

All tasks should be recorded on Task Board for Iteration 2.

  1. Update Question model.
    • add end_date attribute that is the ending date for voting.
    • add is_published method to check current date is on or after question’s publication date.
    • add can_vote method to check voting is allowed for this question.
  2. Write unit tests to test new features.
  3. Redirect detail page when voting is not allowed and if someone goes to the base URL redirect to index page.
  4. Improve the appearance.
  5. Externalize configuration.

Acceptance Criteria

  1. Unable to vote unavailable polls.
  2. User can see the result without voting.
  3. User can see the result after polls end.
  4. Application passes all unit tests.
  5. All navigation links work correctly.
  6. User interface is easier to use

Retrospective

What went well

successfully implemented with all the requirements. User interface improved from the iteration 1. Redirects are offered at appropriate places to improve site navigation.

What didn't go well

As I'm not good at writing HTML, it makes the code look messy and there may be some mistake on web pages.

What did I learn

I have learn more a lot of Django, html, and CSS (how to redirect, template language for Django).

What to improve

  • Study more about HTML
  • Learn more about templating on Django