Smart Academic Space & Schedule Management System
Efficiently manage rooms, classes, and schedules with automatic conflict detection.
Spacelab is a web-based academic schedule and room management application that helps educational institutions (schools, campuses, and training centers) with:
- Managing class schedules and teachers
- Preventing room booking conflicts
- Monitoring room utilization efficiently
- Providing reports and analytics for academic activities
Spacelab is built using Laravel Breeze (Blade) and focuses on automation, accuracy, and a simple, fast user interface.
Layer Technology
Frontend Laravel Breeze (Blade), Tailwind CSS, Alpine.js Backend Laravel 11 (PHP 8.3) Database PostgreSQL Cache / Queue Redis Deployment Fly.io / Caddy Testing PHPUnit
---✅ Automatic Schedule Management Manage class, teacher, and room schedules in a single system with automatic conflict detection.
🏫 Room & Building Management Monitor room availability in real-time based on schedules and capacities.
👩🏫 Academic Data Management CRUD operations for teachers, students, subjects, and academic years.
📊 Reports & Analytics Visualize room usage, learning activities, and utilization metrics.
🔐 Multi-Role Authentication Roles: Admin, Teacher, Student, and Administrative Staff — each with specific access rights.
📥 Import / Export Data Support for CSV/XLSX import and exporting reports to Excel/PDF.
spacelab/
├── app/
│ ├── Http/
│ ├── Models/
│ └── Policies/
├── database/
│ ├── migrations/
│ └── seeders/
├── resources/
│ ├── views/
│ ├── css/
│ └── js/
├── routes/
│ └── web.php
└── tests/
git clone https://github.com/habibiahmada/spacelab.git
cd spacelab
composer install
npm install && npm run build
Create the .env file from the example:
cp .env.example .env
php artisan key:generate
Then update the database connection settings (PostgreSQL):
DB_CONNECTION=pgsql
DB_HOST=127.0.0.1
DB_PORT=5432
DB_DATABASE=spacelab
DB_USERNAME=postgres
DB_PASSWORD=yourpassword
php artisan migrate --seed
php artisan serve
Open in browser:
👉 http://localhost:8000
-
The system automatically prevents schedule conflicts using logic that:
-
Checks for overlapping time ranges
-
Validates teacher, room, and class availability
-
Displays warnings when conflicts are detected
CREATE TABLE schedule_entries (
id uuid PRIMARY KEY DEFAULT gen_random_uuid(),
room_id uuid REFERENCES rooms(id),
teacher_id uuid REFERENCES teachers(id),
class_id uuid REFERENCES classes(id),
subject_id uuid REFERENCES subjects(id),
start_at timestamptz NOT NULL,
end_at timestamptz NOT NULL,
status varchar(32) DEFAULT 'confirmed'
);
🧩 Roadmap & Future Enhancements
-
Dynamic academic calendar by semester
-
Attendance module tied to schedule
-
Interactive dashboard with charts
-
PDF report export with modern design
Spacelab is independently developed by
Habib Ahmad Aziz (habibiahmada)
Made with ❤️ using Laravel 11 & Breeze (Blade)
