KilasTugas Specification
1. Problem & Value Proposition
- Problem: Mahasiswa mengalami Task Paralysis / Overwhelm Freeze saat menerima silabus/tugas kuliah tebal (5–15 halaman) dengan deadline jauh, berujung sistem kebut semalam (H-1/H-0).
- Core Value: "Jangan tanya 'kapan selesai', tanyakan 'apa yang dikerjakan hari ini'."
- Solution: Membedah instruksi tugas panjang jadi rantai 3–8 sub-tugas terukur (25–90 menit) terdistribusi menuju deadline, dilengkapi Pomodoro timer, kalender, dan blueprint sharing.
2. System Architecture
Text
3. Tech Stack Breakdown
Frontend
- Framework: React 18 + Vite 5
- Styling: Tailwind CSS 3.4
- State & Storage: LocalStorage + IndexedDB (kilastugas_offline_db)
- PWA & Offline: Service Worker, Web Push Manager, Background Sync Batch
- Timer Engine: Persistent Timestamp-based Pomodoro (Date.now() drift-free) + Web Audio API + Notifications API
- Export Formats: Google Calendar Web Intent + RFC 5545 iCalendar (.ics)
Backend
- Runtime & Web Framework: Python + FastAPI (Asynchronous ASGI)
- Validation: Pydantic v2
- Database Engine: MariaDB 10.x via aiomysql connection pool
- File Parser: pypdf & python-docx (In-memory parser, tanpa simpan ke disk VPS)
- Deployment: Nginx reverse proxy ke Uvicorn daemon (Systemd)
4. Core Features & Capabilities
- Tri-Engine Decomposition:
- Smart Cache (<20ms): Cek kemiripan task serupa di DB; hindari re-inference token AI.
- AI Inference (<2s): Ekstrak instruksi & hasilkan langkah aksi via gateway 9Router.
- Fallback Templates: 5 template akademik built-in (Laporan Lab, Makalah, Coding, Presentasi, Review Jurnal) saat offline/limit.
- In-Memory Document Parser (/api/extract-syllabus):
- Upload PDF/DOCX silabus tugas, diekstrak di RAM tanpa jejak file di server.
- Dynamic Micro-Pacing & Rebalancer (/api/tasks/{id}/rebalance):
- Hitung status: On Track, Behind Schedule, Overdue.
- Distribusi ulang sisa sub-tugas secara adaptif jika mahasiswa tertinggal deadline.
- Offline-First PWA Sync (/api/tasks/sync-batch):
- Tetap berfungsi offline dengan IndexedDB, sinkronisasi otomatis batch saat online.
- Persistent Focus Engine (Pomodoro):
- Floating pill timer antar-halaman, siklus 25/5 menit, title sync, chime sound.
- Social Task Blueprint (/p/:id):
- Tautan publik tugas untuk diimpor rekan sekelas dalam 1 klik tanpa login.
5. API Endpoints Reference
| Method | Endpoint | Description |
|---|---|---|
| POST | /api/breakdown | Eksekusi AI/Cache/Fallback breakdown tugas |
| POST | /api/extract-syllabus | Parsing in-memory berkas PDF / DOCX tugas |
| POST | /api/tasks | Simpan tugas & sub-tugas ke MariaDB |
| GET | /api/tasks/{task_id} | Ambil detail tugas beserta sub-tugas |
| PATCH | /api/tasks/{task_id}/subtasks/{subtask_id} | Update status centang sub-tugas |
| POST | /api/tasks/{task_id}/rebalance | Hitung ulang pacing jika tertinggal jadwal |
| POST | /api/tasks/sync-batch | Sinkronisasi batch offline IndexedDB |
| GET | /api/public/{share_slug} | Ambil template blueprint tugas publik |
