Posts

Showing posts from May, 2026

Roadmap

  # Schoolmantic — Roadmap ke Produksi Estimasi total: ±20 minggu kerja (solo dev fullstack). Setiap fase menghasilkan deliverable yang bisa langsung diuji. --- ## Fase 1 — Foundation ✅ SELESAI **Target:** Project scaffold, skema DB, seed data. - [ x ] Konsep aplikasi & keputusan arsitektur - [ x ] Setup Bun + Hono + Drizzle ORM + PostgreSQL - [ x ] 32 tabel (enums, 12 domain schema files) - [ x ] Migration awal ( `0000_breezy_avengers.sql` ) - [ x ] Seed data: 1 sekolah, 10 guru, 50 siswa, 50 wali, 2 kelas, jadwal, notif template, subscription plans - [ x ] `.env` , `.gitignore` , `drizzle.config.ts` --- ## Fase 2 — API: Auth & Tenant Guard ✅ SELESAI **Target:** Semua role bisa login, JWT bekerja, tenant context aman. - [ x ] Hono server entry ( `src/index.ts` ) + middleware stack (CORS, logger) - [ x ] Helper normalisasi HP ( `+62...` ) dan lowercase email ( `src/lib/phone.ts` ) - [ x ] `POST /api/v1/auth/login` — login via email atau HP, return JWT + refresh ...

Claude MD

  # CLAUDE.md This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. --- ## Project Overview **Schoolmantic** — SaaS absensi sekolah multi-tenant. Single PostgreSQL database, isolasi tenant via `school_id` di setiap tabel + middleware guard (bukan RLS). Target: 50 sekolah, 300–1000 siswa/sekolah. **Komunikasi selalu dalam Bahasa Indonesia.** Stack: Hono + Bun + Drizzle ORM (API) · Nuxt 4 + Vue 3 (Web) · Flutter (Mobile) · PostgreSQL 18 · S3/MinIO --- ## Struktur Monorepo ``` apps/api/        ← Hono + Bun (AKTIF — dikerjakan sekarang) apps/web/        ← Nuxt 4 dashboard (belum ada) apps/landing/    ← Nuxt 4 landing page (belum ada) apps/mobile/     ← Flutter (belum ada) ``` --- ## Commands (apps/api) Semua perintah dijalankan dari `apps/api/` : ```bash bun install               # install dependencies bun run dev       ...

Konsep Aplikasi

  # Schoolmantic — Konsep Aplikasi (Revisi) Aplikasi absensi sekolah berbasis SaaS multi-tenant. Target awal: 50 sekolah, 300–1000 siswa per sekolah. Versi ini sudah memasukkan resolusi konflik dan skema baru hasil review. --- ## 1. Tech Stack - **Backend** : Hono + Bun + Drizzle ORM (TypeScript) - **Web** : Nuxt 4 + Vue 3 (TypeScript) - **Mobile** : Flutter — **satu app** untuk semua role (UI berubah sesuai role setelah login) - **Database** : PostgreSQL — **single database, single set of tables** , isolasi tenant via kolom `school_id` + middleware guard - **File storage** : S3 (di dev pakai MinIO) - **Push notification** : Firebase Cloud Messaging (FCM) - **Bahasa komunikasi** : Indonesia - **OS dev** : Windows 11 Semua data diambil dari database. Tidak ada data tiruan di kode. --- ## 2. Domain & Aplikasi | Aplikasi | URL / Channel | |---|---| | Landing page | `www.schoolmantic.com` | | Dashboard web (semua role) | `app.schoolmantic.com` (tidak ada subdomain per s...