How jidd26/website-kelas-d-sisteminformasi works
Kelas D is a class community portal with student and lecturer attendance features alongside schedules, class structure, and activity documentation. The main attendance flow is student login, dashboard review, QR scanning, and server-side attendance validation and recording; lecturer dashboard and QR-generation routes represent the session-management side. The sampled dashboard calls the attendance-list endpoint, and the attendance endpoint persists through Prisma. Several pages and routes are unsampled, so their internal interactions are omitted or shown as unverified rather than inferred.
Main entry points: prisma.ts Prisma Client · app/page.tsx Home · dashboard/page.tsx Student Dashboard · route.ts Attendance Submission
Components 33
Class Portal
- Home
app/page.tsx - Navigation
app/components/Navbar.tsx - Class Schedule
app/jadwal/page.tsx - Schedule Data
app/data/jadwal.json - Activity Documentation
app/dokumentasi/page.tsx - Documentation Data
app/data/dokumentasi.json - Class Structure
app/struktur/page.tsx - Structure Data
app/data/struktur.json - Member Directory Data
app/data/anggota.json - Count Animation Hook
app/hooks/useCountUp.ts - Typing Animation Hook
app/hooks/useTyping.ts - Splash Screen
app/components/SplashScreen.tsx - Activity Carousel
app/components/ScrollCarousel.tsx - App Layout
app/layout.tsx
Student Experience
- Student Login
app/login/page.tsx - Student Dashboard
app/mahasiswa/dashboard/page.tsx - Campus Map
app/components/MapView.tsx - QR Scan
app/mahasiswa/scan/page.tsx - Authentication Page
app/api/auth/page.tsx
Lecturer Tools
- Lecturer Dashboard
app/dosen/dashboard/page.tsx - Lecturer QR
app/dosen/qr/page.tsx
Application API
- Student Login API
app/api/login/route.ts - Lecturer Login API
app/api/dosen/login/route.ts - Attendance Submission
app/api/absen/route.ts - Attendance List
app/api/absen/list/route.ts - Active Session
app/api/session/active/route.ts - Meeting Generation
app/api/pertemuan/generate/route.ts - QR Generation API
app/api/qr/generate/route.ts
Data Layer
- Prisma Client
lib/prisma.ts - Database Schema
prisma/schema.prisma
Other components
- Visitor
- Student
- Lecturer
Connections 28
- Visitor → Home: opens
- Student → Student Login: signs in
- Student → Student Dashboard: views
- Student → QR Scan: scans QR
- Lecturer → Lecturer Dashboard: manages class
- Home → Count Animation Hook: uses
app/page.tsx - Home → Typing Animation Hook: uses
app/page.tsx - Home → Splash Screen: renders
app/page.tsx - Home → Activity Carousel: renders
app/page.tsx - App Layout → Navigation: renders
app/layout.tsx - Class Schedule → Schedule Data: reads
app/jadwal/page.tsx - Activity Documentation → Documentation Data: filters
app/dokumentasi/page.tsx - Class Structure → Structure Data: reads
app/struktur/page.tsx - Class Structure → Member Directory Data: filters
app/struktur/page.tsx - Student Dashboard → Schedule Data: reads
app/mahasiswa/dashboard/page.tsx - Student Dashboard → Campus Map: renders
app/mahasiswa/dashboard/page.tsx - Student Dashboard → Attendance List: fetches
app/mahasiswa/dashboard/page.tsx - Student Login → Student Login API: submits to
- QR Scan → Attendance Submission: submits attendance
- Lecturer QR → QR Generation API: requests QR
- Student Login API → Prisma Client: queries
app/api/login/route.ts - Lecturer Login API → Prisma Client: queries
app/api/dosen/login/route.ts - Attendance Submission → Prisma Client: checks and records
app/api/absen/route.ts - Attendance List → Prisma Client: queries
app/api/absen/list/route.ts - Active Session → Prisma Client: queries
app/api/session/active/route.ts - Active Session → Schedule Data: matches schedule
app/api/session/active/route.ts - Meeting Generation → Prisma Client: uses
app/api/pertemuan/generate/route.ts - Attendance Submission → Database Schema: persists attendance