Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

200 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Apex Campus: Smart Campus Operations Hub

CI Java Spring Boot React Tailwind MySQL Flyway

A role-based campus management platform designed to simplify and centralize institutional operations. The system enables efficient handling of facility maintenance, resource booking, and asset management through a structured and user-friendly interface. With secure access control for different user roles, it ensures smooth coordination between users, staff, and administrators. Features like real-time ticket management, organized communication, and reliable data handling help reduce manual effort and improve overall operational efficiency. Built with a modern, scalable architecture, the platform delivers a responsive experience and supports future enhancements.

πŸ“Έ User Interface

🏠 Landing Page

Click here: πŸ” Login & Register Screens

Click here: πŸ“Š User and Admin Dashboards

Click here: πŸ“… Booking Management

Click here: 🏒 Facilities & Assets

Click here: πŸ› οΈ Maintenance Tickets

Click here: πŸ‘€ User Profile

Click here: πŸ‘·β€β™‚οΈ Technician Dashboard

πŸš€ Core Modules

πŸ” Authentication & Identity

  • Dual Authentication: Supports both secure local login and Google OAuth2 integration.
  • JWT-Based Security: Authentication handled via HttpOnly and SameSite=Lax cookies to protect against XSS and CSRF attacks.
  • Role-Based Access Control (RBAC): Fine-grained authorization for ADMIN, TECHNICIAN, and USER roles.

πŸ› οΈ Maintenance Ticketing System

  • Complete Lifecycle Management: Tickets progress through OPEN, IN_PROGRESS, RESOLVED, and CLOSED/REJECTED states.
  • Interactive Communication: Users and technicians can collaborate via comments and attach up to 3 images per ticket.
  • Smart Assignment Workflow: Admins assign tickets to technician groups, while technicians can claim, manage, and resolve tasks efficiently.

πŸ“… Resource Booking Management

  • Centralized Booking System: Reserve campus resources such as rooms, labs, and equipment.
  • Conflict Prevention: Prevents double-booking with time-slot validation and availability checks.
  • Approval Workflow: Booking requests can be approved or rejected by authorized roles.
  • Usage Visibility: Clear view of current and upcoming reservations.

πŸ“¦ Facility & Asset Management

  • Hierarchical Organization: Manage buildings, floors, and assets (e.g., projectors, AC units, labs).
  • Real-Time Availability: Track the status and usability of resources across the campus.

πŸ”” Notification System

  • Event-Driven Alerts: Notifications for ticket updates, comments, booking actions, and assignments.
  • Unread Tracking: Persistent notification logs with unread indicators.

πŸ› οΈ Technology Stack

Layer Technologies
Backend Java 21, Spring Boot 3.4.x, Spring Security (JWT + OAuth2), Hibernate (JPA)
Database MySQL 8.x, Flyway (Migration Management)
Frontend React 18, Vite, Tailwind CSS, Framer Motion (Animations), Lucide Icons
DevOps GitHub Actions (CI), Maven, npm

πŸ“ System Architecture

%%{init: {'themeVariables': { 'fontSize': '18px' }}}%%
graph TB
    %% Actors & Roles
    subgraph Roles [Campus Roles]
        User["πŸŽ“ Student / Staff"]
        Admin["πŸ”‘ Administrator"]
        Tech["πŸ”§ Technician"]
    end

    %% Frontend Layer
    subgraph Frontend ["Frontend Layer (Vite + React)"]
        direction TB
        UI_Common["Common UI (Landing, Login, Register, Profile)"]
        UI_User["User Workspace (Bookings, Tickets, Available Resources)"]
        UI_Admin["Admin Control Panel (Management Preview, Reports)"]
        UI_Tech["Technician Workbench (Assigned Tasks)"]
    end

    %% Backend Layer
    subgraph Backend ["Backend Core (Spring Boot)"]
        direction TB
        subgraph Services [Business Logic]
            M_Auth["πŸ” Auth Service (JWT + RBAC)"]
            M_Ticket["πŸ› οΈ Ticket Module"]
            M_Booking["πŸ“… Booking Module"]
            M_Facility["πŸ“¦ Facility Module"]
            M_Notif["πŸ”” Notification Module"]
        end
    end

    %% Infrastructure
    subgraph Infrastructure [Data & External]
        DB[("πŸ—„οΈ MySQL Database")]
        Storage[("πŸ“ File Storage (Uploads)")]
        Google[("🌐 Google Identity")]
    end

    %% Relations
    User -->|Requests Bookings/Tickets| UI_User
    Admin -->|Manages Resources/Approvals| UI_Admin
    Tech -->|Updates Maintenance Tasks| UI_Tech

    Frontend -->|HTTP REST APIs + HttpOnly JWT| Backend

    M_Auth -->|OAuth2 Protocol| Google
    M_Ticket -->|Saves Attachments| Storage
    Services -->|Persistent State| DB
Loading

βš™οΈ Getting Started

Prerequisites

  • Java 21 or higher
  • Node.js 18 or higher
  • MySQL 8.x
  • Maven 3.9+

Backend Setup

  1. Create a MySQL database named smartcampus.
  2. Configure your environment variables (or update application.yml):
    DB_URL=jdbc:mysql://localhost:3306/smartcampus
    DB_USERNAME=your_username
    DB_PASSWORD=your_password
    JWT_SECRET=your_long_secure_random_string
    GOOGLE_CLIENT_ID=your_id
    GOOGLE_CLIENT_SECRET=your_secret
  3. Run migrations and start the server:
    cd backend
    ./mvnw spring-boot:run
    The API will be available at http://localhost:8085.

Frontend Setup

  1. Install dependencies:
    cd frontend
    npm install
  2. Start the development server:
    npm run dev
    The UI will be available at http://localhost:5173.

πŸ‘₯ Contributors

πŸ“„ License

This project is part of the IT3030 - PAF 2026 coursework. All rights reserved.

About

Apex Campus: A role-based campus management platform designed to simplify and centralize institutional operations. The system enables efficient handling of facility maintenance, resource booking, and asset management through a structured and user-friendly interface

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Contributors

Languages