Role-based institute management platform for administration, student/faculty workflows, attendance tracking, and profile management.
Institute ERP is a Node.js + Express web application designed for educational institutions to manage user access and core academic operations through role-based dashboards.
The system currently supports:
- secure login/session handling,
- role-aware dashboards (Admin, Student, Faculty, Staff, Club),
- profile management,
- attendance flows (view, take, edit, and student listing),
- MySQL-backed persistent storage.
- π Authentication with secure cookie-based session key (
sk) - π₯ Multi-role dashboard routing
- π§βπΌ Admin panel experience
- π Student dashboard experience
- π§βπ« Faculty dashboard experience
- π’ Staff and Club role handling
- β Attendance management workflows
- π€ Profile view/edit support
- π‘οΈ Security headers via Helmet + CSP
Left: Main Dashboard View Β β’Β Right: Attendance / Role Workflow View
Institute-ERP/
βββ app.js # Main server and route handling
βββ app.sql # MySQL schema/data setup script
βββ start.bat # Optional Windows startup helper
βββ script/
β βββ content.js # HTML content builders for pages/dashboards
β βββ profile.js # Profile-related UI/content logic
βββ src/
β βββ *.css # Styling files
β βββ *.svg # Vector assets
β βββ *.png # Image assets
βββ pic/ # README screenshots (16:9)
β βββ img1.png
β βββ img2.png
βββ README.md
Choose one method:
- Download the LTS version from: https://nodejs.org/
- Install using the setup wizard.
- Verify installation:
node -v
npm -vsudo apt update
sudo apt install -y nodejs npm
node -v
npm -vTip: If your distro installs an old Node.js version, use NodeSource or nvm to install a current LTS release.
Install MySQL Community Server from: https://dev.mysql.com/downloads/mysql/
After installation, verify:
mysql --versiongit clone https://github.com/aaravshah1311/Institute-ERP.git
cd Institute-ERPnpm install express mysql2 body-parser cookie-parser dotenv helmetRun from the project root:
mysql -u <your_mysql_user> -p < app.sqlThis imports all schema/data defined in app.sql.
Make sure:
- MySQL server is running,
- credentials are valid,
- host and port match your
.envsettings.
Create a .env file in the project root:
DB_HOST=127.0.0.1
DB_USER=your_mysql_user
DB_PASS=your_mysql_password
DB_NAME=your_database_name
DB_PORT=3306DB_HOST: usually127.0.0.1for local MySQLDB_USER/DB_PASS: your MySQL login credentialsDB_NAME: must match the database expected byapp.sqldataDB_PORT: default MySQL port is3306
Start the server:
node app.jsOpen in browser:
http://127.0.0.1:3000
- Node.js and npm installed
- MySQL server installed and running
- Database imported using
app.sql -
.envfile created with valid DB credentials - Dependencies installed
- Server starts without errors
- Backend: Node.js, Express.js
- Database: MySQL (
mysql2/promise) - Middleware:
body-parser,cookie-parser,dotenv - Security:
helmet(CSP + headers) - Rendering Pattern: Server-generated HTML via JS content modules
- Cannot connect to database
- Re-check
DB_HOST,DB_USER,DB_PASS,DB_NAME,DB_PORTin.env.
- Re-check
- Login/session issues
- Clear browser cookies and retry authentication.
- Port already in use
- Stop the process using port
3000, then restart the app.
- Stop the process using port
- Static files not loading
- Confirm
/srcassets exist and paths are unchanged.
- Confirm
Aarav Shah
- GitHub: https://github.com/aaravshah1311/
- Portfolio: https://aaravshah1311.is-great.net

