How arifbil/campus-guide-copilot works
Campus Guide Copilot is a student-facing campus information app, with chat-based assistance, campus navigation, academic information, and student services. Its principal runtime path is the chat API: it sends requests to Gemini, can query PostgreSQL for campus and student data, and returns a response. Separate API routes expose room, location, service, schedule, and student data. The navigation page uses a map component. UI-to-API wiring is not shown in the available evidence, so those links are omitted; some route internals were not sampled.
Main entry points: db.js PostgreSQL · chat/route.js Chat endpoint · page.js Navigation page · locations/route.js Location API
Components 24
Student experience
- Home page
app/page.js - Academic page
app/akademik/page.js - Services page
app/layanan/page.js - Navigation page
app/navigasi/page.js - Campus map
app/navigasi/Map.jsx
AI assistant
- Chat endpoint
app/api/chat/route.js - Google Gemini
Campus information
- Location API
app/api/locations/route.js - Rooms API
app/api/rooms/route.js - Room schedule API
app/api/rooms/[id]/schedule/route.js - Room status API
app/api/rooms/[id]/status/route.js - Schedule lookup
app/api/tools/get-schedule/route.js - Location lookup
app/api/tools/find-location/route.js - Room lookup
app/api/tools/find-room/route.js - Room status lookup
app/api/tools/get-room-status/route.js
Student services
- Services API
app/api/services/route.js - Service lookup
app/api/tools/find-service/route.js - Student API
app/api/student/route.js - Student info lookup
app/api/tools/get-student-info/route.js - Advisor lookup
app/api/tools/get-advisor/route.js - KRS status lookup
app/api/tools/check-krs-status/route.js - Letter draft
app/api/tools/create-letter/route.js
Data access
- PostgreSQL
lib/db.js
Other components
- Student
Connections 18
- Navigation page → Campus map: renders
app/navigasi/page.js - Chat endpoint → Google Gemini: requests generation
app/api/chat/route.js - Chat endpoint → PostgreSQL: queries and saves
app/api/chat/route.js - Location API → PostgreSQL: queries
app/api/locations/route.js - Rooms API → PostgreSQL: queries
app/api/rooms/route.js - Room schedule API → PostgreSQL: queries
app/api/rooms/[id]/schedule/route.js - Room status API → PostgreSQL: queries
app/api/rooms/[id]/status/route.js - Schedule lookup → PostgreSQL: queries
app/api/tools/get-schedule/route.js - Location lookup → PostgreSQL: queries
app/api/tools/find-location/route.js - Room lookup → PostgreSQL: queries
app/api/tools/find-room/route.js - Room status lookup → PostgreSQL: queries
app/api/tools/get-room-status/route.js - Services API → PostgreSQL: queries
app/api/services/route.js - Service lookup → PostgreSQL: queries
app/api/tools/find-service/route.js - Student API → PostgreSQL: queries
app/api/student/route.js - Student info lookup → PostgreSQL: queries
app/api/tools/get-student-info/route.js - Advisor lookup → PostgreSQL: queries
app/api/tools/get-advisor/route.js - KRS status lookup → PostgreSQL: queries
app/api/tools/check-krs-status/route.js - Letter draft → PostgreSQL: queries and saves
app/api/tools/create-letter/route.js