IT3030 – Programming Applications and Frameworks
SLIIT – 2026 Semester 1
Smart Campus Operations Hub is a full-stack web application designed to manage university facility bookings and maintenance operations.
The system allows users to:
- Browse and search campus resources
- Request bookings
- Report incidents
- Track ticket progress
- Receive notifications
Admins can:
- Approve or reject bookings
- Assign technicians
- Manage resources
- Monitor system activity
- Java 21
- Spring Boot 3.2.4
- Spring Security
- OAuth2 (Google Login)
- JPA / Hibernate
- MySQL
- React.js (Vite)
- Axios
- React Router
- GitHub
- GitHub Actions (CI)
- Environment Sync: Ensure you have Java 21 and Maven installed.
- Database Connection:
- Create a MySQL database named
smart_campus_hub. - Update
backend/src/main/resources/application.propertieswith your local MySQLusernameandpassword.
- Create a MySQL database named
- Dependencies:
- Run
mvn clean installinside thebackendfolder to download all required dependencies. - Alternatively, import the project into your IDE (IntelliJ/Eclipse) using the
pom.xmlfile.
- Run
- Running the App: Execute
./mvnw spring-boot:runto start the server onhttp://localhost:8080/api/v1.
- Navigate to the
frontenddirectory. - Run
npm installto install dependencies. - Run
npm run devto start the development server.
The backend follows a standard N-tier architecture for clean separation of concerns:
controller: REST API endpoints.service: Business logic layer.model: Entity definitions (JPA).repository: Data access layer (Spring Data JPA).dto: Data Transfer Objects for API requests/responses.exception: Global exception handling.config: Security and system configurations.
src/api: Axios instances and API services.src/components: Reusable UI components.src/context: React Context for state management (Auth, etc.).src/pages: Main application views.src/routes: Route definitions.src/styles: Global and component-specific styles.
To ensure the project structure is preserved on GitHub, empty folders contain a .gitkeep file.
- Rule: Once a folder has a real code file inside it, you can delete the
.gitkeep. If the folder is empty, keep the.gitkeep.
- CRUD operations for resources
- Search & filtering
- Booking request workflow
- Conflict detection
- Admin approval system
- Ticket creation with image attachments
- Technician assignment
- Comment system
- Real-time booking & ticket notifications
- Notification panel in UI
- Google OAuth2 login
- Role-based access control (USER / ADMIN)
Relational database with tables:
- users
- resources
- bookings
- tickets
- ticket_images
- comments
- notifications
- OAuth2 authentication
- Role-based endpoint protection
- Input validation
- Secure file handling
- Global exception handling
- Unit testing (Service layer)
- Postman API collection
- Validation testing
- Conflict detection testing
cd backend
mvn clean install
mvn spring-boot:runcd frontend
npm install
npm startGitHub Actions workflow:
- Build backend
- Run tests
- Build frontend
| Member | Responsibilities |
|---|---|
| Member 1 | Resource Management |
| Member 2 | Booking Workflow |
| Member 3 | Incident & Ticket Module |
| Member 4 | Notifications & Security |
Each member implemented at least four REST endpoints using different HTTP methods.
Screenshots and demo video available in the /docs folder.
This project is developed for academic purposes for IT3030 – SLIIT.