Skip to content
Sayed Mowafi

University Course Scheduling App

Two-campus course scheduling with automatic conflict detection and a live instructor workload view.

Context
CEN333, Abu Dhabi University
My role
Team of three: admin scheduling and conflict detection
Year
2025
Result
1st place in the course competition
Stack
Angular, TypeScript, Firebase, Firebase Realtime Database
Schedule grid across both day patterns
campuses
2
campuses
user roles
2
user roles
Firebase sync
Live
Firebase sync

Overview

Built as part of the CEN333 course at Abu Dhabi University, this is a full-featured scheduling application for managing university courses across Abu Dhabi and Al Ain campuses. The system supports two user roles: admins get full control over session creation, deletion, schedule grid viewing, conflict detection, and instructor workload monitoring, while students can view, add, drop, and swap courses. All data syncs in real time via Firebase Realtime Database. The admin panel automatically detects conflicts like instructor double-booking or course offerings missing from one campus, and highlights instructor loads with green, yellow, and red color codes. A version comparison feature lets admins save and diff schedule snapshots over time.

The problem

University scheduling across multiple campuses often leads to conflicts like double-booked instructors, unbalanced teaching loads, and courses missing from one campus. Without a clear system, administrative staff lose track of who is teaching what, where, and when, creating a poor experience for both staff and students.

The approach

An Angular web application backed by Firebase Realtime Database for live data sync. A login system determines the user role and redirects accordingly. Admins get a full-featured scheduling dashboard with conflict detection, workload visualization, and version comparison. Students get a simplified course enrollment interface. All data updates reflect instantly without page refreshes.

Screens and photos

Session creation form
Session creation form
Colour-coded instructor load table
Colour-coded instructor load table

How it works

  1. 01User logs in with university ID and password, system checks Firebase for role and redirects accordingly
  2. 02Admin lands on the schedule grid view, student lands on their enrolled courses view
  3. 03Admin creates sessions by selecting course code, instructor, campus, day pattern, time slot, and capacity
  4. 04System checks for instructor time conflicts and cross-campus offering gaps on every update
  5. 05Instructor load table calculates session counts and color-codes each: green under 4, yellow at 4, red above 4
  6. 06Admin can save the current schedule as a named version and compare two versions side by side
  7. 07Students browse available courses filtered by their campus and add, drop, or swap them in real time

What it does

  • Role-based auth: admin dashboard with full scheduling controls, student dashboard for course enrollment
  • Admin: create and delete sessions by assigning instructor, campus, time slot, and expected capacity
  • Schedule grid view showing all occupied slots across Monday/Wednesday and Tuesday/Thursday day patterns
  • Automatic conflict detection for instructor double-booking and courses missing from one campus
  • Instructor workload monitoring with color-coded load indicators: green (under 4), yellow (balanced), red (overloaded)
  • Save and compare schedule versions to track changes between planning iterations
  • Student view: browse available courses by campus, add, drop, and swap enrollments in real time
  • Firebase Realtime Database for instant data sync across all sessions

Results

Built for CEN333 (Cross Platform Mobile App Development) at Abu Dhabi University, supervised by Dr. Sajid Khawaja. All core features including login redirection, session creation, conflict detection, and student enrollment passed testing. Team: El Sayed Hesham Mowafi, Housein Hassan Kahhoul, Omar Majed Saab.

Command Palette

Search for a command to run...