// WEB

Room Booking System

A university room booking system built with Next.js and Strapi, supporting student reservations, staff room management, and user administration.

ROLEDesigner & Developer
TEAMTeam project
CONTEXTUniversity assignment
CREATED2021
Next.jsStrapiBootstrapGraphQLSQLite

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

Room Booking System home page

Login Page

Room Booking System login page

User Profile

Room Booking System user profile

User Admin — Dashboard

Room Booking System user admin dashboard

User Admin — Create Account

Room Booking System account creation form

Staff — Dashboard

Room Booking System staff dashboard

Student — Dashboard

Room Booking System student dashboard

Student — Room Preview

Room Booking System 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.