It is an online platform which enables users to create, manage, and participate in voting events.
Welcome to the Voting App repository! This project allows users to create, manage, and participate in voting events. The app is built with a Node.js backend and a Vite-powered frontend, designed for efficient performance and modern development workflows. This application is fully open source, so feel free to contribute or adapt it to your own needs.
- Creation of UI/UX (This is the major part). π¨
- Figma design will also work. ποΈ
- Ideas for the scope of this project (Must be written in IDEAS.md file). π‘
- Creation of backend/database. ποΈ
- Creation of frontend (Majorly dark theme). π
- How to scale is globally. π
- Restrictions to user. User should be able to vote once per poll event. π«π³οΈ
- User authentication (Login/Register) π
- Create and manage polls π³οΈ
- Real-time vote updates β‘
- Responsive and intuitive user interface π±
- Data persistence with MongoDB πΎ
- Backend REST API built with Node.js π₯οΈ
- Frontend built with Vite (React/Vite, as applicable) π
- Backend: Node.js, Express, MongoDB
- Frontend: Vite (React), JavaScript/TypeScript
- Database: MongoDB
- Real-Time Updates: WebSockets (optional)
The project is divided into two main folders:
- Backend-server: This contains the Node.js application code that serves as the API layer, handling user authentication, poll creation, and voting logic.
- Frontend-server: This contains the client-side code built using Vite, providing a modern interface for users to interact with the application.
Make sure you have the following installed:
- Node.js (v14 or higher)
- npm or yarn
- MongoDB (running locally or hosted)
- Fork this repository to your own GitHub account.
- Clone the forked repository to your local machine.
git clone https://github.com/your-username/voting-app.git
- Navigate to the project directory.
cd voting-app
- Navigate to the backend-server directory.
cd backend-server
- Install the required dependencies.
npm install
- Create a .env file in the backend-server directory and add the following variables
MONGODB_URI = your mongodb uri of the new mongo db you created for this project
PORT = your preferred port
- Start the server.
node index.js
- Navigate to the frontend-server directory separately.
cd frontend-voting
- Install the required dependencies.
npm install
- Start the server.
npm run dev
Backend is runnig on: http://localhost:5000
Frontend is runnig on: http://localhost:5432
To contribute to the PollQ repository, follow these steps:
-
Fork the Repository: Click on the "Fork" button on the repository's GitHub page to create a copy of the repository in your GitHub account.
-
Clone the repository: Clone the forked repository to your local machine using the following command in your terminal.
git clone https://github.com/<your-github-username>/PollQ
-
Add a remote upstream:
git remote add upstream https://github.com/original-owner-username/PollQ
-
Create a new branch: Create a new branch for your changes. Run the following command in your terminal.
git checkout -b <your-branch-name>
-
Make the desired changes: Make the desired changes to the source code.
-
Add your changes: Add your changes to the staging area. Run the following command in your terminal.
git add <File1 changed> <File2 changed> ...
-
Commit your changes: Commit your changes with a meaningful commit message. Run the following command in your terminal.
git commit -m "<your-commit-message>"
-
Push your changes: Push your changes to your forked repository. Run the following command in your terminal
git push origin <your-branch-name>
-
Create a Pull Request: Go to the GitHub page of your forked repository. You should see a prompt to create a pull request (PR). Click on it, compare the changes, and create the PR.
Contributing
We love your input! We want to make contributing to this project as easy and transparent as possible, whether it's.
To contribute to the Retro repository using GitHub Desktop, follow these steps:
Reporting a bug
Discussing the current state of the code
Submitting a fix
Proposing new features
To get started with contributing, please follow the steps outlined in the Contributing.md.
- We encourage you to raise any issues or suggestions you may have! Your feedback is valuable! π
- Letβs embark on this journey together and make it a fun and enriching learning experience for everyone! πβ¨
This project is licensed under the MIT licensed. See the LICENSE file for details.