Giter Club home page Giter Club logo

poll-party's Introduction

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

poll-party's People

Contributors

jyih avatar

Stargazers

 avatar Sharon Fang avatar Brandon Simpson avatar

Watchers

 avatar

poll-party's Issues

Monday Review

Monday Review

  • Style Everything
  • Add navbar

Splash

  • Create a splash page that unauthorized users are redirected to if they aren't logging in or signing up
  • add about me links

Auth

Login

  • Style
  • Change login error so that you don't give any clues. Nothing like "user doesn't exist" or "password is wrong." That tells people too much. Instead. Just give one error if something is wrong with login: "incorrect login credentials" or something like that.

Signup

  • Style
  • Add error messages for email not email
  • Add error message for username too short

Polls

  • Style
  • Have a page with All polls linking to the poll
  • Do you want users to be able to vote multiple times?
  • Your delete button says "Delete Post" not "Poll"
  • When I navigate to create poll from Editing a poll, the create form is populated with the edit. Make sure to clear component state if you are reusing those components!

Votes

  • Style

Style note

On the poll forms, most of the buttons are a very light grey that puts me in mind of something I can't click yet, or at all. You might want to make the text or background of the button a more striking colour.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.