How dminh-1810/unifs works
UniFs is a student academic-advising assistant for FPTU: students ask questions and receive personalized academic calculations, policy answers, and schedule or attendance guidance. The documented product also includes a nine-semester curriculum roadmap, OJT and graduation eligibility checks, FE scoring, and FAP synchronization; the supplied tree has no app.py, so its Streamlit dashboard workflow cannot be traced here. The shown Telegram entry point authenticates students and routes questions through Gemini tools or keyword fallback. Edges reflect excerpts, SOURCE INDEX references, or README statements; unsampled dashboard wiring is omitted.
Main entry points: advisor.py Academic calculations · telegram_bot.py Telegram bot · fallback.py Keyword fallback · tools.py Function tools
Components 18
Student access
- Telegram bot
telegram_bot.py - Gemini agent
llm.py - Keyword fallback
fallback.py
Academic advising
- Function tools
tools.py - Academic calculations
advisor.py - FE and OJT checks
advisor.py - Curriculum roadmap
advisor.py - Schedule and attendance
advisor.py
Policy and syllabus
- Hybrid policy search
policy_search.py - Syllabus lookup
flm_store.py
Data and synchronization
- FAP sync server
server.py - Data loader
data_loader.py - Academic database
database.py - Academic configuration
config.py
Other components
- Student
- Telegram service
- Gemini embeddings
- FAP browser extension
Connections 24
- Student → Telegram bot: asks questions
README.md - Telegram bot → Telegram service: polls and replies
telegram_bot.py - Telegram bot → Academic database: verifies login
telegram_bot.py - Telegram bot → Gemini agent: routes question
telegram_bot.py - Telegram bot → Keyword fallback: falls back
telegram_bot.py - Telegram bot → Academic calculations: creates advisor
telegram_bot.py - Gemini agent → Function tools: builds tools
llm.py - Function tools → Academic calculations: calls calculations
tools.py - Function tools → Hybrid policy search: searches policies
tools.py - Function tools → Syllabus lookup: looks up syllabus
tools.py - Keyword fallback → Academic calculations: calls calculations
fallback.py - Keyword fallback → Hybrid policy search: searches policies
fallback.py - Keyword fallback → Syllabus lookup: looks up syllabus
fallback.py - Academic calculations → Data loader: loads student data
advisor.py - Academic calculations → Academic configuration: uses academic rules
advisor.py - Data loader → Academic database: fetches records
data_loader.py - Hybrid policy search → Data loader: loads policy chunks
policy_search.py - Hybrid policy search → Gemini embeddings: requests embeddings
policy_search.py - FAP sync server → Academic database: stores FAP sync
server.py - FAP browser extension → FAP sync server: posts synced data
README.md - FAP sync server → Syllabus lookup: writes syllabus data
server.py - FE and OJT checks → Academic calculations: implemented in
README.md - Curriculum roadmap → Academic calculations: implemented in
README.md - Schedule and attendance → Academic calculations: implemented in
README.md