Skip to content

This is a backend application for a voting system where users can vote for candidates. It provides functionalities for user authentication, candidate management, and voting.

Notifications You must be signed in to change notification settings

soumadeep-dey/voting-app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Voting Application

Node.js Express.js MongoDB Mongoose JWT Bcrypt

This is a backend application for a voting system where users can vote for candidates. It provides functionalities for user authentication, candidate management, and voting.

Features

  • User sign up and login with Voter ID and password.
  • User can view the list of candidates.
  • User can vote for a candidate (only once).
  • Admin can manage candidates (add, update, delete).
  • Admin cannot vote.
  • System can have only one admin.
  • User can view live voting sorted by their vote count.

Technologies Used

  • Node.js
  • Express.js
  • MongoDB
  • JSON Web Tokens (JWT) for authentication and stateless token based authorization
  • Bcrypt for password encryption/decryption

API Endpoints

Authentication

Sign Up

  • POST /signup: Sign up a user

Login

  • POST /login: Login a user

Candidates

Get Candidates

  • GET /candidates: Get the list of candidates

Add Candidate

  • POST /candidates: Add a new candidate (Admin only)

Update Candidate

  • PUT /candidates/:id: Update a candidate by ID (Admin only)

Delete Candidate

  • DELETE /candidates/:id: Delete a candidate by ID (Admin only)

Voting

Get Vote Count

  • GET /candidates/vote/count: Get the count of votes for each candidate

Vote for Candidate

  • POST /candidates/vote/:id: Vote for a candidate (User only)

User Profile

Get Profile

  • GET /users/profile: Get user profile information

Change Password

  • PUT /users/profile/password: Change user password

About

This is a backend application for a voting system where users can vote for candidates. It provides functionalities for user authentication, candidate management, and voting.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published