// WEB
Room Booking System
A university room booking system built with Next.js and Strapi, supporting student reservations, staff room management, and user administration.
Overview
Room Booking System is a university room reservation platform developed as part of my University assignment.
The project was designed as a working prototype for managing room reservations within a university environment. It provides different functionality based on three user roles: User Admin, Staff, and Student.
Students can browse available rooms and manage their bookings, staff can create and configure rooms, while user administrators can manage system accounts and monitor account activity.
My role
I contributed to the design and development of the application as part of a university assignment team.
The project involved working across the frontend, backend integration, user workflows, and role-based functionality required by the system specification.
User roles
User Admin
User administrators are responsible for managing system accounts.
They can:
- Create user accounts
- Manage existing accounts
- View account activity history
- Monitor account login and logout activity
User administrators are restricted to the administration role and cannot operate as regular staff or student users.
Staff
Staff members manage the rooms available through the booking system.
They can:
- Create rooms
- Launch rooms and make them available for reservations
- Configure room availability
- Set booking prices
- Configure dates and times
- Manage promotional codes
- Configure room capacity
Student
Students use the system to find and reserve rooms.
They can:
- View available rooms
- View room details
- Make bookings
- Modify existing bookings
- Cancel bookings
Technical approach
The project focused on building a role-based web application with a separate frontend and backend content management layer.
| Backend / CMS | Frontend |
|---|---|
| Strapi | Next.js |
| GraphQL | Bootstrap |
| SQLite |
Next.js was used to build the web application and user-facing interfaces, while Strapi provided the backend and content management capabilities. GraphQL was used for querying and exchanging application data.
Key features
- Role-based user workflows
- User account management
- User activity tracking
- Room creation and management
- Room availability management
- Room pricing and capacity configuration
- Promotional code support
- Room reservations
- Booking modification
- Booking cancellation
- Room detail and preview pages
Preview
Home Page
Login Page
User Profile
User Admin — Dashboard
User Admin — Create Account
Staff — Dashboard
Student — Dashboard
Student — Room Preview
Lessons learned
This project was a bit challenging at times, especially with the deadline and having to learn new things along the way. But it was also exciting to figure things out and see the system slowly come together. In the end, seeing the result working was really satisfying.