Skip to main content

A comprehensive classroom booking system with Tkinter GUI

Project description

SLOTRR - Classroom Booking System

PyPI version Python 3.8+ License: MIT Tkinter

A comprehensive classroom booking system with a beautiful Tkinter GUI, built for educational institutions to manage classroom reservations efficiently.

SLOTRR Logo

โœจ 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 backend
    • bcrypt - Password hashing
    • Pillow - Image processing
    • python-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 access
  • classrooms: Room information and capacity
  • bookings: Reservation records with time slots
  • booking_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.

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests if applicable
  5. 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


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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

slotrr-1.0.1.tar.gz (22.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

slotrr-1.0.1-py3-none-any.whl (27.4 kB view details)

Uploaded Python 3

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

Hashes for slotrr-1.0.1.tar.gz
Algorithm Hash digest
SHA256 0ca064aea841c9c621be4d17f61d96e0221578824116c5049591df5349cc8eb0
MD5 77ce73b1dbf49255788b3f3b60917fca
BLAKE2b-256 e1bdb7158b3e0dc53019529a82ec0b15e2f241fd56d61d707d032a670d867e92

See more details on using hashes here.

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

Hashes for slotrr-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 d87edef5b5f9d8bedd3109042a8cba1b41d91f2221bc8ad945e8b030fc2115a4
MD5 6885214fb25db7f05a16c6d41b48d994
BLAKE2b-256 2e4ca660ca0c21a8e824935808c97a1b1839a9d9a7a74fc139a845d8d50777bb

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page