/poll-party

Primary LanguagePython

Poll Party

Poll Party is a full stack web application that allows logged in users to create public polls where other logged in users of the website are able to cast their votes. Poll Party was created as a solution for audience engagement, interactive meetings, and scaled feedback. Use Poll Party for fun quizzes, collect thoughts and opinions, and to show your audience you are listening by allowing them to ask questions and receive answers from other users.

Table of Contents
1. Features and Site Walkthrough
2. Installation
3. Future Features
4. Contact
5. Special Thanks

Technologies


Features and Site Walkthrough

Landing Page, Log In, and Sign Up

The landing page allows users to access login, sign up, or use a Demo account to check out the app and includes a quick breakdown of the app's main features:

  1. Create poll questions
  2. Add custom voting options
  3. Vote on each other's polls

Navigation: Users, All Polls, and Users's Polls

Once logged in, users can explore the user's own polls, other users and their polls, and create new polls via the navigation bar. Welcome Page

Creating a Poll

Poll creation is quick and straightforward. Only a question and at least two answer options are needed. Users can enter as many answer options as they'd like. Create Poll

Voting

After creating a poll or clicking a poll link, users are directed to the voting page where they may select one option to vote on or proceed directly to the results page. If the poll belongs to the user, the user is presented an option to edit the poll. If the user has previously voted on the poll, then the voting form is populated with the user's previous selection. Users may also return to this page to change their vote. Vote

Editing a Poll

The edit button opens the poll editing form where users can edit the poll title and answer options. Users may also add additional options or delete the poll entirely. Edit Poll

Poll Results

The results page displays the vote % and count for each answer option. If the user has previously voted on the poll, then a blue check will mark the user's selection.
Results


Installation

To build/run project locally, please follow these steps:

  1. Clone this repository
git clone https://github.com/jyih/poll-party.git
  1. Install Pipfile dependencies and create the virtual environment
pipenv install
  1. Install npm dependencies for the /react-app
cd react-app
npm install
  1. In the / root directory, create a .env based on the .env.example with proper settings

  2. Setup your PostgreSQL user, password and database and ensure it matches your .env file

  3. Before running any flask commands, confirm you are in the pipenv virtual env. If not, run the command:

pipenv shell
  1. If needed, in the root folder, generate an updated migration for the database by running in the terminal:
flask db migrate -m "<enter migration message>"
  1. Apply the latest migration to the database by running in the terminal:
flask db upgrade
  1. In the root folder, seed the database by running in the terminal:
flask seed all
  1. Start the flask backend in the / root directory
flask run
  1. Start the frontend in the /react-app directory
npm start

Future Features

  1. Search - search by poll title

  2. Vote Results Graph - bar chart representation of vote %


Contact

Johnathan Yih


Special Thanks