Sistem Informasi Akademik untuk Madrasah - Aplikasi manajemen akademik lengkap untuk mengelola data siswa, guru, penilaian, dan administrasi sekolah.
SIAKAD Madrasah adalah aplikasi berbasis web yang dirancang untuk membantu pengelolaan administrasi akademik di lingkungan Madrasah. Sistem ini mencakup manajemen siklus hidup siswa dari pendaftaran hingga kelulusan, pengelolaan nilai, dan berbagai fitur administratif lainnya.
| Layer | Teknologi |
|---|---|
| Frontend | SvelteKit, TypeScript, Tailwind CSS |
| Backend | Express.js, Node.js |
| Database | SQLite dengan Drizzle ORM |
| Authentication | JWT (JSON Web Token) |
siakad-madrasah/
├── src/ # Frontend (SvelteKit)
│ ├── lib/
│ │ ├── components/ # Komponen UI
│ │ │ ├── layout/ # Layout components
│ │ │ ├── modal/ # Modal dialogs
│ │ │ └── icons/ # Icon components
│ │ ├── config/ # Konfigurasi (navigasi, dll)
│ │ └── api.ts # API helper
│ └── routes/
│ └── (app)/ # Protected routes
│ ├── dashboard/ # Halaman dashboard
│ ├── siswa/ # Manajemen siswa
│ ├── rombel/ # Rombongan belajar
│ ├── score/ # Penilaian
│ ├── gurutendik/ # Guru & Tendik
│ └── Documentations/ # Halaman dokumentasi
│
├── backend/ # Backend (Express.js)
│ ├── controllers/ # Request handlers
│ ├── services/ # Business logic
│ ├── routes/api/ # API routes
│ ├── middlewares/ # Middleware (auth, audit, dll)
│ └── db/
│ └── schema/ # Drizzle schema
│
├── docs/ # Dokumentasi markdown
└── drizzle/ # Database migrations
git clone <repository-url>
cd siakad-madrasah
Frontend:
npm install
Backend:
cd backend
npm install
Buat file .env di folder backend/:
PORT=3000
DATABASE_URL=./database.sqlite
JWT_SECRET=your-secret-key
FRONTEND_URL_DEV=http://localhost:5173
Terminal 1 - Backend:
cd backend
npm run dev
Terminal 2 - Frontend:
npm run dev
Aplikasi akan berjalan di:
http://localhost:5173http://localhost:3000| Tabel | Deskripsi |
|---|---|
students |
Data siswa dengan status (ACTIVE/MUTASI/GRADUATE) |
rombel |
Rombongan belajar per tahun ajaran |
rombel_students |
Relasi siswa-rombel dengan flag isActive |
student_history |
Riwayat kelulusan/mutasi siswa |
teachers |
Data guru dan tenaga kependidikan |
classes |
Tingkat kelas (X, XI, XII) |
subjects |
Mata pelajaran |
class_subject |
Penugasan mapel per kelas |
student_scores |
Nilai siswa |
assessment_type |
Jenis penilaian |
academic_year |
Tahun ajaran |
| Method | Endpoint | Deskripsi |
|---|---|---|
| POST | /routes/api/auth/login |
Login user |
| POST | /routes/api/auth/logout |
Logout user |
| Method | Endpoint | Deskripsi |
|---|---|---|
| GET | /routes/api/studentDataSet |
Daftar siswa (paginated) |
| GET | /routes/api/students/active |
Siswa aktif |
| GET | /routes/api/students/graduated |
Alumni |
| GET | /routes/api/students/dropout |
Siswa mutasi |
| POST | /routes/api/students/:id/status |
Ubah status siswa |
| Method | Endpoint | Deskripsi |
|---|---|---|
| GET | /routes/api/promotion/rombels |
Rombel untuk promosi |
| POST | /routes/api/promotion/promote |
Eksekusi promosi |
| GET | /routes/api/graduates/stats |
Statistik alumni |
| Method | Endpoint | Deskripsi |
|---|---|---|
| GET | /routes/api/academic-years |
Daftar tahun ajaran |
| GET | /routes/api/academic-years/active |
Tahun ajaran aktif |
PENDAFTARAN
│
▼
┌─────────┐
│ ACTIVE │ ← Siswa aktif dalam rombel
└────┬────┘
│
├──────────────┬──────────────┐
▼ ▼ ▼
┌─────────┐ ┌─────────┐ ┌──────────┐
│ PROMOSI │ │ MUTASI │ │ GRADUATE │
│ (Naik │ │ (Pindah/│ │ (Lulus) │
│ Kelas) │ │ Keluar)│ │ │
└────┬────┘ └─────────┘ └──────────┘
│ │ │
▼ ▼ ▼
Tetap Final Final
ACTIVE State State
Screenshots akan ditambahkan
Proyek ini dikembangkan sebagai tugas Semester 7.
Proyek ini dibuat untuk keperluan pendidikan.
Dokumentasi lengkap tersedia di dalam aplikasi melalui menu Dokumentasi atau akses langsung ke /Documentations.
File dokumentasi tersimpan di folder docs/ dalam format Markdown.