A full-stack event operations platform for candidate management, attendance, points, analytics, and exports.
Event Management Dashboard helps admins run multi-day event programs from one place. It combines:
- admin login with session-based auth,
- candidate registration + search,
- points and attendance workflows,
- dashboard-level analytics and charts,
- one-click Excel backup export.
The project is built with Node.js + Express and uses MySQL for persistent storage.
- 🔐 Admin authentication (login/logout + protected APIs)
- 👤 Candidate creation with validation
- 📋 All-student view with filtering and sorting
- 🏆 Event points allocation (single or bulk candidate UIDs)
- ✅ Attendance marking by day (with duplicate protection)
- 📊 Dashboard summary cards + chart insights
- 🔎 Event search and participant drill-down
- 📝 Paper-marking utility table
- 📦 Excel backup download endpoint
- 🧾 Action logging via Winston (
action.log)
Left: Login Screen • Right: Main Dashboard View
Event-Managemet/
├── public/
│ ├── index.html
│ ├── login.html
│ ├── script.js
│ ├── login.js
│ ├── style.css
│ ├── event.ico
│ └── games/
│ ├── attend.html
│ ├── timer.html
│ ├── JCL.html
│ └── housie.html
├── pic/
│ ├── img1.png
│ └── img2.png
├── server.js
├── db.sql
├── create_admins.js
├── action.log
├── package.json
├── setup.bat
├── 1start_server.bat
└── 2start_host.bat
git clone https://github.com/aaravshah1311/Event-Managemet.git
cd Event-Managemetnpm installmysql -u root -p < db.sqlThis creates:
event_managerdatabasecandidatestablepoints_logtableattendancetableadminstable
Generate hashed-password SQL inserts:
node create_admins.jsCopy the generated SQL and run it in MySQL.
As requested, this project currently does not use .env.
Update your DB credentials directly inside server.js in the dbConfig object:
const dbConfig = {
host: 'localhost',
user: 'root',
password: '',
database: 'event_manager'
};Also change the session secret in server.js before production use.
npm startServer default:
http://127.0.0.1:1311
Login page:
http://127.0.0.1:1311/Login
- MySQL server is running
-
db.sqlimported successfully - DB username/password updated in
server.js -
npm installcompleted - Admin users inserted into
adminstable - Server starts with
npm start
- Backend: Node.js, Express.js
- Database: MySQL (
mysql2/promise) - Auth/Security:
express-session,bcrypt,helmet,cors - Reporting/Export:
exceljs - Logging:
winston - Frontend: HTML, Bootstrap, vanilla JS, Chart.js
ER_ACCESS_DENIED_ERROR/ DB login failure- Recheck
userandpasswordinserver.js.
- Recheck
- Login not working
- Confirm
adminstable has records with hashed passwords.
- Confirm
- App opens but data is empty
- Ensure all tables in
db.sqlwere created and populated.
- Ensure all tables in
- Session issues after restart
- Clear browser cookies and log in again.
Aarav Shah
- GitHub: https://github.com/aaravshah1311/
- Portfolio: https://aaravshah1311.is-great.net
- Email: aaravprogrammers@gmail.com

