Asia/Jakarta
ProjectsOctober 14, 2026

Kilas Tugas

image
  • Problem: Students experience Task Paralysis/Overwhelm Freeze when receiving a thick syllabus/assignment (5–15 pages) with a long deadline, resulting in an all-nighter (D-1/D-0) cramming system.
  • Core Value: "Don't ask 'when will it be finished,' ask 'what did you do today?'"
  • Solution: Break down long assignment instructions into a chain of 3–8 measurable sub-tasks (25–90 minutes) distributed toward the deadline, equipped with a Pomodoro timer, calendar, and blueprint sharing.
Text
┌────────────────────────────── ───────────────────────────────┐
│ Client Layer (PWA / SPA) │
│ React 18 + Vite 5 + Tailwind CSS + Lucide Icons │
│ IndexedDB (Offline Store) + Service Worker (PWA Sync) │
│ Hosting: Vercel Edge Network (kilasanggaran.vercel.app) │
└────────────────────────────── ┬──────────────────────────────┘ 
│ HTTPS REST / JSON 
▼
┌────────────────────────────── ───────────────────────────────┐
│ Backend API Layer │
│ Python 3.11/3.12 + FastAPI + Pydantic v2 │
│ Reverse Proxy: Nginx + SSL Let's Encrypt │
│ Hosting: Ubuntu VPS (api-kilasanggaran.najmifaza.my.id) │
└──────────────┬─────────────── ────────────────┬──────────────┘ 
│ │ 
▼ Local HTTP (:20128) ▼ TCP Connection Pool (aiomysql)
┌──────────────────────────────┐ ┌──────────────────────────────┐
│ AI Inference Gateway │ │ Persistence Layer │
│ 9Router Proxy │ │ MariaDB 10.x │
│ Model: ag/gemini-3.7-flash │ │ - Smart Task Cache (<20ms) │
│ Fallback: Static Templates │ │ - DB Tasks & Subtasks │
└──────────────────────────────┘ └──────────────────────────────┘

  • Framework: React 18 + Vite 5
  • Styling: Tailwind CSS 3.4
  • State & Storage: LocalStorage + IndexedDB (flashtask_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)
  • Runtime & Web Framework: Python + FastAPI (Asynchronous ASGI)
  • Validation: Pydantic v2
  • Database Engine: MariaDB 10.x via aiomysql connection pool
  • Parser Files: pypdf & python-docx (In-memory parser, no save to VPS disk)
  • Deployment: Nginx reverse proxy to Uvicorn daemon (Systemd)
  • Tri-Engine Decomposition:
  • Smart Cache (<20ms): Check similarity of similar tasks in DB; avoid AI token re-inference.
  • AI Inference (<2s): Extract instructions and generate action steps via the 9Router gateway.
  • Fallback Templates: 5 built-in academic templates (Lab Report, Paper, Coding, Presentation, Journal Review) when offline/limited.
  • In-Memory Document Parser (/api/extract-syllabus): Upload PDF/DOCX assignment syllabi, extracted to RAM without a file trace on the server.
  • Dynamic Micro-Pacing & Rebalancer (/api/tasks/{id}/rebalance): Calculate status: On Track, Behind Schedule, Overdue. Adaptively redistribute remaining subtasks if students fall behind deadlines.
  • Offline-First PWA Sync (/api/tasks/sync-batch): Continue working offline with IndexedDB, automatic batch sync when online.
  • Persistent Focus Engine (Pomodoro):
  • Floating pill timer between pages, 25/5 minute cycle, title sync, chime sound.
  • Social Task Blueprint (/p/:id):
  • Public link to assignments for classmates to import in one click without logging in.
MethodEndpointDescription
POST/api/breakdownExecute AI/Cache/Fallback task breakdown
POST/api/extract-syllabusParse PDF/DOCX assignment files in-memory
POST/api/tasksSave tasks & subtasks to MariaDB
GET/api/tasks/{task_id}Get task and subtask details
PATCH/api/tasks/{task_id}/subtasks/{subtask_id}Update subtask check status
POST/api/tasks/{task_id}/rebalanceRecalculate pacing if behind schedule
POST/api/tasks/sync-batchIndexedDB offline batch sync
GET/api/public/{share_slug}Get public task blueprint template

Related projects

Panggih Sedulur: Unsoed Student Club Aptitude Questionnaire

Panggih Sedulur: Unsoed Student Club Aptitude Questionnaire

An interactive questionnaire platform for Unsoed student clubs, featuring a 5-category scoring system, branching questions, and personalized recommendations.
Official Website of BEM Universitas Jenderal Soedirman

Official Website of BEM Universitas Jenderal Soedirman

Development and management of the official website for the Student Executive Board of Universitas Jenderal Soedirman (BEM-U) using WordPress, Elementor, and custom HTML inject.
URL Shortener BEM Unsoed Edition

URL Shortener BEM Unsoed Edition

Development of a professional URL shortener application with a Glassmorphism interface for the publication needs of BEM Universitas Jenderal Soedirman.
GrowTo: Delivery Order Directory Platform for Purwokerto

GrowTo: Delivery Order Directory Platform for Purwokerto

Development of an information platform for delivery order services in the Purwokerto area as the Final Project for the Soedirman Digital School 2025 program.
NiceGuy Sound Board

NiceGuy Sound Board

For hungry streamers wanting to ride the Bigmo train via Soundboard, we've provided an app bundled with sounds frequently used by our rector, BIGMO.

Edu-Tajwid: Digital Educational Platform for Tajweed

TajwidApps is a web-based educational platform designed to help users learn the rules of Quranic recitation (Tajweed), articulation points (makharijul huruf), and characteristics of letters fluently.

Digital Transformation of Rabiha Tour & Travel: Branding and Website Development

Development of a visual identity, social media content design using CorelDRAW & Photoshop, and building a company profile website using WordPress Elementor.
Najmi Calculator: Interactive Calculator with Real-Time Features

Najmi Calculator: Interactive Calculator with Real-Time Features

Development of a responsive calculator app using Vanilla JavaScript, featuring Dark Mode and a custom Error Handling system.