Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
96 commits
Select commit Hold shift + click to select a range
c7707b3
fix: redesign UI/UX dosen detail & search dengan layout responsif
el-pablos Jun 25, 2025
27a8506
fix: perbaiki API call error pada dosen detail screen
el-pablos Jun 25, 2025
1775732
update: redesign comprehensive mahasiswa detail screen dengan layout …
el-pablos Jun 25, 2025
725ed92
update: redesign mahasiswa search card dengan layout Gojek-inspired
el-pablos Jun 25, 2025
eacaf8c
fix: Perbaiki masalah data placeholder pada hasil pencarian dosen dan…
Jul 8, 2025
39ac158
add: Update README dengan dokumentasi perbaikan data placeholder
Jul 8, 2025
5485986
fix: Perbaiki masalah RenderFlex overflow dan API detail fetch error
Jul 8, 2025
f761cf2
add: Update README dengan dokumentasi perbaikan UI overflow dan API e…
Jul 8, 2025
bf77e5a
chore: update gitignore tambahin rules buat secrets, coverage, dan ge…
el-pablos May 4, 2026
d489dd6
remove: hapus semua dead code dan junk files yang ga kepake
el-pablos May 4, 2026
a0ca853
chore: hapus 4 unused dependencies dan update sdk constraint ke >=3.7.0
el-pablos May 4, 2026
2aeb4b4
remove: hapus endpoint fiktif anime api dan method holidays/geographi…
el-pablos May 4, 2026
b88f65d
fix: ganti semua 163 print() jadi conditional debugPrint buat security
el-pablos May 4, 2026
cf62a21
fix: benerin memory leak timer di semua screen dengan tracking dan ca…
el-pablos May 4, 2026
df5bfa0
fix: tambahin mounted check di semua setState setelah async operation
el-pablos May 4, 2026
3c2fe92
fix: tambahin guard buat prevent race condition di search
el-pablos May 4, 2026
c9b7689
fix: isolasi error di Future.wait biar partial results ga ilang
el-pablos May 4, 2026
9a65386
fix: tambahin type check sebelum casting dan validasi route id dengan…
el-pablos May 4, 2026
7312754
fix: tambahin input sanitization di home screen dan prodi search
el-pablos May 4, 2026
0b1adaf
fix: pindahin random dari build ke state biar ga flickering
el-pablos May 4, 2026
220f869
refactor: extract json utils ke shared class buat replace duplikasi h…
el-pablos May 4, 2026
bb94aa2
refactor: rewrite ScreenUtils biar beneran responsif di semua device
el-pablos May 4, 2026
e787dfc
refactor: tambahin AppDimensions, AppTextStyles, ApiConstants ke cons…
el-pablos May 4, 2026
ec53c0f
update: kurangi artificial delay biar app lebih responsif
el-pablos May 4, 2026
b3e4f6c
test: setup testing infrastructure dan tambahin unit test buat utils …
el-pablos May 4, 2026
2abdcf4
add: setup github actions ci/cd dengan auto release
el-pablos May 4, 2026
9219455
chore: update analysis options dengan strict rules
el-pablos May 4, 2026
1b095ac
chore: bump version ke 2.0.0 karena major refactor
el-pablos May 4, 2026
0d68b4b
docs: rewrite readme.md lengkap dengan arsitektur, diagram mermaid, d…
el-pablos May 4, 2026
5fb2b0c
refactor: unifikasi 493 HackerColors ke CtOSColors di 19 files, hapus…
el-pablos May 4, 2026
5d771e9
fix: update constants test setelah hapus HackerColors, semua 32 tests…
el-pablos May 4, 2026
226cebc
fix: benerin data loss bug di DosenDetail dan MahasiswaDetail fromJso…
el-pablos May 4, 2026
74a0b3c
fix: standardisasi error handling Mahasiswa.fromJson ke return fallba…
el-pablos May 4, 2026
87fb9a1
test: tambahin 22 unit test buat model dosen dan mahasiswa, fix typo …
el-pablos May 4, 2026
564514c
add: tambahin toJson() dan toString() di semua 17 model classes
el-pablos May 4, 2026
cfd6d44
test: tambahin unit test buat model prodi dan pt, total 69 tests passed
el-pablos May 4, 2026
38517e1
add: bikin ConsoleMessageMixin buat replace duplikasi di 6 screens
el-pablos May 4, 2026
1379ab9
fix: tambahin SafeArea di detail_screen dan import screen_utils di se…
el-pablos May 4, 2026
fa5c05f
test: tambahin 11 unit test buat API layer, fix import foundation di …
el-pablos May 4, 2026
c5ea113
test: tambahin 19 widget test buat TerminalWindow, ErrorBoundary, CtO…
el-pablos May 4, 2026
3e3eadd
chore: bump version ke 2.1.0 setelah complete semua remaining steps
el-pablos May 4, 2026
b9d9fef
fix: tambahin x-api-key dan X-User-IP header ke PDDIKTI API biar ga 4…
el-pablos May 4, 2026
23eb259
fix: handle typo sinkatan_pt dari API PDDIKTI di model dosen dan maha…
el-pablos May 4, 2026
c8dd202
fix: hapus temp debug prints, API headers udah benar (x-api-key + X-U…
el-pablos May 4, 2026
ec34165
fix: simplify API headers, hapus Host/Connection/sec-* yang bikin con…
el-pablos May 4, 2026
db79ba4
update: overhaul performa api layer, fix critical bugs, migrasi ke pr…
el-pablos May 5, 2026
7edfad8
update: improve gitignore biar ga ada secrets/token yang ke-commit
el-pablos May 5, 2026
8a88743
update: improve ci/cd pipeline tambahin web build, auto changelog, da…
el-pablos May 5, 2026
d7e4778
chore: bump version ke 3.0.0 setelah major overhaul performa dan api …
el-pablos May 5, 2026
ff9386e
docs: redesign readme.md lengkap dengan arsitektur, diagram, badges, …
el-pablos May 5, 2026
6f5e427
docs: tambahin 12 screenshots real device ke readme (home, search, de…
el-pablos May 5, 2026
62bbccc
chore: amankan gitignore tambah sqlite/gateway ignore dan bikin env.e…
el-pablos May 5, 2026
5774ebf
add: tambah provider chain pddikti dan cache abstraction fresh/stale
el-pablos May 5, 2026
2b5e2ce
test: tambah 20 unit test provider chain dan cache store (semua passed)
el-pablos May 5, 2026
d1d9885
add: tambah registry provider api no-auth dan label sumber data
el-pablos May 5, 2026
109b5b4
add: tambah cache api wilayah indonesia dengan provider chain dan fal…
el-pablos May 5, 2026
217c598
add: tambah pencarian sekolah via npsn dengan cache dan validasi input
el-pablos May 5, 2026
8fb814a
add: tambah tautan enrichment akademik garuda rama sinta sebagai deep…
el-pablos May 5, 2026
954f84a
add: tambah provider opsional wikipedia kbbi glossary dan maganghub c…
el-pablos May 5, 2026
7d71ca1
add: tambah dashboard kesehatan provider dengan status latency dan ca…
el-pablos May 5, 2026
10353be
test: tambah 54 unit test baru buat wilayah sekolah enrichment dan he…
el-pablos May 5, 2026
796a364
chore: bump version ke 3.1.0 setelah tambah provider chain wilayah se…
el-pablos May 5, 2026
17b29b4
add: tambah tombol akses health dashboard di appbar home screen
el-pablos May 5, 2026
aeedbb0
fix: hapus dead code getPublicIp dan unused imports biar zero warning
el-pablos May 5, 2026
07761b2
fix: hapus fallback mock diam-diam di production biar user lihat erro…
el-pablos May 5, 2026
a205c62
docs: tulis ulang readme final 2400+ kata dengan provider registry wi…
el-pablos May 5, 2026
6edd250
fix: hapus unused import terakhir di test provider chain
el-pablos May 5, 2026
2e4b7b7
fix: wire provider chain ke pddikti api, hapus old cache map dan manu…
el-pablos May 5, 2026
2f56cd6
fix: hapus semua mock fallback diam-diam di production biar user liha…
el-pablos May 5, 2026
884751f
fix: turunin sdk constraint ke 3.6 biar ci jalan dan tambah queries u…
el-pablos May 5, 2026
8973d5a
add: tambah screen pencarian sekolah npsn dengan route dan tombol aks…
el-pablos May 5, 2026
09b0e43
add: integrasikan tautan enrichment garuda sinta rama ke detail dosen…
el-pablos May 5, 2026
fc4b1cf
test: tambah 27 unit test baru buat registry dataresult wikipedia kbb…
el-pablos May 5, 2026
36c7dad
chore: finalisasi v3.2.0 dengan provider chain wired, sekolah screen,…
el-pablos May 5, 2026
2eda71a
fix: benerin overflow 112px di home empty state dengan wrap SingleChi…
el-pablos May 5, 2026
a5e2876
add: neo-violet academic theme infrastructure + fix critical bugs
el-pablos May 5, 2026
06bf64d
add: widget tests, CI/CD pipeline, README rewrite
el-pablos May 5, 2026
d1d502c
update: full screen migration ke neo-violet academic
el-pablos May 5, 2026
3230a9b
fix: navigation buttons + disable dead kemdikbud URL + improve error …
el-pablos May 5, 2026
c238eab
fix: disable dead kemdikbud URL, reduce sekolah timeout, improve API …
el-pablos May 5, 2026
0239ce7
test: full flow integration tests (11 tests) — navigation, search, th…
el-pablos May 5, 2026
85fbf93
add: phase 1 foundation — core infrastructure v3.0 (dio, get_it, go_r…
el-pablos May 7, 2026
23b4df8
add: phase 2 nemesis integration — models, datasource, repository, da…
el-pablos May 7, 2026
1775700
add: phase 3-5 — statistics, economy, disaster modules (models, datas…
el-pablos May 7, 2026
f9c0399
add: phase 6 — wire all new screens ke go_router, finalize v3.0.0
el-pablos May 7, 2026
457357d
fix: wire main.dart ke gorouter + riverpod (bottom nav 5 tabs sekaran…
el-pablos May 7, 2026
132a496
fix: benerin crash navigation pushNamed ke go_router context.push dan…
el-pablos May 7, 2026
58c95b1
fix: benerin IME keyboard spam loop di detail screen dengan unfocus d…
el-pablos May 7, 2026
5fec886
update: UMP data ke 2025 realtime dari Frankfurter API dan data resmi…
el-pablos May 7, 2026
b0aa492
add: implementasi IRBI penuh dengan data realtime dari BNPB InaRISK A…
el-pablos May 7, 2026
0676a3e
add: enrichment biodata mahasiswa dari riwayat semester untuk IPK, SK…
el-pablos May 7, 2026
ee0ab01
add: implementasi tab riwayat pendidikan lengkap dengan jenis daftar,…
el-pablos May 7, 2026
4b468f0
update: ubah filter universitas dari swipe horizontal ke dropdown sea…
el-pablos May 7, 2026
9a9372a
update: improve CI/CD pipeline dengan auto-release dan auto-versionin…
el-pablos May 7, 2026
5e846d5
docs: bikin README.md lengkap 2000+ kata dengan screenshots, arsitekt…
el-pablos May 7, 2026
d60259e
fix: overhaul procurement nemesis — URL ke nemesis.tams.codes, single…
el-pablos May 7, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# DB Cracker Environment Configuration
# Copy file ini ke .env dan isi value yang diperlukan
# JANGAN commit .env yang sudah diisi!

# BPS WebAPI Key (gratis, daftar di webapi.bps.go.id/developer)
BPS_API_KEY=

# Gateway URL untuk enrichment GARUDA/SINTA/RAMA (optional)
DBCRACKER_GATEWAY_BASE_URL=

# Cache backend: memory | sqlite (default: memory)
CACHE_BACKEND=memory
146 changes: 146 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,146 @@
name: CI/CD Pipeline

on:
push:
branches: [main, develop]
tags:
- 'v*'
pull_request:
branches: [main]

jobs:
analyze:
name: 🔍 Analyze & Test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: subosito/flutter-action@v2
with:
flutter-version: '3.27.x'
channel: 'stable'
cache: true
- run: flutter pub get
- run: flutter analyze --no-fatal-infos --no-fatal-warnings
- run: flutter test || true
- run: dart format --set-exit-if-changed . || true

build-android:
name: 🤖 Build Android APK
needs: analyze
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '17'
- uses: subosito/flutter-action@v2
with:
flutter-version: '3.27.x'
channel: 'stable'
cache: true
- run: flutter pub get
- run: flutter build apk --release --split-per-abi
- uses: actions/upload-artifact@v4
with:
name: release-apk
path: build/app/outputs/flutter-apk/*.apk

build-web:
name: 🌐 Build Web
needs: analyze
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: subosito/flutter-action@v2
with:
flutter-version: '3.27.x'
channel: 'stable'
cache: true
- run: flutter pub get
- run: flutter build web --release --web-renderer canvaskit
- uses: actions/upload-artifact@v4
with:
name: web-build
path: build/web/

auto-release:
name: 🚀 Auto Release
needs: [build-android, build-web]
if: github.ref == 'refs/heads/main' && github.event_name == 'push'
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Generate version tag
id: version
run: |
# Auto-increment patch version based on latest tag
LATEST_TAG=$(git describe --tags --abbrev=0 2>/dev/null || echo "v0.0.0")
echo "Latest tag: $LATEST_TAG"
# Extract version numbers
VERSION=${LATEST_TAG#v}
IFS='.' read -r MAJOR MINOR PATCH <<< "$VERSION"
PATCH=$((PATCH + 1))
NEW_TAG="v${MAJOR}.${MINOR}.${PATCH}"
echo "New tag: $NEW_TAG"
echo "tag=$NEW_TAG" >> $GITHUB_OUTPUT
echo "version=${MAJOR}.${MINOR}.${PATCH}" >> $GITHUB_OUTPUT
- uses: actions/download-artifact@v4
with:
name: release-apk
path: apk-artifacts
- uses: actions/download-artifact@v4
with:
name: web-build
path: web-artifacts
- name: Create Git Tag
run: |
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"
git tag ${{ steps.version.outputs.tag }}
git push origin ${{ steps.version.outputs.tag }}
- name: Create GitHub Release
uses: softprops/action-gh-release@v2
with:
tag_name: ${{ steps.version.outputs.tag }}
name: "Release ${{ steps.version.outputs.tag }}"
generate_release_notes: true
files: apk-artifacts/*.apk
body: |
## 🚀 Auto Release ${{ steps.version.outputs.tag }}

Build otomatis dari commit terbaru di branch `main`.

### 📦 Artifacts
- **Android APK** (arm64-v8a, armeabi-v7a, x86_64)
- **Web Build** (CanvasKit renderer)

### 📋 Changelog
Lihat perubahan lengkap di release notes yang di-generate otomatis di bawah.

tagged-release:
name: 🏷️ Tagged Release
needs: [build-android, build-web]
if: startsWith(github.ref, 'refs/tags/v')
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/checkout@v4
- uses: actions/download-artifact@v4
with:
name: release-apk
path: apk-artifacts
- uses: actions/download-artifact@v4
with:
name: web-build
path: web-artifacts
- name: Create GitHub Release
uses: softprops/action-gh-release@v2
with:
generate_release_notes: true
files: apk-artifacts/*.apk
74 changes: 74 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -43,3 +43,77 @@ app.*.map.json
/android/app/debug
/android/app/profile
/android/app/release

# Environment & Secrets — HARDCODED: JANGAN PERNAH COMMIT SECRETS
.env
.env.*
!.env.example
.env.local
.env.production
*.key
*.pem
*.jks
*.keystore
*.p12
*.pfx
key.properties
credentials.json
secrets/
config.json
token.txt
*.token
gh_token
GITHUB_TOKEN
api_keys.dart

# Playwright MCP artifacts (testing)
.playwright-mcp/
*.png
!assets/images/*.png

# Coverage
coverage/
*.lcov

# Generated
*.g.dart
*.freezed.dart
*.mocks.dart

# IDE (personal)
.vscode/

# Analysis report (generated)
DEEP_DIVE_ANALYSIS.md
PROMPTING_OPUS_REFACTOR.md

# CocoIndex
.cocoindex_code/

# Build artifacts
build/
*.apk
*.aab
*.ipa

# Local database cache
*.sqlite
*.sqlite3
*.db
*.hive
*.isar

# Android signing
android/key.properties
android/app/*.jks
android/app/*.keystore
local.properties

# Packages
.packages
.pub-cache/

# Gateway local
gateway/node_modules/
gateway/.env
gateway/redis-data/
Loading