How dzakyfzl/webuft works
This repository implements a UKM Fotografi Telkom event, gallery, and administration platform, with a Next.js frontend and FastAPI backend. The main visitor workflow is browsing events and creative works; administrators also manage events, accounts, galleries, links, and media migration. Event forms support attendance or voting, while Angie provides a separate AI chat workflow using knowledge retrieval and public event context. The README is empty, and sampled backend excerpts are incomplete, so uncertain connections among unsampled feature modules are not drawn.
Main entry points: main.py FastAPI App · routers Content Routes · chatbot_service.py Chat Service · app Web Pages
Components 25
Visitor and Admin Web
- Web Pages
frontend/app - API Client
frontend/app/lib/api.ts - Chat Widget
frontend/app/components/ChatWidget.tsx
Backend API
- FastAPI App
Backend/main.py - DB Sessions
Backend/app/core/database.py - Application Database
Events and Submissions
- Content Routes
Backend/app/routers - Event Service
Backend/app/services/acara_service.py - Creative Works
Backend/app/services/karya_service.py - Albums and Photos
Backend/app/services/album_service.py - Event Forms
Backend/app/services/form_service.py - Form Data
Backend/app/repositories/form_repository.py
Administration
- Admin Routes
Backend/app/routers - Account Management
Backend/app/services/akun_service.py - Shortlinks
Backend/app/services/shortlink.py - Media Migration
Backend/app/services/migrate_service.py - Media File Records
Backend/app/repositories/file_repository.py
Angie Chatbot
- Chat Routes
Backend/app/routers/chatbot.py - Chat Service
Backend/app/services/chatbot_service.py - Chat Data
Backend/app/repositories/chatbot_repository.py - Live Event Context
Backend/app/services/chatbot_context_service.py - Public Event Reads
Backend/app/repositories/chatbot_context_repository.py
Other components
- Visitor
- Administrator
- Google Gemini
Connections 25
- Visitor → Web Pages: browses
- Administrator → Web Pages: manages
- Web Pages → API Client: requests data
- API Client → FastAPI App: calls API
- FastAPI App → Content Routes: includes routes
- FastAPI App → Admin Routes: includes routes
- FastAPI App → Chat Routes: includes route
- FastAPI App → DB Sessions: initializes
- DB Sessions → Application Database: connects
- Content Routes → Event Service: dispatches
- Content Routes → Creative Works: dispatches
- Content Routes → Albums and Photos: dispatches
- Content Routes → Event Forms: dispatches
- Event Forms → Form Data: reads and writes
- Admin Routes → Account Management: dispatches
- Admin Routes → Shortlinks: dispatches
- Admin Routes → Media Migration: dispatches
- Media Migration → Media File Records: reads paths
- Chat Widget → Chat Routes: sends messages
- Chat Routes → Chat Service: dispatches
- Chat Service → Chat Data: queries and stores
- Chat Service → Live Event Context: builds context
- Live Event Context → Public Event Reads: reads events
- Public Event Reads → Application Database: selects public events
- Chat Service → Google Gemini: embeds and generates