Skip to content

MacroMaster101/web-voting-system

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Bright Future logo

Bright Future

🎓 A full-stack student awards voting platform with events, nominees, dashboards, notifications, and results.

Spring Boot API · React/Vite UI · H2 Local DB

✨ Overview

Bright Future lets students register, sign in, and vote in active campus award events. Admin users can manage events, categories, nominees, students, notifications, dashboards, and published result reports from one connected web app.

The project is organized as one Spring Boot backend and one React/Vite frontend, so the modules are easier to run, test, and maintain.

🗂 Project Layout

.
|-- backend/        Spring Boot API, security, database, reports, and mail
|-- frontend/       React/Vite app with all UI modules
|-- data/           Local H2 database files for development
|-- docs/           Logo and README assets
`-- README.md

🧰 Requirements

  • Java 17
  • Node.js 18 or newer
  • npm

🚀 Run Locally

Start the backend:

cd backend
.\mvnw.cmd spring-boot:run

Start the frontend in a second terminal:

cd frontend
npm install
npm run dev

Local URLs:

App URL
🌐 Frontend http://localhost:5173
🔌 Backend API http://localhost:8080
🗄 H2 console http://localhost:8080/h2-console

✅ Checks

Backend:

cd backend
.\mvnw.cmd test

Frontend:

cd frontend
npm run lint
npm run build

⚙️ Environment

Backend configuration lives in backend/src/main/resources/application.yml. Use backend/.env.example as a reference for local or deployment environment variables.

Use frontend/.env.example as the reference for frontend configuration.

Common backend variables:

  • SPRING_DATASOURCE_URL
  • SPRING_DATASOURCE_USERNAME
  • SPRING_DATASOURCE_PASSWORD
  • APP_JWT_SECRET
  • SPRING_MAIL_USERNAME
  • SPRING_MAIL_PASSWORD
  • APP_MAIL_FROM_ADDRESS
  • APP_MAIL_FROM_NAME

🧼 Repo Hygiene

Build output, dependencies, secrets, and local data should stay out of Git. That includes node_modules/, target/, frontend/dist/, and H2 database files under data/.

The repo includes:

  • .gitignore for build output, local databases, editor files, and secrets
  • .editorconfig for editor formatting defaults
  • .gitattributes for consistent line endings, including Maven wrapper scripts

About

A Spring Boot-based web voting system for academic award nominations, featuring role-based access, real-time monitoring, and email notifications. Developed by a 6-member team for a 2nd-year project.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages