Omnigraph
그래프 엔진으로 컨텍스트를 조립하고, 객체 저장소 기반에서 에이전트가 코드처럼 그래프 데이터를 분기·타입·검토·병합·감사·거버넌스합니다
저장소 정보는 아직 수집하지 않았습니다.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗A decision tool for Qatar University's Computer Science department. It answers one question:
How many students should we admit into the next CS intake, and what course seats does that number need?
It simulates every student in the department moving through the real CS study plan (the 2024 roadmap: 41 courses, 120 credit hours), one semester at a time. Students register by seniority, compete for a limited number of seats in each course, pass or fail, fall behind, or leave. The simulation includes the students already enrolled and the seats used by other programs, so the answer reflects how crowded the courses will really be. The tool tries many intake sizes, compares each with a world where seats never run out, and reports the largest intake whose seat-shortage harm stays within limits the department sets.
It runs locally on a department PC. Nothing is sent to an outside server, and there is no login. Computer Engineering can be added later as a second program on the same engine.
Department heads and planning staff who set the intake number. You do not need to understand the simulation to use it: the site shows a recommended intake, a safe range, the reason, and what it would take (in seats) to admit more. Every input is labelled QU data or estimate, and results resting mostly on estimates carry an "illustrative" badge.
Sections and seats change every semester. A recommendation assumes the seats you entered stay roughly the same for the next six years. Update the data and re-run whenever the schedule changes.
On the department PC, double-click start.bat. It starts the backend and the website and
opens http://localhost:3000. The first time, the site asks for the past intakes and the seats
used by other programs.
Manual start:
py -m pip install -r requirements.txt # 1. Python dependencies (project root)
py -m uvicorn src.api:app --port 8001 # 2. backend API
cd web && npm install && npm run dev # 3. website (second terminal)
# open http://localhost:3000 (not 127.0.0.1:3000)
Command line only (no website):
py run.py # baseline simulation -> outputs/
py run.py --intake # plus the full intake analysis (a minute or two on a multi-core PC)
Tests: py -m pytest tests/ -q.
Optional Advisor chat. The Advisor explains a result and proposes changes to test, using a
local model through Ollama (free, nothing leaves the PC). Copy .env.example
to .env to choose the model. Without it, the rules-based advice on the Advisor page still works.
The AI never produces the intake number; the simulation does.
Step-by-step guidance for staff: docs/user_guide.md.
Data you enter ──► Simulator (many cohorts, one shared seat pool) ──► Intake analysis
seats, pass rates, • prerequisites and once-a-year courses • many intake sizes N
past intakes, • seniority-based registration • many random replications
other programs' • pass/fail, GPA, probation, dropout • vs. a no-seat-shortage run
seats • decision rule + uncertainty
The full method, assumptions and limits are in docs/methodology.md.
On the estimated data shipped with the project (five past intakes of 100, default seats, the "Balanced" policy: seat shortages may cost at most 2 points of graduation rate and 10 points of on-time rate):
| Recommended next intake | 40 |
| Sustainable every year | 70 |
| Upper limit (beyond this, extra students add little) | 90 |
| Limit that binds first | on-time graduation |
| Course that runs out of seats first | CSEL2 |
The default plan models each elective slot (CSEL1 to CSEL4) as one 35-70 seat course; at QU the real elective capacity is the sum of all elective sections, so entering real numbers changes this. Treat the table as a demonstration of the output.
src/ Python backend, in layers (a layer imports only from layers below it)
domain → validation → engine → analysis → storage → planner → api
web/ Next.js website: Intake Planner, Bottlenecks, Walkthrough, Advisor, Data, Programs
data/ Seed data: curriculum.json, simulation_config.json (the SQLite DB is generated)
scripts/ Maintenance tools: calibrate seats, seed the DB, profile a run
tests/ pytest suite (includes a test that enforces the layering)
docs/ Documentation (below)
references/ The official QU CS study plan and prerequisite flowchart (PDF)
run.py Command-line entry point start.bat One-click launcher
Details and the rules for where new code goes: docs/architecture.md.
| Read this | If you want to |
|---|---|
| docs/user_guide.md | use the tool each year |
| docs/methodology.md | understand and defend the recommendation |
| docs/architecture.md | find your way around the code |
| docs/engine.md | know how one student and one term behave |
| docs/assumptions.md | check any parameter and its justification |
| docs/api.md | call the HTTP API |
| docs/database.md | see the SQLite schema |
| CLAUDE.md | work on the code (commands, design record, constraints) |