| FR | Description |
|----|-------------|
| FR‑1 | Detect off‑topic navigation using a combination of URL pattern matching, keyword analysis, and machine‑learning classification (confidence threshold ≥ 0.85). |
| FR‑2 | Classify content into three buckets: Allowed / Potentially Disallowed / Explicitly Disallowed (the latter block automatically). |
| FR‑3 | When a “Potentially Disallowed” event occurs, display a non‑intrusive modal:
• Message: “Hey, looks like you’re heading away from the lesson. Want a quick recap or a related resource?”
• Two buttons: Refocus (takes user back to the current lesson) / Continue Anyway (records the event but lets the user proceed). |
| FR‑4 | If an “Explicitly Disallowed” URL is accessed, block the navigation, show a warning, and log the attempt. |
| FR‑5 | Store every guard‑trigger event in a new learning_guard_events table (user_id, session_id, timestamp, url, category, action_taken). |
| FR‑6 | Provide an admin‑only analytics page with filters (date range, user group, category) and export capability (CSV). |
| FR‑7 | Expose an API endpoint (GET /api/v1/guard-events) for mentors to retrieve events for their assigned learners (OAuth‑protected). |
| FR‑8 | Include an opt‑out toggle in the user profile (default ON) for users who prefer no interruptions (still block explicit content). |
| Persona | Need | |---------|------| | Novice Learner (Culun) – New to the subject, easily distracted | A subtle nudge that keeps the session focused without being intrusive | | Mentor / Instructor | Visibility into when learners stray, so they can intervene or provide additional resources | | Compliance Officer | Assurance that the platform proactively mitigates exposure to prohibited content |
CREATE TABLE learning_guard_events (
id BIGSERIAL PRIMARY KEY,
user_id UUID NOT NULL REFERENCES users(id),
session_id UUID NOT NULL,
occurred_at TIMESTAMPTZ NOT NULL DEFAULT now(),
url TEXT NOT NULL,
category VARCHAR(20) NOT NULL CHECK (category IN ('potential', 'explicit')),
action_taken VARCHAR(20) NOT NULL CHECK (action_taken IN ('refocus', 'continue', 'blocked')),
metadata JSONB,
signature BYTEA NOT NULL
);
Signature is generated using the platform’s HMAC secret to guarantee immutability. FSDSS-703 Si Culun Belajar Ngent0d Malah Ketagi...
| ID | As a … | I want … | So that … | |----|--------|----------|-----------| | US‑703‑01 | Learner | to be gently reminded when I start browsing unrelated or disallowed content during a study session | I can stay focused and avoid wasting time | | US‑703‑02 | Learner | to receive a quick “refocus” suggestion (e.g., a related article, a short quiz) when the guard triggers | I can smoothly get back on track without feeling chastised | | US‑703‑03 | Mentor | to see a dashboard indicator of how many learners have been nudged in my class | I can understand engagement patterns and offer extra help | | US‑703‑04 | Compliance Officer | to log every guard‑trigger event with timestamps and content categories | I can audit compliance with content‑policy rules |
| NFR | Requirement | |-----|-------------| | NFR‑1 | Guard detection latency ≤ 200 ms per request (cached rule set, lightweight model). | | NFR‑2 | System must handle peak load of 10 000 concurrent learners with < 2 % error rate. | | NFR‑3 | Data stored in compliance with GDPR / local privacy regulations (anonymized for analytics). | | NFR‑4 | UI components must be responsive and meet WCAG AA accessibility standards. | | NFR‑5 | Logging must be tamper‑evident (append‑only, signed entries). | | FR | Description | |----|-------------| | FR‑1
Setelah kelas selesai, Cul duduk sendirian di kafe, menatap layar laptopnya. Ia menulis di blog pribadi:
“FSDSS‑703 mengajarkan saya bahwa ‘ngentod’ di dunia siber bukan soal seks, melainkan tentang menembus batas keamanan dengan cara yang cerdik. Bukan untuk menjerumuskan diri ke dalam kecanduan, melainkan untuk mengasah rasa tanggung jawab. Jika ilmu ini disalahgunakan, kita semua bisa ‘ketagih’ pada konsekuensi hukum.” | Persona | Need | |---------|------| | Novice
Ia menutup laptop dengan senyum. Sekarang, Cul tidak lagi hanya ‘cul‑culun’ yang menunda tugas, melainkan mahasiswa yang paham betul arti kata “ngentod” dalam konteks keamanan jaringan: sebuah godaan yang harus dihadapi dengan etika.
Akhir cerita – Semoga cerita singkat ini dapat menginspirasi kamu untuk melihat sisi lucu sekaligus serius dari istilah‑istilah vulgar yang sering dipakai dalam dunia cyber. Selamat belajar, dan ingat: gunakan kemampuanmu untuk melindungi, bukan untuk merusak!