A comprehensive classroom booking system with Tkinter GUI
Project description
SLOTRR - Classroom Booking System
A comprehensive classroom booking system with a beautiful Tkinter GUI, built for educational institutions to manage classroom reservations efficiently.
โจ Features
๐จ Beautiful User Interface
- Custom Tkinter Design: Handcrafted UI with rounded corners, shadows, and smooth animations
- Dark/Light Theme Toggle: Instant theme switching with persistent preferences
- Responsive Layout: Adapts to different window sizes gracefully
- Modern Navigation: Horizontal top navigation bar with active indicators
๐ Role-Based Access Control
- Admin Dashboard: Full CRUD operations on rooms, users, and bookings
- Teacher Portal: Book classrooms and manage personal bookings
- Student Integration: Email notifications for scheduled lectures
- Secure Authentication: Password hashing with bcrypt
๐ Advanced Booking System
- Real-time Availability: Check room availability instantly
- Conflict Detection: Prevents double-bookings automatically
- Time Slot Management: Flexible scheduling with custom time slots
- Multi-student Selection: Searchable dropdown for student selection
- Booking History: Complete history with filtering options
๐ง Email Notifications
- Automated Emails: Instant notifications to students and admins
- Custom Templates: Professional email templates with branding
- SMTP Integration: Secure email delivery via Gmail SMTP
- Booking Confirmations: Detailed booking summaries
๐บ๏ธ Campus Visualization
- Interactive Map: Visual grid-based campus layout
- Color Coding: Green (available), Red (booked), Yellow (partial)
- Room Details: Capacity, floor, building information
- Date Navigation: View availability for any date
๐ Analytics & Reports
- Booking Statistics: Most booked rooms, teacher activity
- Visual Charts: Canvas-drawn bar and line charts
- CSV Export: Download reports for external analysis
- Real-time Metrics: Live dashboard with key performance indicators
๐ Quick Start
Installation
pip install slotrr
Basic Usage
# Launch the application
slotrr
Configuration
Create a .env file in your working directory:
# Supabase Configuration
SUPABASE_URL=https://your-project.supabase.co
SUPABASE_ANON_KEY=your_supabase_anon_key
# Email Configuration
SMTP_SERVER=smtp.gmail.com
SMTP_PORT=587
SMTP_USERNAME=your-email@gmail.com
SMTP_PASSWORD=your_gmail_app_password
๐ Requirements
- Python: 3.8 or higher
- Dependencies:
supabase- Database backendbcrypt- Password hashingPillow- Image processingpython-dotenv- Environment variables
๐๏ธ Architecture
slotrr/
โโโ main.py # Application entry point
โโโ config.py # Configuration management
โโโ db.py # Supabase database operations
โโโ auth.py # Authentication logic
โโโ email_service.py # Email notification service
โโโ ui/
โโโ components.py # Reusable UI components
โโโ theme.py # Theme management
โโโ login_screen.py # Authentication interface
โโโ admin/ # Admin-specific screens
โโโ teacher/ # Teacher-specific screens
๐ฏ User Roles & Permissions
๐ Administrator
- User Management: Add/edit/delete users (teachers, students)
- Room Management: CRUD operations on classrooms
- Booking Oversight: View, approve, cancel any booking
- Analytics: Access to all reports and statistics
- System Configuration: Full system access
๐จโ๐ซ Teacher
- Classroom Booking: Reserve rooms for lectures
- Student Management: Select students for bookings
- Booking History: View and manage personal bookings
- Schedule Planning: Plan lectures with time slots
๐จโ๐ Student
- Email Notifications: Receive booking confirmations
- Lecture Tracking: Stay informed about scheduled classes
- No Login Required: Email-only integration
๐ง Email Templates
Student Notification
๐ Lecture Scheduled โ [Subject Name]
Hello [Student Name],
A new lecture has been scheduled for you:
๐ Subject: [Subject Name]
๐จโ๐ซ Teacher: [Teacher Name]
๐ซ Classroom: [Room Name]
๐
Date: [Date]
โฐ Time: [Start] โ [End]
Please arrive on time!
Best regards,
SLOTRR Team
Admin Alert
๐ New Booking Alert โ [Room Name]
Hello Admin,
New booking created:
๐จโ๐ซ Teacher: [Teacher Name]
๐ Subject: [Subject Name]
๐ฅ Students: [Count] enrolled
View details in Admin Dashboard.
โ SLOTRR System
๐๏ธ Database Schema
Core Tables
users: User accounts with role-based accessclassrooms: Room information and capacitybookings: Reservation records with time slotsbooking_students: Many-to-many student assignments
Sample Data
The package includes SQL scripts for sample data including:
- Pre-configured admin account
- Sample classrooms across multiple buildings
- Test users for each role
๐ง Development Setup
# Clone repository
git clone https://github.com/yourusername/slotrr.git
cd slotrr
# Install in development mode
pip install -e .
# Run application
slotrr
๐งช Testing
# Run with test database
export SUPABASE_URL=test_url
export SUPABASE_ANON_KEY=test_key
# Launch app
slotrr
๐ค Contributing
We welcome contributions! Please see our Contributing Guide for details.
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
๐ License
This project is licensed under the MIT License - see the LICENSE file for details.
๐ Acknowledgments
- Built with Tkinter for the GUI
- Powered by Supabase for the backend
- Email service using Python's
smtplib
๐ Support
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Email: support@slotrr.com
SLOTRR - Making classroom management simple and beautiful! ๐โจ
Development
Clone the repo and install dependencies:
git clone <repo-url>
cd slotrr
pip install -r requirements.txt
python -m slotrr.main
License
MIT License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file slotrr-1.0.1.tar.gz.
File metadata
- Download URL: slotrr-1.0.1.tar.gz
- Upload date:
- Size: 22.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0ca064aea841c9c621be4d17f61d96e0221578824116c5049591df5349cc8eb0
|
|
| MD5 |
77ce73b1dbf49255788b3f3b60917fca
|
|
| BLAKE2b-256 |
e1bdb7158b3e0dc53019529a82ec0b15e2f241fd56d61d707d032a670d867e92
|
File details
Details for the file slotrr-1.0.1-py3-none-any.whl.
File metadata
- Download URL: slotrr-1.0.1-py3-none-any.whl
- Upload date:
- Size: 27.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d87edef5b5f9d8bedd3109042a8cba1b41d91f2221bc8ad945e8b030fc2115a4
|
|
| MD5 |
6885214fb25db7f05a16c6d41b48d994
|
|
| BLAKE2b-256 |
2e4ca660ca0c21a8e824935808c97a1b1839a9d9a7a74fc139a845d8d50777bb
|