Awesome Open Source
Awesome Open Source


Daniel Deutsch / Github / LinkedIn / CodePen / Medium / Hashnode / E-Mail

FreeCodeCamp Dynamic Web Application Projects:

Build A Voting App

Travis CI Heroku Code Climate Dependency Status


See live on Heroku

(Keep in mind that I am using the free tier version on Heroku, which can shut down when traffic is too high in a certain time period)

Built with the MERN stack

MongoDB Express React NodeJS
mdb mdb mdb mdb
a free and open-source cross-platform document-oriented database program Fast, unopinionated, minimalist web framework for node. a JavaScript library for building user interfaces a JavaScript runtime built on Chrome's V8 JavaScript engine


a CSS Framework based on material design.

Photo credit

User stories:

  • [X] As an authenticated user, I can keep my polls and come back later to access them.
  • [X] As an authenticated user, I can share my polls with my friends.
  • [X] As an authenticated user, I can see the aggregate results of my polls.
  • [X] As an authenticated user, I can delete polls that I decide I don't want anymore.
  • [X] As an authenticated user, I can create a poll with any number of possible items.
  • [X] As an unauthenticated or authenticated user, I can see and vote on everyone's polls.
  • [X] As an unauthenticated or authenticated user, I can see the results of polls in chart form. (This could be implemented using Chart.js or Google Charts.)
  • [X] As an authenticated user, if I don't like the options on a poll, I can create a new option.

A FreeCodeCamp Challenge

Build a Voting App

Issues / Bugs / Further features

There are already issues open! Feel free to add feedback: GitHub issues

Frameworks / Libraries

Name Description Used
React Fast, composable client-side components. Frontend
Redux Enforces unidirectional data flows and immutable, hot reloadable store. Supports time-travel debugging. Frontend
React Router A complete routing library for React Frontend
React Google Charts A React Google Charts Wrapper Frontend
Axios Promise based HTTP client for the browser and node.js Frontend
MaterializeCSS A a CSS Framework based on material design. Frontend
Express For creating the backend logic Backend
Mongoose To work faster with MongoDB Backend
Passport For simplified authentication in Node.js Backend
Babel Compiles ES6 into ES5 General
Webpack Bundles npm packages and our JS into a single file. General
ESLint Lint JS. Reports syntax and style issues. General

forthebadge forthebadge forthebadge

Related Awesome Lists
Top Programming Languages
Top Projects

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
Javascript (1,059,739
Reactjs (162,408
User (47,307
Mongodb (29,785
Redux (27,903
Webpack (23,630
Heroku (19,121
Chart (13,528
Eslint (8,287
Babel (8,002
Mongoose (6,824
Vote (4,481
Passport (4,213
Voting (2,960
Poll (2,606
Create React App (2,081
Mern Stack (864
Materializecss (673
Mern (402
Google Charts (300
Freecodecamp (284