The Poll Project Assignment

Your main assignment will be this poll assignment project. You are expected to work as a team on this project.

Every couple of weeks, I will specify some requirements that you need to complete before the due date and submit through GitHub.

The details here will give you a general idea of what the project is incase you want to get an early start on working on the project. I will also be providing some tip here as we progress.

Users

  • User: Person who posts polls.
  • Respondant: Person who responds to polls and view results

Requirements

  • User can post a poll questions.
  • Poll question can be active or inactive
  • Poll question will have title, question, active_until date, and responses.
  • User can create/edit/delete Poll questions using Admin interface
  • Website will show a list of active polls with a summary showing number of respondents.
  • Website will show a list of inactive polls with a summary showing number of respondents.
  • Poll is considered inactive if explicitly set to inactive or if active_until date has passed.
  • Respondents can view poll results for active or inactive polls
  • Respondents can only respond to active polls otherwise the poll is disabled with message showing that poll is inactive
  • Response options are only multiple choice.
  • Respondents can provide their names or remain anonymous
  • Time of response will be recorded for every response.
  • Poll results can be viewed as numeric counts, bar chart, or pie chart.

ER-Diagram

The ER-Diagram describes the data requirements and will be used for constructing the project’s data models in models.py. The blog data model is currently very simple and contains a single entity:

erDiagram
    Poll ||--o{ Option : Has
    Option || --o{ Response : Has

    Poll {
        string title
        string question
        datetime active_until
        int status 
    }
    
    Option {
        string title
    }

    Response {
        string name
        datetime response_time
    }