This is a full-stack Voting App using React, Redux, ExpressJS and MongoDB. It implemented functions related to data visualization and authentication.
The objective and functions of the project are set by Build a Voting App | freeCodeCamp.
It has been deployed on AWS Ubuntu Server and Heroku.
Heroku: https://cryptic-stream-11764.herokuapp.com
AWS: (Exceeds Free Tier)
There are 1260 lines of JavaScript code in the project.
-
User Story: As an authenticated user, I can keep my polls and come back later to access them.
-
User Story: As an authenticated user, I can delete polls that I decide I don't want anymore.
-
User Story: As an authenticated user, I can create a poll with any number of possible items.
-
User Story: As an authenticated user, I can see the aggregate results of my polls.
-
User Story: As an unauthenticated or authenticated user, I can share my polls with my friends on Twitter.
-
User Story: As an unauthenticated or authenticated user, I can see and vote on everyone's polls.
-
User Story: As an unauthenticated or authenticated user, I can see the results of polls in chart form.
-
User Story: As an unauthenticated or authenticated user, if I don't like the options on a poll, I can create a new option.
-
Additional Story: Every IP address can only vote once a poll.
-
Additional Story: There is a flashmessage when you successfully fire an action.
-
Additional Story: There is validation of data when you sign up or login.
-
JavaScript with ES2015 syntax
-
React, react-router-v4, Redux, redux-thunk
-
NodeJS, ExpressJS, REST API
-
MongoDB, Mongoose, MongoLAB
-
Data visualization, Chart.js
-
Authentication, JWT, Validation
-
Public IP address check, yarn
-
Production environment and deployment to AWS Ubuntu Server and Heroku
-
Bootstrap 4, CSS
Clone this repo:
$ git clone https://github.com/hongkuancn/fccproj-votingapp
Install yarn globally:
$ npm install yarn -g
Open the folder:
$ cd fccproj-votingapp
Install all dependancies:
$ yarn
Start the app:
$ yarn start
The app will be automatically in your browser at http://localhost:3000/.
Hongkuan Wang