Your Gateway to a Smarter Campus
A full-stack campus management platform built for a Software Engineering course project. It brings together resource booking, issue reporting, event management, transportation, dorms, parking, tutoring, and more into one system with role-based dashboards for students, faculty, maintenance staff, and administrators.
Developed as a team project (TEK Team) for the Software Engineering course at the Lebanese American University.
- Backend: Node.js, Express.js
- Database: MySQL
- Auth: JWT (jsonwebtoken) + bcryptjs
- File uploads: Multer
- Frontend: Vanilla HTML, CSS, JavaScript
- Deployment: Backend on Railway, frontend on Vercel
- Resource booking (classrooms, labs, sports halls, library seats, computers)
- Issue reporting with photo attachments
- Event ticket reservations
- Transportation seat booking
- Dorm room booking
- Student employment applications
- View announcements from faculty
- Request resource bookings for teaching
- Override student bookings for academic conflicts
- Create and manage announcements
- Organize events, seminars, and workshops
- Create tutoring sessions
- Report urgent issues during classes
- View and assign issue reports
- Track preventive maintenance schedules
- Manage classroom change requests
- Full oversight of users, bookings, and system configuration
- Manage parking, dorms, and transportation allocations
- Access logs and reporting across all modules
SmartCampusSystem/
├── backend/ # Express API
│ ├── config/ # Database connection
│ ├── controllers/ # Business logic per module
│ ├── middleware/ # Auth & access logging
│ ├── models/ # Data models
│ ├── routes/ # API route definitions
│ ├── utils/ # Helpers (DB, email)
│ └── server.js # Entry point
├── frontend/
│ └── public/ # HTML pages, CSS, client-side JS
├── database/
│ └── schema.sql # Full MySQL schema (structure only, no data)
└── docs/
└── Smart_Campus_System_Report.pdf # Full project report
-
Set up the database
Create a MySQL database and run the schema:
mysql -u root -p smartcampus < database/schema.sql -
Configure environment variables
In
backend/, create a.envfile:DB_HOST=localhost DB_PORT=3306 DB_USER=root DB_PASSWORD=your_password DB_NAME=smartcampus JWT_SECRET=your_jwt_secret PORT=3001 -
Install dependencies and run
cd backend npm install npm startThe server runs on http://localhost:3001.
-
Access the app
- Home:
http://localhost:3001 - Login:
http://localhost:3001/login - Sign Up:
http://localhost:3001/signup
- Home:
The project is configured for a split deployment: backend on Railway (railway.json), frontend on Vercel (vercel.json). frontend/public/js/config.js auto-detects the environment and points API calls at localhost in development or your configured Railway URL in production.
database/schema.sqlcontains table definitions only — no seed data is included in this repository.- This was built as a team academic project; see
docs/Smart_Campus_System_Report.pdffor the full requirements, design rationale, and write-up.