Skip to content

About

Room reservation and scheduling system built with Python, Firebase Authentication, and MongoDB Atlas.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

10 Commits

Folders and files

Repository files navigation

RoomScheduler

A web-based room reservation and scheduling system built using Python, Firebase Authentication, and MongoDB Atlas. The application allows users to create rooms, book time slots, manage reservations, detect scheduling conflicts, and analyze room availability.


Overview

RoomScheduler is designed to simplify room reservation management by providing a secure and user-friendly scheduling platform. Users can create rooms, reserve available time slots, update existing bookings, and monitor room occupancy through a centralized dashboard.

The system prevents overlapping reservations, enforces ownership rules for editing and deletion, and provides room utilization insights through availability analysis.


Features

User Authentication

  • Secure login system using Firebase Authentication
  • Session-based user management
  • Protected routes for authenticated users
  • Secure logout functionality

Room Management

  • Create new rooms
  • Prevent duplicate room names
  • Delete owned rooms
  • Room ownership validation

Reservation System

  • Book room time slots
  • Edit existing bookings
  • Delete bookings
  • Conflict detection and prevention

Availability Checking

  • Real-time booking validation
  • Clash detection before saving reservations
  • Automatic conflict reporting
  • First available booking slot calculation

Dashboard

  • View all available rooms
  • Filter by room
  • Filter by date
  • View personal reservations
  • Error and conflict notifications

Room Analytics

  • Occupancy percentage calculations
  • Five-day availability summary
  • Booking schedule visualization
  • Business hours utilization tracking

Technology Stack

  • Python
  • Firebase Authentication
  • MongoDB Atlas
  • HTML Templates
  • Session Management
  • Web Application Architecture

System Architecture

main.py

Core application controller responsible for:

  • User authentication
  • Room creation
  • Booking management
  • Reservation updates
  • Room deletion
  • Dashboard rendering

Database Collections

Rooms

Stores:

  • Room Name
  • Owner Email
  • Room ID

Days

Stores:

  • Room Reference
  • Booking Date
  • Day ID

Bookings

Stores:

  • Reservation Time
  • User Email
  • Day Reference
  • Booking ID

Core Functionalities

Booking Conflict Detection

The system automatically checks:

  • Existing reservations
  • Time overlaps
  • Duplicate bookings

Reservations cannot be saved if a conflict exists.

Ownership Validation

Users can only:

  • Edit their own bookings
  • Delete their own bookings
  • Delete rooms they created

This ensures secure reservation management.

Occupancy Analysis

For each room the system calculates:

  • Daily occupancy percentage
  • Number of reservations
  • Available time slots
  • Next available booking period

Data Structures Used

Lists

Used for:

  • Room collections
  • Booking collections
  • Occupancy summaries

Dictionaries

Used for:

  • Grouping bookings by date
  • Fast schedule lookup

Sets

Used for:

  • Occupied time slot tracking
  • Fast availability checks

Installation

Clone Repository

git clone https://github.com/19jenil/RoomScheduler.git

Setup Environment

pip install -r requirements.txt

Run Application

python main.py

Future Improvements

  • Admin Dashboard
  • Email Notifications
  • Calendar Integration
  • Multi-Room Booking
  • Booking Reports
  • Mobile Responsive UI
  • Analytics Dashboard

Learning Outcomes

This project demonstrates practical experience with:

  • Python Web Development
  • Firebase Authentication
  • MongoDB Atlas
  • Session Management
  • Database Design
  • CRUD Operations
  • Scheduling Algorithms
  • Conflict Detection Systems
  • Full-Stack Development

Author

Jenil Patel

GitHub: https://github.com/19jenil

About

Room reservation and scheduling system built with Python, Firebase Authentication, and MongoDB Atlas.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages