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.
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.
- Secure login system using Firebase Authentication
- Session-based user management
- Protected routes for authenticated users
- Secure logout functionality
- Create new rooms
- Prevent duplicate room names
- Delete owned rooms
- Room ownership validation
- Book room time slots
- Edit existing bookings
- Delete bookings
- Conflict detection and prevention
- Real-time booking validation
- Clash detection before saving reservations
- Automatic conflict reporting
- First available booking slot calculation
- View all available rooms
- Filter by room
- Filter by date
- View personal reservations
- Error and conflict notifications
- Occupancy percentage calculations
- Five-day availability summary
- Booking schedule visualization
- Business hours utilization tracking
- Python
- Firebase Authentication
- MongoDB Atlas
- HTML Templates
- Session Management
- Web Application Architecture
Core application controller responsible for:
- User authentication
- Room creation
- Booking management
- Reservation updates
- Room deletion
- Dashboard rendering
Stores:
- Room Name
- Owner Email
- Room ID
Stores:
- Room Reference
- Booking Date
- Day ID
Stores:
- Reservation Time
- User Email
- Day Reference
- Booking ID
The system automatically checks:
- Existing reservations
- Time overlaps
- Duplicate bookings
Reservations cannot be saved if a conflict exists.
Users can only:
- Edit their own bookings
- Delete their own bookings
- Delete rooms they created
This ensures secure reservation management.
For each room the system calculates:
- Daily occupancy percentage
- Number of reservations
- Available time slots
- Next available booking period
Used for:
- Room collections
- Booking collections
- Occupancy summaries
Used for:
- Grouping bookings by date
- Fast schedule lookup
Used for:
- Occupied time slot tracking
- Fast availability checks
git clone https://github.com/19jenil/RoomScheduler.gitpip install -r requirements.txtpython main.py- Admin Dashboard
- Email Notifications
- Calendar Integration
- Multi-Room Booking
- Booking Reports
- Mobile Responsive UI
- Analytics Dashboard
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
Jenil Patel
GitHub: https://github.com/19jenil