Skip to content

mothishramjayaraman/mslr-fullstack-voting-system

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🗳️ MSLR – Full-Stack Voting & Referendum System

A secure full-stack web application for conducting online referendums with role-based access, secure authentication, and real-time voting results.

This project demonstrates end-to-end full-stack development, including frontend UI design, backend REST API development, authentication, and database integration.


🚀 Project Overview

MSLR (My Shangri-La Referendum) is a web-based voting system inspired by real-world e-government platforms.

The system allows:

  • Citizens to register and vote securely
  • Administrators to create, manage, and monitor referendums
  • Live result updates with transparent vote counting
  • Strict enforcement of one-person-one-vote

✨ Key Features

🔐 Security & Authentication

  • JWT-based stateless authentication
  • BCrypt password hashing
  • Role-based access control (Voter / Admin)
  • Single-use Secure Citizen Codes (SCC)
  • Immutable vote storage

🗳️ Voting System

  • Browse active referendums
  • Cast a permanent vote (votes cannot be changed or withdrawn)
  • Automatic vote counting
  • Automatic referendum closure when an option reaches 50% of registered voters

🏛️ Admin Functionality

  • Create and manage referendums
  • Open and close voting phases
  • View participation statistics
  • Manage Secure Citizen Codes and registered voters

🖥️ User Interface

  • Clean and responsive frontend
  • Dedicated dashboards for voters and administrators
  • Live result visualisation using charts
  • Mobile-friendly design

🏗️ Architecture

  • Frontend: React + Vite
  • Backend: Spring Boot (REST APIs, JWT authentication)
  • Database: MongoDB

Two API layers are implemented:

  • /api/* – Modern REST API used by the frontend
  • /mslr/* – Specification-compatible endpoints for automated testing

🛠️ Technology Stack

Frontend

  • React
  • Vite
  • JavaScript
  • HTML5 / CSS3

Backend

  • Spring Boot
  • REST APIs
  • JWT Authentication

Database

  • MongoDB

▶️ Running the Project Locally

Prerequisites

  • Node.js
  • Java 17+
  • MongoDB

Backend

cd backend
./mvnw spring-boot:run

About

Designed and implemented a secure full-stack referendum system with authentication, role-based access control, REST APIs, real-time voting results, and administrative management.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors