ESP32-S3 Bench Guide
ESP32-S3 N16R8 bench guide: live pinout, lessons, simulators and the bench log.
Pick your courses, block out the times you need free, and get every conflict-free schedule that fits.
EducationGitHub @akeem-abdallahOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Repository information has not been collected yet.
No updates detected yet. GitHub releases will appear here.
Schedule combination generator for students in AURAK
Translation pending
Taken from the repository README
Loading the full README.
Read the full README ↗Pick your courses. Get every conflict-free timetable.
A schedule generator for students at the American University of Ras Al Khaimah, built for the one week a year that actually matters — registration. Instead of dragging courses around a calendar to see what fits, you pick what you want to take and get every valid combination at once.
[!WARNING] Unofficial student tool — not affiliated with or endorsed by AURAK. Course data is pulled from AURAK's public schedule page and refreshed every 15 minutes, but it can lag reality. Always confirm on the official system before you register. Seat counts are deliberately not shown: stale seat data is worse than no seat data.
Pick a subject, pick a course, add another row, repeat. If you only want certain sections of a course — a specific instructor, or nothing at 8am — you can narrow a course down to just those. Hit generate and it works out every combination where nothing overlaps, then lets you page through them on a weekly grid.
Courses with no meeting times (senior projects, independent study) are handled properly rather than multiplying the results by every invisible section.
The course data refreshes itself every 15 minutes, so nobody has to remember to update anything.
| Layer | Stack | Hosted on |
|---|---|---|
| Frontend | React + Vite | Vercel |
| API | FastAPI + SQLAlchemy + Alembic | Render |
| Database | PostgreSQL | Supabase |
| Refresh (every 15 min) | Python scraper on GitHub Actions, started by cron-job.org | GitHub + cron-job.org |
cron-job.org (every 15 min) → GitHub Actions
│
▼
fetch_schedule.py ──── scrapes AURAK's public schedule page
│
▼
PostgreSQL ◀────── FastAPI ◀────── React frontend
(Supabase) (Render) (Vercel, static)
│
▼
schedules generated in-browser
The combination search runs client-side, not on the server. It's a backtracking search over bitmask-encoded weekly occupancy — each section's meeting times are packed into a bitmask, so checking whether two classes collide is a single bitwise AND. Keeping it in the browser means a hundred students generating schedules at once costs the server nothing, which matters on a free tier during registration week.
Frontend
npm install
npm run dev
Backend
cd backend
python -m venv venv
venv\Scripts\activate
pip install -r requirements.txt
Add a backend/.env with your database connection string:
DATABASE_URL=postgresql://...
Then set up the schema, load real course data, and start the API:
alembic upgrade head
python fetch_schedule.py
uvicorn app:app --reload
Interactive API docs are available at http://127.0.0.1:8000/docs once it's running.
Note that the frontend's API URL is currently hardcoded to the deployed backend in
src/App.jsx — point it at http://127.0.0.1:8000/courses if you want it hitting your
local API instead.