Backend service untuk mengelola proses akreditasi perguruan tinggi secara terpusat, mulai dari pengumpulan dokumen, sinkronisasi data eksternal, perhitungan indikator akreditasi, hingga audit aktivitas pengguna.
Catatan Portofolio
Proyek ini dirancang sebagai studi kasus implementasi sistem informasi skala institusi dengan fokus pada arsitektur backend, efisiensi resource, keamanan data, dan kemampuan menangani ribuan dokumen akreditasi secara bersamaan.
Aplikasi menggunakan pendekatan Decoupled Architecture, di mana frontend dan backend berjalan secara terpisah dan berkomunikasi melalui REST API.
Pendekatan ini memberikan beberapa keuntungan:
- Skalabilitas lebih baik antara frontend dan backend.
- Deployment yang lebih fleksibel.
- Memudahkan integrasi dengan aplikasi eksternal.
- Mendukung pengembangan paralel oleh tim frontend dan backend.
- React
React digunakan untuk membangun antarmuka pengguna yang responsif dan interaktif sehingga proses pengisian borang akreditasi dapat dilakukan dengan lebih efisien.
- Rust
- Axum
- Tokio
Backend dibangun menggunakan Rust dan framework Axum untuk mendapatkan:
- Memory footprint yang rendah.
- Performa tinggi.
- Dukungan asynchronous programming yang kuat.
- Kemampuan menangani ribuan request secara bersamaan tanpa blocking.
Pemanfaatan Tokio Runtime memungkinkan proses seperti:
- Upload dokumen.
- Sinkronisasi data eksternal.
- Perhitungan indikator.
- Logging aktivitas.
berjalan secara concurrent tanpa mengganggu request utama pengguna.
- PostgreSQL
Dipilih karena:
- Mendukung transaksi ACID.
- Konsistensi data yang tinggi.
- Cocok untuk sistem informasi yang memerlukan integritas data.
- Mendukung query kompleks dan relasi yang kuat.
- Docker
Seluruh service dikemas menggunakan Docker untuk memastikan:
- Konsistensi lingkungan deployment.
- Kemudahan distribusi.
- Proses provisioning server yang lebih sederhana.
┌──────────────────┐
│ Frontend │
│ React │
└────────┬─────────┘
│ REST API
▼
┌──────────────────┐
│ API Service │
│ Rust + Axum │
└───────┬──────────┘
│
├─────────────────┐
│ │
▼ ▼
┌──────────────┐ ┌──────────────┐
│ PostgreSQL │ │ File Storage │
└──────────────┘ └──────────────┘
▲
│
▼
┌──────────────────┐
│ Scheduler Worker │
│ Background Jobs │
└──────────────────┘
Sistem dirancang menggunakan pendekatan service separation:
- API Service
- Background Scheduler
- Document Storage Service
Pendekatan ini memungkinkan setiap komponen berkembang secara independen sesuai kebutuhan beban kerja.
Sistem menerapkan otorisasi multilevel untuk memastikan setiap pengguna hanya dapat mengakses fitur sesuai perannya.
- Upload dokumen bukti
- Mengisi formulir akreditasi
- Melihat status verifikasi
- Approve dokumen
- Reject dokumen
- Validasi hasil perhitungan indikator
- Manajemen pengguna
- Manajemen fakultas
- Manajemen program studi
- Konfigurasi sistem
- Read-only access
- Monitoring seluruh dokumen
- Monitoring dashboard capaian indikator
Sistem menerima dan mengelola ribuan dokumen pendukung akreditasi seperti:
- SK
- Renstra
- Laporan Audit Mutu
- Laporan Evaluasi Diri
- Dokumen Kebijakan
- Upload file PDF menggunakan multipart/form-data.
- Penyimpanan file pada local file system.
- Metadata file tersimpan di PostgreSQL.
- Mendukung concurrent upload.
- Efisiensi penggunaan memori saat transfer file berukuran besar.
Digunakan untuk indikator yang memerlukan dokumen resmi dalam bentuk file.
Digunakan untuk indikator yang sumber buktinya berasal dari website perguruan tinggi.
Digunakan untuk indikator yang sumber datanya berasal dari sistem eksternal seperti:
- PD Dikti
- Sistem Pelaporan SPMI
Data tertentu tidak boleh diinput secara manual dan harus diperoleh langsung dari sumber resmi.
Untuk menghindari latency tinggi pada request pengguna, proses sinkronisasi dilakukan oleh background worker.
- Scheduler berjalan secara periodik.
- Worker melakukan fetch data dari API eksternal.
- Data hasil sinkronisasi disimpan ke database lokal.
- Frontend membaca data dari cache lokal.
- Respon API lebih cepat.
- Mengurangi ketergantungan terhadap availability API eksternal.
- Mengurangi jumlah request ke sistem pihak ketiga.
Contoh data yang disinkronkan:
- Jumlah dosen aktif
- Jumlah mahasiswa aktif
- Persentase guru besar
- Data SPMI
- Data penelitian
Backend memiliki engine kalkulasi yang bertugas menerjemahkan indikator BAN-PT menjadi fungsi perhitungan otomatis.
DITA = ((NDTGB + NDTLK) / NDT) × 100%
RLP = (NA2 + NA3 + NA4 + NB2 + NB3 + NC2 + NC3) / NDT × 100%
- Menghitung indikator secara otomatis.
- Melakukan validasi terhadap data masukan.
- Menentukan status pencapaian indikator.
- Memberikan warning jika target belum tercapai.
- Mendukung penambahan formula baru tanpa mengubah struktur sistem utama.
Contoh:
Status:
Belum Memenuhi Syarat Unggul
Alasan:
Persentase dosen bergelar doktor < 30%
Seluruh aktivitas pengguna direkam untuk menjaga akuntabilitas data akreditasi.
- Login pengguna
- Upload dokumen
- Hapus dokumen
- Approve dokumen
- Reject dokumen
- Sinkronisasi data eksternal
- Perubahan data master
User ID
Role
Action
Target Resource
Timestamp
IP Address
Audit trail membantu proses investigasi ketika terjadi:
- Kehilangan dokumen
- Kesalahan data
- Ketidaksesuaian bukti saat asesmen
Menangani banyak pengguna yang melakukan pengisian dokumen secara bersamaan menjelang batas waktu akreditasi.
Mengelola ribuan file PDF tanpa membebani memori server.
Menjaga sistem tetap responsif meskipun API eksternal mengalami gangguan.
Memastikan seluruh proses bisnis berjalan secara konsisten melalui transaksi database PostgreSQL.
Mencegah akses tidak sah terhadap dokumen dan data institusi.
Melalui proyek ini saya mengimplementasikan:
- REST API Development
- Asynchronous Programming
- Background Job Processing
- RBAC Authorization
- File Upload Service
- PostgreSQL Database Design
- Audit Logging
- Docker Containerization
- System Scalability
- High-Concurrency Architecture
- Data Synchronization Service
- Formula Processing Engine
Portfolio Project — Backend System Design & Implementation Study
Proyek ini dibuat untuk menunjukkan kemampuan perancangan dan implementasi backend modern menggunakan Rust, Axum, PostgreSQL, dan Docker pada studi kasus sistem informasi akreditasi perguruan tinggi yang memiliki kebutuhan keamanan, konsistensi data, dan skalabilitas tinggi.