Synaplan
开源 AI 软件平台,面向企业:自托管 AI 代理,符合 GDPR 的聊天机器人小部件,RAG 知识库,WhatsApp 与 Outlook AI,MCP,多模型路由。支持 Docker、Kubernetes 或在 Germ 托管。
AI 翻译
尚未收集仓库信息。
尚未检测到更新。GitHub 发布版本后会显示在这里。
制作者的介绍仅有上面的一句话。 更多详情请阅读仓库 README。 仓库 README ↗
正在加载完整 README。
查看完整 README ↗Build With T3 Stack
Anmategra platform manajemen data kemahasiswaan/lembaga di ITB. Fungsi utama:
admin, lembaga, mahasiswaTech stack: T3 Stack (Next.js, tRPC, Drizzle ORM, NextAuth, Tailwind), PostgreSQL.
packageManager di package.json pin ke [email protected])git clone <repo-url>
cd anmategra-app
cp .env.example .env
npm install
Isi .env, minimal DATABASE_URL bener, contoh:
DATABASE_URL="postgresql://postgres:password@localhost:5432/anmategra"
husky prepare hook otomatis jalan pas npm install (setup lint-staged pre-commit).
Opsi A — manual:
psql -U postgres
CREATE DATABASE anmategra;
\q
npm run db:push
Opsi B — pakai Docker (lihat scripts/start-database.sh):
./scripts/start-database.sh
npm run db:push
Opsi C — app + database sekaligus di Docker (compose.local.yml):
docker compose -f compose.local.yml up --build
5433, app (next dev, hot reload) di 3000. Ubah lewat APP_PORT / DB_PORT.anmategra.dump di folder induk repo, dump itu dipulihkan saat pertama kali jalan, lalu db:migrate menyusulkan migrasi yang belum ada. Lokasi lain: set DB_DUMP_DIR / DB_DUMP_FILE..env.docker compose -f compose.local.yml exec app node docker/local/dev-login.mjs <admin|lembaga|mahasiswa> [email], lalu tempel baris yang dicetak ke console browser. Dump tidak berisi admin, jadi ubah dulu role satu user di database lokal.docker compose -f compose.local.yml down -v.Perintah db lain yang tersedia:
npm run db:generate — generate migration dari schema (drizzle-kit generate)npm run db:migrate — jalanin migration (drizzle-kit migrate)npm run db:studio — buka Drizzle Studio buat liat datanpm run db:seed — generate csv + seed database (dev only)npm run db:seed-lembaga — seed akun lembaga resmi dari src/server/db/seeding/data/lembaga-official.csv (idempotent)npm run db:seed-mahasiswa -- --file <csv> — impor mahasiswa (misalnya satu angkatan baru); hanya menambah, format di src/server/db/seeding/data/README.mdnpm run db:backfill-lembaga-descriptions — lengkapi deskripsi lembaga yang kosongnpm run db:refresh-lembaga — jalanin scripts/refresh-lembaga.sh (refresh data lembaga dari sumber resmi)npm run db:summarize-lembaga — jalanin scripts/km-summarize.ts (ringkas profil lembaga)npm run db:clear — kosongin databasenpm run dev
Buka http://localhost:3000.
Script lain:
npm run build — build productionnpm run start — jalanin hasil buildnpm run lint — cek lint (ESLint, eslint.config.mjs). Pelanggaran lama dicatat di eslint-suppressions.json; pelanggaran baru membuat CI gagal. Setelah memperbaiki pelanggaran lama, jalankan npm run lint:prune dan commit perubahan file itu.npm run typecheck — cek tipe TypeScript (tsc --noEmit)npm test — jalankan tes otomatis (Vitest); lihat Menjalankan Tes. npm run test:watch mengulang tes setiap berkas berubah.npm run docs — regenerate dokumentasi API & database di docs/api/Tes memakai Vitest dan PostgreSQL asli, bukan mock, supaya aturan akses diuji terhadap skema yang sama dengan produksi.
npm test
TEST_DATABASE_URL; bawaannya postgresql://postgres:password@localhost:5432/anmategra_test. Nama database wajib memuat kata test; kalau tidak, tes menolak jalan karena tiap kasus mengosongkan tabel.src/test/global-setup.ts membuat database itu bila belum ada (dari template0) dan menerapkan semua migrasi di drizzle/. Run berikutnya melewati migrasi yang sudah diterapkan..test.ts dan diletakkan di samping kodenya. Helper database dan pabrik data ada di src/test/test-db.ts..env lengkap: kode yang diuji tidak boleh memuat ~/env. Prosedur yang butuh sesi atau NextAuth sebaiknya diuji lewat logika yang dipisah, seperti src/server/api/access.ts.npm test pada job Test dengan layanan PostgreSQL 15.Mahasiswa login dengan akun @mahasiswa.itb.ac.id lewat Microsoft Entra ID milik ITB. Anmategra
punya app registration sendiri di directory ITB:
https://anmategra.com/api/auth/callback/azure-ad, ditambah
http://localhost:<APP_PORT>/api/auth/callback/azure-ad untuk lokal.AZURE_AD_CLIENT_SECRET.
Secret punya tanggal kedaluwarsa: catat tanggalnya dan perbarui sebelum lewat. Secret yang
kedaluwarsa membuat login Microsoft gagal dengan ?error=OAuthCallback.AZURE_AD_TENANT_ID = db6e1183-4c65-405c-82ce-7cd53fa6e9dc (directory ITB). Token dari tenant
lain ditolak, walaupun email-nya berakhiran @mahasiswa.itb.ac.id.以上为 README 的开头部分。其余内容请阅读原文。 查看完整 README ↗