Platform digital terintegrasi untuk mempermudah warga dalam mengajukan dokumen administrasi dan menyampaikan pengaduan kepada perangkat desa.
- Tentang Project
- Fitur Utama
- Teknologi yang Digunakan
- Struktur Project
- Instalasi & Setup
- Cara Menjalankan
- API Endpoints
- Database Schema
- Deployment
- Kontribusi
- Lisensi
Layanan Digital Desa adalah aplikasi web modern yang dirancang untuk mempermudah komunikasi antara warga desa dengan perangkat desa. Aplikasi ini menyediakan platform digital yang aman, cepat, dan mudah digunakan untuk:
- Pengajuan Dokumen: Warga dapat mengajukan berbagai jenis surat administrasi secara online
- Sistem Pengaduan: Platform untuk menyampaikan keluhan dan saran terkait pelayanan desa
- Dashboard Admin: Interface untuk perangkat desa mengelola pengajuan dan pengaduan
- Sistem Autentikasi: Keamanan data dengan enkripsi end-to-end
-
π Pengajuan Dokumen Online
- Surat Keterangan Domisili
- Surat Pengantar KTP/KK
- Surat Keterangan Usaha
- Surat Keterangan Tidak Mampu
- Surat Keterangan Kelahiran
- Tracking status pengajuan real-time
-
π’ Sistem Pengaduan
- Kategori pengaduan terstruktur
- Upload bukti pendukung
- Status tracking pengaduan
- Jaminan kerahasiaan identitas
-
π Dashboard Personal
- Riwayat pengajuan dokumen
- Status pengaduan
- Notifikasi real-time
- Profil pribadi
-
π Dashboard Analytics
- Statistik pengajuan dan pengaduan
- Grafik trend bulanan
- Data warga terdaftar
-
π Manajemen Data
- Kelola pengajuan dokumen
- Proses pengaduan masyarakat
- Verifikasi data warga
- Generate laporan
-
π Sistem Keamanan
- Role-based access control
- Enkripsi data sensitif
- Audit trail aktivitas
- React 19.1.0 - Library UI modern dengan hooks
- TailwindCSS 4.1.11 - Utility-first CSS framework
- Framer Motion - Animasi dan transisi smooth
- React Router DOM - Client-side routing
- React Icons & Lucide React - Icon library
- React Toastify - Notifikasi user-friendly
- AOS (Animate On Scroll) - Scroll animations
- Node.js - Runtime JavaScript
- Express.js 5.1.0 - Web framework
- MongoDB 8.3.4 - NoSQL database
- Mongoose - ODM untuk MongoDB
- bcryptjs - Password hashing
- express-session - Session management
- cors - Cross-origin resource sharing
- crypto-js - Enkripsi data
- Vite - Build tool modern
- ESLint - Code linting
- Vercel - Frontend deployment
- Railway - Backend deployment
- MongoDB Atlas - Cloud database
layanan-desa-digital/
βββ client/ # Frontend React App
β βββ src/
β β βββ components/ # Komponen React
β β β βββ Admin/ # Komponen admin
β β β βββ HomePage/ # Halaman utama
β β β βββ HalamanUtama/ # Dashboard user
β β β βββ Login/ # Autentikasi
β β βββ contexts/ # React Context
β β βββ layouts/ # Layout components
β β βββ pages/ # Halaman admin
β βββ public/ # Static assets
β βββ package.json
βββ server/ # Backend Node.js
β βββ models/ # Database models
β βββ routes/ # API routes
β β βββ api/ # API endpoints
β β βββ auth/ # Autentikasi routes
β βββ middleware/ # Custom middleware
β βββ utils/ # Utility functions
β βββ config/ # Konfigurasi database
βββ README.md
- Node.js (v18 atau lebih baru)
- MongoDB (local atau Atlas)
- Git
git clone https://github.com/IchwanArdi/layanan-desa-digital.git
cd layanan-desa-digitalcd server
npm installBuat file .env di folder server/:
MONGO_URI=mongodb://localhost:27017/layanan-desa
SESSION_SECRET=your-secret-key-here
NODE_ENV=developmentcd ../client
npm installBuat file .env di folder client/:
VITE_API_URL=http://localhost:5000Terminal 1 - Backend:
cd server
npm run devServer akan berjalan di http://localhost:5000
Terminal 2 - Frontend:
cd client
npm run devAplikasi akan berjalan di http://localhost:5173
Build Frontend:
cd client
npm run buildStart Backend:
cd server
npm startPOST /api/login # Login user
POST /api/register # Registrasi user baru
POST /api/logout # Logout user
GET /api/check-auth # Cek status autentikasi
GET /api/pengajuan-dokumen # Ambil data pengajuan
POST /api/pengajuan-dokumen # Buat pengajuan baru
PUT /api/pengajuan-dokumen/:id # Update status pengajuan
DELETE /api/pengajuan-dokumen/:id # Hapus pengajuan
GET /api/pengaduan # Ambil data pengaduan
POST /api/pengaduan # Buat pengaduan baru
PUT /api/pengaduan/:id # Update status pengaduan
DELETE /api/pengaduan/:id # Hapus pengaduan
GET /api/dashboard # Data dashboard user
GET /api/total-pengaduan # Total pengaduan
GET /api/total-ajukan # Total pengajuan
GET /api/data-user # Data user
{
nama: String,
nik: String (unique),
email: String (unique),
password: String (hashed),
telepon: String,
alamat: {
jalan: String,
rt: String,
rw: String
},
tanggalLahir: Date,
jenisKelamin: Enum,
pekerjaan: String,
statusVerifikasi: Enum,
role: Enum ['user', 'admin'],
isActive: Boolean
}{
jenisDokumen: Enum,
namaLengkap: String,
nik: String,
telepon: String,
alamat: String,
keperluan: String,
berkasPendukung: String,
status: Enum,
catatan: String,
nomorSurat: String (auto-generated),
warga: ObjectId (ref: User),
tanggalSelesai: Date
}{
judul: String,
kategori: Enum,
lokasi: String,
deskripsi: String,
status: Enum,
warga: ObjectId (ref: User),
createdAt: Date,
updatedAt: Date
}- Connect repository ke Vercel
- Set build command:
npm run build - Set output directory:
dist - Add environment variable:
VITE_API_URL
- Connect repository ke Railway
- Set start command:
npm start - Add environment variables:
MONGO_URISESSION_SECRETNODE_ENV=production
- Buat cluster di MongoDB Atlas
- Whitelist IP addresses
- Buat database user
- Update
MONGO_URIdi environment variables
Kontribusi sangat diterima! Silakan:
- Fork repository ini
- Buat feature branch (
git checkout -b feature/AmazingFeature) - Commit perubahan (
git commit -m 'Add some AmazingFeature') - Push ke branch (
git push origin feature/AmazingFeature) - Buat Pull Request
Distributed under the MIT License. See LICENSE for more information.
Developer: Asus
Email: your-email@example.com
Project Link: https://github.com/IchwanArdi/layanan-desa-digital
β Jika project ini membantu Anda, jangan lupa berikan star! β