Skip to content
Back to homeAcademic capstone

The Sailing Bay · 2025

Hotel
Management.

A completed Django academic capstone: a server-rendered monolith with SQLite for booking, inventory, cancellation, and administration, alongside a retrieval-augmented knowledge assistant.

DjangoPythonSQLiteServer-renderedRAGFAISS
View source
Editorial cover for the hotel management capstone
Editorial project cover, not a screenshot of the application UI.

2025.10 → 12

Development window

6

Focused tests

SQLite

Database

Completed

Capstone status

Verified scope

A booking system with clear boundaries.

01

Availability

Date-based inventory connects room types, concrete rooms, and stay ranges.

02

Reservations

A booking lifecycle covers creation, overlap rejection, and cancellation.

03

Inventory

Booking signals decrement inventory and cancellation restores affected rows.

04

Account flows

Authenticated users can access profile and booking history workflows.

05

Staff operations

Dashboard summaries and check-in or check-out actions support staff access.

06

Hotel assistant

A retrieval-augmented path prepares hotel knowledge for an LLM response.

Architecture

MVT at the core, RAG at a separate boundary.

Django MVT monolithURL configuration → views and ORM → server-rendered templates
↓ Domain workflows
Booking domainRooms · inventory · reservations · cancellations
SQLiteUsers · rooms · dates · booking records
Selected ORM loadingConcrete select_related usage in targeted queries
↓ Knowledge retrieval path
Knowledge base → HuggingFace embeddings → FAISS → retrieved context → LLM responseGroq cloud path or optional local LlamaCpp / Phi-4 path

The two provider paths are separate implementation options. There is no automatic fallback, asynchronous inference, or verified production AI runtime.

Engineering decisions

Consistency before impressive numbers.

01

transaction.atomic and select_for_update wrap the documented booking conflict check.

02

A booking signal decrements inventory for the stay range, while cancellation restores affected inventory rows.

03

Selected relationship loading is presented as a concrete ORM technique, not a claim of global query optimization.

Repository timeline

Built across three documented milestones.

2025.10.28First repository commit
2025.11.19Final version commit
2025.12.04Groq integration added

Test evidence

Six tests around core behavior.

The documented baseline covers booking creation and inventory decrement, overlap rejection, cancellation restoration, user ownership, missing chatbot input, and sanitized chatbot failure behavior.

python manage.py checkpython manage.py test

The tests mock the chatbot boundary and do not call an external AI provider. This is a meaningful baseline, not comprehensive coverage.

Visual evidence boundary

No proof is manufactured from what is missing.

The repository does not track screenshots of booking/search, room detail, admin dashboard, or chatbot conversations. Room and service imagery is content material, not UI evidence.

Need recapture

Booking/search, room detail, admin, chatbot

Ready as support

Room and service gallery content

Do not use

Stale ERD and removed media

Ownership

Student Project Owner / Maintainer

The student project owner directed requirements, capstone scope, feature decisions, testing, and academic delivery. AI assistance supported implementation, refactoring, architecture proposals, debugging, and testing assistance.