NgajiQu adalah aplikasi web modern untuk mengelola kegiatan Taman Pendidikan Al-Qur'an (TPQ) dengan fitur administrasi santri, pencatatan kemajuan ngaji, dan manajemen kelas yang komprehensif.
- Buat dan kelola kelas TPQ dengan sistem slug yang SEO-friendly
- Akses publik untuk orang tua/wali santri melihat perkembangan
- Dashboard khusus untuk pengajar dan admin
- Pendaftaran santri baru dengan data lengkap
- Pencarian santri berdasarkan nama
- Tracking progress individual setiap santri
- Sistem kartu ngaji digital
- Kartu ngaji digital untuk setiap santri
- Pencatatan bab, halaman, dan tanggal ngaji
- Catatan progress dan evaluasi
- Riwayat lengkap aktivitas belajar
- Jadwal kegiatan kelas
- Pengumuman dan informasi penting
- Timeline aktivitas harian
- Registrasi dan login pengajar/admin
- Sistem JWT token untuk keamanan
- Profile management untuk pengguna
- Frontend: Next.js 15 dengan App Router
- Styling: Tailwind CSS
- UI Components: RSuite
- State Management: Zustand
- Authentication: JWT dengan cookies
- TypeScript: Full type safety
- Icons: Lucide React
- Node.js 18+
- npm atau yarn
- Clone repository:
git clone https://github.com/Ariyalex/NgajiQu.git
cd ngajiqu- Install dependencies:
npm install
# atau
yarn install- Setup environment variables:
cp .env.example .env.localEdit file .env.local dan isi variabel yang diperlukan:
NEXT_PUBLIC_API_URL=your_api_url_here- Jalankan development server:
npm run dev
# atau
yarn dev- Buka http://localhost:3000 di browser
src/
├── app/ # Next.js App Router pages
│ ├── (auth)/ # Auth pages (login, register)
│ ├── dashboard/ # Dashboard untuk pengajar/admin
│ ├── [kelas]/ # Public pages untuk kelas
│ └── globals.css # Global styles
├── components/ # Reusable components
│ ├── auth_ui/ # Authentication components
│ ├── dashboard_ui/ # Dashboard-specific components
│ ├── global_ui/ # Shared UI components
│ ├── home_ui/ # Homepage components
│ ├── kartu_santri/ # Kartu ngaji components
│ ├── kelas_ui/ # Kelas management components
│ └── public_ui/ # Public view components
├── hooks/ # Custom React hooks
├── store/ # Zustand state management
│ ├── auth_store.tsx # Authentication state
│ ├── kelas_store.tsx # Kelas management state
│ ├── santri_store.tsx # Santri data state
│ └── overlay_status.tsx # UI overlay state
└── middleware.ts # Auth middleware
-
Registrasi Account
- Daftar dengan email dan username
- Login setelah registrasi berhasil
-
Buat Kelas Baru
- Masuk ke dashboard
- Tambah kelas dengan nama dan deskripsi
- Sistem akan generate slug otomatis
-
Kelola Santri
- Tambah santri baru ke kelas
- Gunakan fitur pencarian untuk mencari santri
- Input kartu ngaji untuk tracking progress
-
Pantau Aktivitas
- Buat jadwal dan aktivitas kelas
- Monitor progress semua santri
- Export data jika diperlukan
-
Akses Public View
- Kunjungi
[domain]/[slug-kelas] - Lihat daftar santri dan aktivitas kelas
- Kunjungi
-
Monitor Progress Anak
- Klik nama santri untuk detail
- Lihat riwayat kartu ngaji
- Pantau perkembangan belajar
# Development
npm run dev # Start development server
npm run build # Build for production
npm run start # Start production server
npm run lint # Run ESLint
# Type checking
npm run type-check # Check TypeScript types- ESLint dengan konfigurasi Next.js
- Prettier untuk formatting
- TypeScript strict mode
- Conventional commits
- Push ke GitHub repository
- Connect repository di Vercel
- Set environment variables
- Deploy otomatis
npm run build
npm run startNgajiQu terintegrasi dengan backend API untuk:
- Authentication (login, register, refresh token)
- CRUD operations untuk kelas, santri, dan kartu
- File upload untuk profile images
- Real-time data synchronization
- JWT authentication dengan refresh tokens
- CSRF protection
- Input validation dan sanitization
- Secure headers dan cookies
- Protected routes dengan middleware
-
Hydration Errors
- Pastikan client-side rendering untuk komponen yang menggunakan localStorage
-
API Connection
- Periksa environment variable
NEXT_PUBLIC_API_URL - Pastikan backend server berjalan
- Periksa environment variable
-
Authentication Issues
- Clear browser cookies dan localStorage
- Check token expiration
NgajiQu - Digitalisasi TPQ untuk Pendidikan Al-Qur'an yang Lebih Baik