The course scheduling tool that InSIS should have been
Give VŠE students instant, filterable access to every course, timetable slot, and study plan in one modern interface.
Kreditožrouti is a course scheduling system for students at Prague University of Economics and Business (VŠE). It scrapes course data from InSIS — the university's information system — and presents it in a fast, filterable interface with a live timetable and automatic conflict detection.
Every semester, 16,000+ VŠE students spend hours in InSIS trying to build a schedule. InSIS has no cross-filtering, no timetable preview, and no conflict detection. Kreditožrouti fixes that.
- Instant filtering — search by faculty, time, lecturer, ECTS, language, campus, and more
- Live timetable grid — drag-and-drop, real-time conflict detection
- Study plan wizard — picks courses you still need based on your curriculum
- Campus conflict detection — flags schedules requiring impossible commutes between Žižkov and Jižní Město
- Multi-language — Czech and English
- Persistent — your schedule is saved in browser localStorage
New to Kreditožrouti? The user guide walks you through every feature:
https://kreditozrouti.cz/docs/en/getting-started
The app runs at kreditozrouti.cz — no sign-up needed.
For local development and deployment, see the engineering docs:
- Developer Setup — prerequisites, env vars, running locally
- Contributing — branch strategy, commit conventions, PR process
- Deployment — Docker Compose stacks, CI/CD, production ops
Full engineering docs are also available at https://kreditozrouti.cz/docs/dev/
https://kreditozrouti.cz/docs/en/
https://kreditozrouti.cz/docs/dev/ — architecture, API, client, scraper, deployment, contributing
Source files are in docs/dev/:
| Area | Overview | Details |
|---|---|---|
| Engineering | docs/dev/ENGINEERING.md | setup · contributing |
| Architecture | docs/dev/ARCHITECTURE.md | monorepo · services · data flow · containers |
| API | docs/dev/api/README.md | endpoints · services · jobs · database |
| Client | docs/dev/client/README.md | stores · composables · timetable |
| Scraper | docs/dev/scraper/README.md | jobs · extraction · queue |
| Shared | docs/dev/shared/README.md | domain · http · queue |
| Deployment | docs/dev/DEPLOYMENT.md | docker · ci/cd · infrastructure · operations |
| Layer | Technology |
|---|---|
| Frontend | Vue 3, Pinia, Tailwind CSS 4, Vite, Vue I18n |
| Backend | Express 5, Kysely, BullMQ, Zod, TypeScript |
| Scraper | Axios, Cheerio, BullMQ |
| Database | MySQL 8, Redis |
| DevOps | Docker, GitHub Actions, Traefik |
Contributions are welcome — bug fixes, features, docs, and translations.
See docs/engineering/CONTRIBUTING.md for the full guide.
Short version:
- Fork → branch off
develop→ PR back todevelop - Use conventional commits:
feat:,fix:,docs:,refactor:,chore: - Run
make lint && make formatbefore committing
This project is provided for educational and personal use. Not officially affiliated with VŠE.
Data is scraped from InSIS. Use at your own risk. Respect InSIS rate limits and terms of service.
Bugs and feature requests: GitHub Issues
Made with ❤️ for VŠE students · VŠE Prague · InSIS