Fastpoll is a web app that allows users to create real-time polls. Fastpoll utilizes
- A React based frontend that allows users to create polls and vote on them. Voting updates in real-time using Pusher, allowing you to see incoming results. Developed using Create React App, React Router, React Hooks, Emotion styling and GSAP.
- Client unit testing using Jest and react-testing-library
- A backend service that implements a REST API for creating polls, retrieving them and voting on them, using Express for routing + REST requests and Sequelize as an ORM
- Server unit testing using Mocha, Chai, Sinon, and Sequelize Test Helpers
- Run
npm install
in project root. - Run
npm install
inclient
folder. - Create a
.env
file in project root to setDATABASE_URL
(mysql://
format),PORT
for sever (recommend 4000) andPUSHER_APP_ID
,PUSHER_APP_KEY
andPUSHER_APP_SECRET
keys obtained from your Pusher Channels account. - Set
{"proxy": "http://localhost:XXXX"}
inclient/package.json
to same port as your root directory.env
server port - Create a
.env
file in theclient
folder and setREACT_APP_PUSHER_APP_KEY
to the same key as yourPUSHER_APP_KEY
in the root folder.env
file. - Run
npm run dev
to run both server and client in watch mode.
- Run
npm run test
in root directory to run server unit tests. - Run
npm run test
inclient
directory to run client unit tests.
- See issues tab.