Skip to content

Latest commit

 

History

History
217 lines (159 loc) · 4.85 KB

File metadata and controls

217 lines (159 loc) · 4.85 KB

🎯 Event Management Dashboard

A full-stack event operations platform for candidate management, attendance, points, analytics, and exports.

Node.js Express MySQL Status


🚀 Overview

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.


✨ Core Features

  • 🔐 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)

🖼️ Screenshots (16:9)

Event Dashboard Login Event Dashboard Main View

Left: Login Screen  •  Right: Main Dashboard View


🧱 Project Structure

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

⚙️ Installation

1) Clone the repository

git clone https://github.com/aaravshah1311/Event-Managemet.git
cd Event-Managemet

2) Install dependencies

npm install

🗄️ Database Setup (MySQL)

1) Create database and tables

mysql -u root -p < db.sql

This creates:

  • event_manager database
  • candidates table
  • points_log table
  • attendance table
  • admins table

2) Add admin users

Generate hashed-password SQL inserts:

node create_admins.js

Copy the generated SQL and run it in MySQL.


🔐 Configuration Note (No .env in this project)

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.


▶️ Run the Application

npm start

Server default:

http://127.0.0.1:1311

Login page:

http://127.0.0.1:1311/Login

🧪 Setup Checklist

  • MySQL server is running
  • db.sql imported successfully
  • DB username/password updated in server.js
  • npm install completed
  • Admin users inserted into admins table
  • Server starts with npm start

🛠️ Tech Stack

  • 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

📌 Troubleshooting

  • ER_ACCESS_DENIED_ERROR / DB login failure
    • Recheck user and password in server.js.
  • Login not working
    • Confirm admins table has records with hashed passwords.
  • App opens but data is empty
    • Ensure all tables in db.sql were created and populated.
  • Session issues after restart
    • Clear browser cookies and log in again.

👤 Author

Aarav Shah


Simple, fast, and reliable event-day management for admins.