$ cat projects/university course scheduler/README.md
University Course Scheduler
A client-side-only, single-page web app for planning semester schedules — CSV import, drag-and-drop weekly calendar, conflict detection, and side-by-side plan comparison. Fully Persian and RTL.
- status
- Live
- duration
- Ongoing
- role
- Solo Developer
- stack
- React · TypeScript · Vite · Tailwind CSS · Zustand · dnd-kit · PapaParse
$ head summary.md
Quick summary
problem
Problem Solved
Students plan semesters by juggling course-offering tables from the university portal, spreadsheets, and paper. Keeping track of which sections fit, avoiding time conflicts (classes and exams), and comparing alternative schedules is tedious and error-prone — especially without a visual weekly view.
solution
Our Solution
A client-side-only React + TypeScript app where students import course offerings via CSV (or paste raw text), drag sections onto a 6-day weekly calendar, and get automatic class and exam conflict detection. Multiple plans can be created, compared side-by-side, and exported as text or PDF. Everything is Persian and RTL.
impact
Results Achieved
Re-importing CSV updates existing data and removes stale courses without destroying saved plans. Smart overlap layout keeps fully and partially overlapping sections visible. Live stats (units, sections, days on campus, conflicts) and a comparison view make choosing between plans quick and clear.
$ cat features.txt
Key features
- ▸Flexible CSV import: upload a file or paste raw CSV text
- ▸Smart merge & sync: re-importing updates existing data and removes stale courses without destroying saved plans
- ▸Dynamic multi-select filters (Course Name, Instructor, Day, Exact Time) populated from imported data
- ▸Full-text search across course names, codes, and instructors
- ▸Weekly (Sat-Thu, 07:00-21:00) and daily calendar views
- ▸Drag-and-drop placement with smart overlap layout (twins split width; partial overlaps layer)
- ▸Class and exam conflict detection with a strict 1-minute threshold and a details modal
- ▸Active/inactive toggle to mute sections for comparison without removing them
- ▸Multiple plans with create, rename, duplicate, delete, and a side-by-side comparison view
- ▸Custom export to clipboard or print-to-PDF (RTL-optimized), plus full JSON backup/restore
- ▸Archiving to declutter the sidebar without affecting existing plans
- ▸Fully Persian (Farsi) and right-to-left UI
Interested in working together?
I'm always open to discussing new opportunities and interesting projects. Let's create something amazing together.
