Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Smart Campus System

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.

Tech Stack

  • 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

Features

Students

  • 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

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

Maintenance Staff

  • View and assign issue reports
  • Track preventive maintenance schedules
  • Manage classroom change requests

Admins

  • Full oversight of users, bookings, and system configuration
  • Manage parking, dorms, and transportation allocations
  • Access logs and reporting across all modules

Project Structure

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

Getting Started

  1. Set up the database

    Create a MySQL database and run the schema:

    mysql -u root -p smartcampus < database/schema.sql
  2. Configure environment variables

    In backend/, create a .env file:

    DB_HOST=localhost
    DB_PORT=3306
    DB_USER=root
    DB_PASSWORD=your_password
    DB_NAME=smartcampus
    JWT_SECRET=your_jwt_secret
    PORT=3001
    
  3. Install dependencies and run

    cd backend
    npm install
    npm start

    The server runs on http://localhost:3001.

  4. Access the app

    • Home: http://localhost:3001
    • Login: http://localhost:3001/login
    • Sign Up: http://localhost:3001/signup

Deployment

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.

Notes

  • database/schema.sql contains 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.pdf for the full requirements, design rationale, and write-up.

About

Full-stack campus management platform with role-based dashboards for students, faculty, maintenance, and admins

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages