/Hect-PollQ

A global poll conducting platform. Which conducts poll events seamlessly with full encryption.

Primary LanguageTypeScriptMIT LicenseMIT

Voting App (pollQ)

An online platform conducting voting system online!

Stars 🍴 Forks Issues Open PRs Closed PRs
Stars Forks Issues Open Pull Requests Closed Pull Requests

RocketFeatured In

RocketProject Overview

It is an online platform which enables users to create, manage, and participate in voting events.

High VoltageTech Stack



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.

Scope for this project

  • 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. πŸš«πŸ—³οΈ

Table of Contents

Features

  • 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) πŸš€

Tech Stack

  • Backend: Node.js, Express, MongoDB
  • Frontend: Vite (React), JavaScript/TypeScript
  • Database: MongoDB
  • Real-Time Updates: WebSockets (optional)

Project Structure

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.

Setup Instructions

Prerequisites

Make sure you have the following installed:

  • Node.js (v14 or higher)
  • npm or yarn
  • MongoDB (running locally or hosted)

RocketGet Started

Setting up repository

  1. Fork this repository to your own GitHub account.
  2. Clone the forked repository to your local machine.
 git clone https://github.com/your-username/voting-app.git
  1. Navigate to the project directory.
 cd voting-app

Backend Setup

  1. Navigate to the backend-server directory.
 cd backend-server
  1. Install the required dependencies.
 npm install
  1. 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
  1. Start the server.
 node index.js

Frontend Setup

  1. Navigate to the frontend-server directory separately.
 cd frontend-voting
  1. Install the required dependencies.
 npm install
  1. Start the server.
 npm run dev

Backend is runnig on: http://localhost:5000

Frontend is runnig on: http://localhost:5432

Git Setup and Installation

To contribute to the PollQ repository, follow these steps:

  1. 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.

  2. 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
  3. Add a remote upstream:

    git remote add upstream https://github.com/original-owner-username/PollQ
  4. Create a new branch: Create a new branch for your changes. Run the following command in your terminal.

    git checkout -b <your-branch-name>
  5. Make the desired changes: Make the desired changes to the source code.

  6. Add your changes: Add your changes to the staging area. Run the following command in your terminal.

    git add <File1 changed> <File2 changed> ...
  7. Commit your changes: Commit your changes with a meaningful commit message. Run the following command in your terminal.

    git commit -m "<your-commit-message>"
  8. Push your changes: Push your changes to your forked repository. Run the following command in your terminal

    git push origin <your-branch-name>
  9. 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.

Our Contributors Red Heart

Thank you for contributing to our repository

Show some Red Heart by starring this awesome repository!

If you find this project helpful, please consider giving it a star!

Note:

  • 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! πŸš€βœ¨

License

This project is licensed under the MIT licensed. See the LICENSE file for details.