ESP32-S3 Bench Guide
ESP32‑S3 N16R8 벤치 가이드: 실시간 핀아웃, 강의, 시뮬레이터 및 벤치 로그
저장소 정보는 아직 수집하지 않았습니다.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
Schedule combination generator for students in AURAK
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
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.