Venue Booking System Specification

A robust, real-time reservation platform for ~200 users and ~200 venues, eliminating manual conflicts through centralized logic.

👥

Users

~200

Student Reps & Admins

🏢

Venues

199

Classrooms, LTs, OATs, Audis

Stack

Next.js + .NET 8

Backed by SQL Server

System Architecture

The system follows a tiered architecture separating concerns between the interactive frontend, the logical API gateway, and the data persistence layer.

💻

Frontend (Client)

Next.js + Tailwind

  • Server-Side Rendering (SSR)
  • Hosted on Vercel
  • Interactive Dashboard
⬇ REST API ⬇
⚙️

API Gateway

ASP.NET Core 8 Web API

  • Business Logic & Auth
  • Overlap Algorithms
  • Hosted on Azure App Service
⬇ EF Core ⬇
🗄️

Data Layer

SQL Server

  • Relational Integrity
  • Complex Queries
  • Azure SQL Database

Database Schema & Venue Distribution

The robust SQL schema ensures data integrity, while the extensive venue list covers all campus facilities.

Schema Explorer

Click a table to view definition

Venue Capacity Breakdown

Distribution of the 199 assignable spaces across campus blocks.

Classroom Block A (88)
Classroom Block B (88)
Lecture Theatres (12)
Auditoriums (6)
OAT (5)

Core Logic: The Overlap Guard

The backend enforces a strict overlap policy to prevent double bookings. Test the C# algorithm logic interactively below.

C# Algorithm

Before any insert/update, the system checks:

(NewStart < ExistingEnd) AND
(NewEnd > ExistingStart) AND
Status != Rejected

If this evaluates to TRUE, the request is rejected immediately as a 409 Conflict.

Try it yourself

1:00 PM Existing Booking (2PM - 4PM) 5:00 PM
BOOKED

User Interaction Flows

Distinct journeys for Student Representatives (Booking) and Administrators (Approval & Oversight).

1

Login

Input: User/Pass
System detects Role.
Redirect -> Dashboard
2

Dashboard

Available (Click to Book)
Booked (Hover details)
3

Booking Modal

Auto-fill Society Name.
Input: Purpose, Time, FIC.
Validation: Start < End.
Key Feature: Venue Cards are color-coded (Green/Red/Yellow). Clicking a green card opens the modal pre-filled with that room's details.

Deployment & Robustness

Mandatory requirements for production readiness and deployment strategy.

Mandatory Must-Haves

  • Atomic Transactions Overlap check + Insert must be a single serializable transaction to prevent race conditions.
  • UTC Standardization Database stores UTC. Backend sends UTC (ISO 8601). Frontend converts to Local Time.
  • Immutable Audit Logs Append-only table. No DELETE API endpoint exists for logs.
  • Zero Trust Security All Admin endpoints decorated with [Authorize(Roles="Admin")].

Deployment Pipeline

1

Database (Azure SQL)

Run Migration Scripts. Seed 199 Venues via Console App.

2

Backend (Azure App Service)

Deploy .NET API. Config ConnectionStrings & JWT Secrets.

3

Frontend (Vercel)

Deploy Next.js. Set NEXT_PUBLIC_API_URL to Azure endpoint.