Pollify is a full-featured polling platform designed for individuals and organizations to create and participate in polls. It offers an interactive and user-friendly interface for users to express their opinions through votes, view poll results in real-time, and engage with a community of like-minded participants.
Try adding your own Polls!
User Authentication: Secure login and registration system to manage user sessions.
Create Polls: Users can create polls with multiple choices.
Vote on Polls: Authenticated users can vote on different polls and see immediate updates.
View Results: Results are displayed as percentages alongside the total votes.
Leaderboard: A leaderboard showing users ranked by their activity, such as polls created and participated in.
Before setting up the project, ensure you have the following installed on your system:
- Node.js: Version 20.x or later, available at Node.js official website.
- Yarn or npm: Package managers to install dependencies and run the project.
- Docker
To install the Polling App, follow these steps:
1.Clone the repository: git clone git@github.com:tristenwallace/pollify.git
2.Navigate to the project directory: cd pollify
3.Install Root Dependencies: npm install (Important for Husky Pre-Commit Hooks)
2.Navigate to environment folder: cd environment
3.Copy .env.template file to create .env.development
and .env.test
files. PORT should be different for each, I typically change test PORT to 5433.
Before running the application, ensure Docker is installed and running on your system. You can download it from the official Docker website.
The frontend, backend, and database services are all handled via Docker. To start the application in the development environment on your local machine, run the following command in the root directory:
docker-compose up --build -d
This command will start the frontend at http://localhost:3000
and the backend at http://localhost:5000
.
No additional setup steps are necessary, as Docker handles all service dependencies and initializations.
For more detailed information on setting up, running, and testing the application, refer to the following guides in our documentation:
For more information about the API endpoints, see the API Documentation.
Below is a high-level overview of the Polling App's architecture:
For a detailed explanation of our infrastructure setup, view our Infrastructure Guide.
Overview of our CircleCi pipeline process
Refer to Testing Documentation for details on planned testing using Jest & Playwright.
This project is licensed under the MIT License - see the LICENSE file for details.