A front-end only web application for scheduling instructor workloads with drag-and-drop functionality. All data is stored in the browser's localStorage with import/export capabilities. Data Export/Import can be used to move data between different machines/browsers.
- Add instructors by name
- View total workload per instructor (in credits)
- Delete instructors (protected if they have assigned courses)
Courses should be treated as an instance of a section.
- Add courses with name, credits, and assigned instructor
- Edit course details by double-clicking on any scheduled course
- Delete courses (automatically removes from schedule)
- Drag courses to schedule slots
- Add classrooms by room number
- Show/hide individual classrooms
- Delete classrooms
- Per-day customizable timeslots
- Add different timeslots for each day of the week
- Quick "Copy to All" button to replicate Monday's schedule across all weekdays
- Remove individual timeslots per day
- Flexible scheduling with different hours per day
- Visual grid showing Monday-Friday schedule
- Drag and drop courses onto any available time slot
- Courses can be assigned to multiple slots (for classes that meet multiple times per week)
- Each scheduled slot shows:
- Course name
- Credits
- Instructor name
- Modality badge
When dropping a course onto a schedule slot, choose from:
- 🏫 In-Person - Traditional classroom instruction
- 💻 Online - Virtual/remote instruction
- 🔄 Hybrid - Mix of in-person and online
- Automatic save to browser localStorage
- Export schedule as JSON file
- Import previously exported JSON files
- Backward compatible with older data formats
- 100% Client-Side - No server required
- Local Storage - Data persists in browser
- Drag & Drop API - Native HTML5 drag and drop
- Responsive Design - Works on various screen sizes
- No Dependencies - Pure HTML, CSS, and JavaScript
Sample data is provided in the docs/sample-data directory and can be imported into either a locally running version or the GitHub Pages hosted version of the site.
