superapp-lifestyle

simoni

65 file · 296.1 KB

Sistem informasi live — simoni-ten.vercel.appBuka di tab baru

README

SIMONI

Sistem Informasi Monitoring

Aplikasi monitoring berbasis web untuk pemantauan pelaksanaan Program Bantuan Perumahan bagi Masyarakat Berpenghasilan Rendah (MBR) di bawah Direktorat Pengembangan Kawasan Permukiman, Kementerian PKP.

Fitur Utama

  • Dashboard - Ringkasan statistik, peta lokasi proyek (Leaflet/OpenStreetMap), grafik anggaran per provinsi, dan daftar proyek aktif
  • Data Teknis - Manajemen data teknis perumahan (CRUD), komponen prasarana sarana, informasi kontrak, lokasi, dan jadwal pelaksanaan
  • Pelaporan Progress - Laporan progress mingguan dengan kurva S (rencana vs realisasi), dokumentasi foto, kendala, dan tindak lanjut
  • Manajemen Pengguna - Kelola akun pengguna dengan 5 level role dan hak akses berbeda
  • Profil - Pengaturan profil pengguna dan ganti password
  • Panel Admin - Informasi sistem, statistik, dan konfigurasi
  • Export Excel - Download data teknis dan laporan progress ke format Excel (.xlsx)

Role & Hak Akses

RoleLihatTambahEditHapus
Administrator
Direktorat RUK
Balai P2P
Satker PnP
PPK

Tech Stack

  • Frontend: Next.js 16, React 19, TypeScript, Tailwind CSS 4
  • Backend: Next.js API Routes
  • Database: SQLite (dev) / PostgreSQL (production) via Prisma ORM
  • Auth: NextAuth.js v5
  • Map: Leaflet + OpenStreetMap
  • Charts: Recharts
  • Export: SheetJS (xlsx)

Instalasi

# Clone repository
git clone <repo-url>
cd simoni

# Install dependencies
npm install

# Generate Prisma client & push schema
npx prisma generate
npx prisma db push

# Seed database dengan data sample
npx tsx prisma/seed.ts

# Jalankan development server
npm run dev

Buka http://localhost:3000 di browser.

Akun Demo

RoleEmailPassword
Adminadmin@simoni.go.idadmin123
Direktorat RUKdirektorat@simoni.go.idadmin123
Balai P2Pbalai@simoni.go.idadmin123
Satker PnPsatker@simoni.go.idadmin123
PPKppk@simoni.go.idadmin123

Struktur Proyek

src/
├── app/
│   ├── api/              # API Routes
│   │   ├── auth/         # NextAuth endpoints
│   │   ├── dashboard/    # Dashboard statistics
│   │   ├── technical-data/ # Technical data CRUD
│   │   ├── progress-reports/ # Progress reports CRUD
│   │   ├── users/        # User management
│   │   ├── projects/     # Project listing
│   │   └── upload/       # File upload
│   ├── dashboard/        # Dashboard page
│   ├── technical-data/   # Technical data pages
│   ├── progress-reports/ # Progress reports pages
│   ├── users/            # User management pages
│   ├── profile/          # Profile page
│   ├── admin/            # Admin panel
│   └── login/            # Login page
├── components/
│   ├── layout/           # Layout components (Sidebar, Header, AppLayout)
│   ├── ui/               # Reusable UI components
│   ├── maps/             # Map components
│   └── charts/           # Chart components
├── lib/                  # Core libraries (Prisma, Auth)
└── types/                # TypeScript types & constants

Deployment

Untuk production, ganti DATABASE_URL di .env ke PostgreSQL dan ubah provider di prisma/schema.prisma:

datasource db {
  provider = "postgresql"
  url      = env("DATABASE_URL")
}

File Utama

  • .env.example
  • .gitignore
  • IMPROVEMENTS.md
  • NEXT_STEPS.md
  • README.md
  • next.config.ts
  • package-lock.json
  • package.json