Overview
EmptyClassroom currently tracks availability for 77 classrooms across two major Boston University buildings. Each building has its own operating hours and collection of classrooms available for study.Supported Buildings
EmptyClassroom monitors classrooms in the following buildings:CAS
College of Arts & Sciences
- 54 classrooms
- Open 7 AM - 11 PM
- Includes basement and upper-floor rooms
CGS
College of General Studies
- 23 classrooms
- Open 7 AM - 9:30 PM
- Multi-floor classroom building
College of Arts & Sciences (CAS)
Building Information
- Building code: CAS
- Full name: College of Arts & Sciences
- Operating hours: 7:00 AM - 11:00 PM
- Total classrooms tracked: 54
Classroom Distribution
CAS has a diverse mix of classroom types and locations:Basement Level (B-prefix)
- B06A, B06B - Split basement rooms
- B12, B18, B20 - Basement classrooms
- B25A, B25B - Additional split basement rooms
- B27 - Basement classroom
- B36 - Basement classroom
Basement classrooms often have the fewest conflicts and can be great for quiet study sessions.
First Floor
- 116 - Main level classroom
- 114A, 114B - Split first-floor rooms
Second Floor
- 201, 203, 208 - Standard 200-level rooms
- 204A, 204B - Split classrooms
- 211, 212, 213, 214, 216, 218, 220 - Sequential rooms
- 222, 223, 224, 225, 226, 227, 228, 229 - Upper 200-level rooms
- 233, 235, 237 - End of second floor
Third Floor
- 310, 312, 313, 314, 315, 316, 318, 320 - 300-level rooms
- 322, 323A, 323B, 324, 325, 326 - Additional 300-level rooms
Fourth Floor
- 424, 426, 427 - 400-level rooms
Fifth Floor
- 522 - Single 500-level room
Special Spaces
- Tsai - Tsai Performance Center (auditorium-style)
CAS has the widest variety of room types, from small split classrooms (A/B variants) to larger lecture halls.
College of General Studies (CGS)
Building Information
- Building code: CGS
- Full name: College of General Studies
- Operating hours: 7:00 AM - 9:30 PM
- Total classrooms tracked: 23
Classroom Distribution
CGS classrooms are organized across multiple floors:First Floor
- 111A, 111B - Split first-floor rooms
- 113, 115 - Standard first-floor rooms
- 117A, 117B - Additional split rooms
- 121, 123, 129 - First-floor classrooms
Third Floor
- 311, 313, 315 - 300-level rooms
- 321, 323 - Additional 300-level rooms
Fourth Floor
- 421, 423 - 400-level rooms
Fifth Floor
- 505 - Single 500-level room
- 511, 515 - 500-level classrooms
- 521, 523, 525, 527 - Upper 500-level rooms
CGS has many split classrooms (A/B variants) on the first floor, which are often smaller and more intimate for individual or small-group study.
How Classrooms Are Displayed
Building Accordions
Classrooms are organized into expandable building sections:Building header
Shows the full building name, code, and availability count (e.g., “College of Arts & Sciences - CAS” with “5 available”).
Availability badge
Green badge with count for available rooms, or red “unavailable” badge if none are free.
Classroom Cards
Each classroom displays:- Room name: Building code + room number (e.g., “CAS 225”)
- Status indicator: Green dot (available now) or red dot (occupied)
- Time slots: All available time periods for the day
- Current slot highlight: Active time slot shown in green text
Intelligent Sorting
Classrooms are sorted using a smart algorithm:-
Letter-prefixed rooms first (alphabetically)
- B06A, B06B, B12, B18, B20, B25A, B25B, B27, B36, Tsai
-
Numeric rooms second (numerically)
- 111, 113, 115, 116, 121, 201, 203, etc.
-
Suffixed rooms (by base number, then suffix)
- 111A before 111B
- 204A before 204B
- 323A before 323B
Availability Detection
EmptyClassroom determines classroom availability by:Time Slot Matching
The system checks if the current time falls within any available time slot:Real-Time Updates
The interface updates every minute:- Green/red indicators reflect current availability
- Active time slots are highlighted in green
- Availability counts update automatically
- No refresh needed during the current session
The minute-based update cycle is implemented in
frontend/app/components/BuildingAccordion.tsx:15 using a smart setTimeout that syncs with clock minutes.Gap Requirements
A classroom is considered “available” when:- There’s at least a 30-minute gap in the schedule
- Configured as
MIN_GAP_MINUTES = 28(with 2-minute buffer) inbackend/config.py:13 - Time slots are calculated from BU’s official course schedule
Data Structure
Classrooms are defined inbackend/config.py:21:
Building Configuration
Classroom Configuration
The
id field corresponds to BU’s internal room identifier, while name is the familiar room number students use.Complete Classroom Lists
All CAS Classrooms
View all 37 CAS classrooms
View all 37 CAS classrooms
- 116, 114A, 114B
- 201, 203, 204A, 204B, 208, 211, 212, 213, 214, 216, 218, 220, 222, 223, 224, 225, 226, 227, 228, 229, 233, 235, 237
- 310, 312, 313, 314, 315, 316, 318, 320, 322, 323A, 323B, 324, 325, 326
- 424, 426, 427
- 522
- B06A, B06B, B12, B18, B20, B25A, B25B, B27, B36
- Tsai
All CGS Classrooms
View all 22 CGS classrooms
View all 22 CGS classrooms
- 111A, 111B, 113, 115, 117A, 117B, 121, 123, 129
- 311, 313, 315, 321, 323
- 421, 423
- 505, 511, 515, 521, 523, 525, 527
Future Building Additions
EmptyClassroom is designed to scale to additional buildings. The architecture supports:- Adding new buildings to the
BUILDINGSconfiguration - Mapping classrooms to their respective buildings
- Custom operating hours per building
- Automatic integration with the search and filtering system
Want to request a new building? Use the Request form linked in the app footer.
Technical Implementation
Backend Organization
Classroom data is fetched from BU’s scheduling API and organized by building:backend/main.py:165.
Frontend Rendering
Buildings and classrooms are rendered using:- Radix UI Accordion for expandable building sections
- React state management for tracking open/closed state
- Real-time filtering based on search queries
- Dynamic availability badges that update every minute
frontend/app/components/BuildingAccordion.tsx:1.
Tips for Finding Classrooms
Explore basement rooms
CAS basement rooms (B-prefix) often have fewer classes scheduled and more availability.
Check both buildings
If one building is full, the other might have plenty of open rooms.
Mind the closing times
CGS closes at 9:30 PM, while CAS stays open until 11 PM for late-night studying.
Use split rooms
A/B rooms (111A/111B, 204A/204B) are often smaller and quieter.