https://github.com/theritikchoure/pollsage
PollSage is a web application that allows users to create and participate in polls. It provides a platform for users to gather opinions and make data-driven decisions.
https://github.com/theritikchoure/pollsage
hacktoberfest hacktoberfest-accepted hacktoberfest2023 hacktoberfest2024 mongodb nodejs online-poll poll-application poll-maker reactjs
Last synced: 6 months ago
JSON representation
PollSage is a web application that allows users to create and participate in polls. It provides a platform for users to gather opinions and make data-driven decisions.
- Host: GitHub
- URL: https://github.com/theritikchoure/pollsage
- Owner: theritikchoure
- License: mit
- Created: 2023-07-16T15:52:08.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2024-07-28T14:49:40.000Z (almost 2 years ago)
- Last Synced: 2025-04-03T11:47:04.927Z (about 1 year ago)
- Topics: hacktoberfest, hacktoberfest-accepted, hacktoberfest2023, hacktoberfest2024, mongodb, nodejs, online-poll, poll-application, poll-maker, reactjs
- Language: JavaScript
- Homepage: https://theritikchoure.github.io/pollsage/
- Size: 1.94 MB
- Stars: 1
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# PollSage
PollSage is a web application that allows users to create and participate in polls. It provides a platform for users to gather opinions and make data-driven decisions.
## Features
- **User Registration and Authentication:** Users can create an account and log in to access the PollSage application. Passwords are securely hashed and stored in the database.
- **Create Polls:** Users can create polls by specifying the question and answer options. They can customize various settings for the poll, such as allowing multiple selections and setting an expiration date.
- **Vote on Polls:** Users can participate in polls by selecting their preferred answer option(s). They can choose a single option or multiple options based on the poll's configuration.
- **View Poll Results:** Users can view the results of a poll, including the number and percentage of votes for each option. The results are displayed in a visually appealing chart format.
- **Comment Sections:** Participants can provide additional feedback and comments on polls. They can express their thoughts, share insights, or ask questions related to the poll.
- **Draft Saving:** Users can save their polls as drafts and continue editing them later. This feature allows users to work on complex or time-consuming polls without losing progress.
- **Poll Expiration:** Poll creators can set a start and end date for their polls. This feature ensures that the poll is active and accepting votes only within the specified timeframe.
- **Poll Visibility:** Poll creators can choose to make their polls public or limit access to specific participants. They have the option to share the poll publicly or restrict it to a select group of individuals.
- **Password Protection:** Poll creators can add password protection to their polls. This feature ensures that only users with the correct password can participate in the poll.
- **Share Polls:** Users can easily share polls with others through social media or direct links. Sharing options include popular platforms like Facebook, Twitter, and email.
- **Poll Analytics:** The application provides detailed analytics and insights on poll participation and results. Creators can analyze voting patterns, demographics, and trends to gain valuable insights.
## Technologies Used
- **Back-end:** Node.js, Express.js
- **Front-end:** React.js, HTML, CSS, JavaScript
- **Database:** MongoDB (NoSQL)
- **Authentication:** JWT (JSON Web Tokens)
- **Other Libraries and Tools:** Axios, React Router, Chart.js, Socket.io, bcrypt (for password hashing), etc.
## Contribution
This project is open to contributions from anyone. If you would like to contribute, please follow the steps below:
1. Fork the repository
2. Clone the repository to your local machine
3. Create a new branch
4. Make your changes
5. Commit and push your changes to the remote repository
6. Create a pull request
## Installation
To run the application locally, you must have Docker installed on your machine. You can download Docker from [here](https://www.docker.com/).
#### 1. Clone the Repository
Clone the repository from GitHub to your local machine.
```
git clone https://github.com/your-username/pollsage.git
cd pollsage
```
#### 2. Docker Compose Setup
Make sure you have Docker and Docker Compose installed on your system.
#### 3. Build and Run
Use Docker Compose to build and run the containers:
```
docker-compose up --build
```
This command will build the images and start the containers for MongoDB, Redis, Backend, and Frontend.
## Screenshots

## License
This project is licensed under the MIT License. See the [LICENSE](https://github.com/theritikchoure/pollsage/blob/main/LICENSE)
## Contact
If you have any questions or suggestions, please feel free to contact me at [ritvikchoure65@gmail.com](mailto:ritvikchoure65@gmail.com)
## Acknowledgements
- [React.js](https://reactjs.org/)
- [Node.js](https://nodejs.org/en/)
- [Express.js](https://expressjs.com/)
- [MongoDB](https://www.mongodb.com/)
- [JWT](https://jwt.io/)
- [Axios](https://axios-http.com/)
- [React Router](https://reactrouter.com/)
## Authors
- [Ritik Chourasiya](https://github.com/theritikchoure)
## Support
If you like this project, please consider giving it a ⭐.