Kesan pertama platform akademik yang modern.

Pengalaman feed layaknya media sosial (For You, Like, Komentar, Update Organisasi) yang digabungkan dengan fungsi inti akademik (Tugas, Materi, Absensi, Nilai, UKT).

Notifikasi Real Time Tugas Mahasiswa.

STUDENT HUB menghubungkan Mahasiswa, Dosen, Admin, Orang Tua, UKM, dan ORMAWA ke dalam satu pengalaman web terpusat yang aman dan skalabel.
Secara pengalaman pengguna (User Experience), STUDENT HUB mengadopsi pola interaksi modern (seperti timeline feed dan social interaction) lalu menggabungkannya dengan kebutuhan inti kampus (LMS, administrasi, komunikasi real-time).
One platform. One ecosystem. One academic experience.
- Penambahan Popup Tutorial Interaktif khusus mahasiswa baru pada Landing Page (hanya muncul pada kunjungan pertama).
- Pembaruan UI Landing Page dengan section Panduan Role (Role Guides) interaktif yang terstruktur (Mahasiswa, Dosen, Orang Tua, Ormawa, Admin).
- Optimalisasi Akses Jaringan Lokal (LAN): Backend telah dikonfigurasi menggunakan
AllowOriginFuncuntuk mengizinkan akses sistem penuh melalui jaringan Wi-Fi lokal dari perangkat mobile tanpa kendala CORS (403 Forbidden). - Modul Chatbot telah dihapus dari frontend dan backend.
- Seluruh endpoint dan fungsi API health check yang terkait chatbot/OpenClaw telah dihapus karena tidak digunakan.
Sistem memastikan privasi dan keamanan dengan menggunakan arsitektur Role-Based Access Control (RBAC) yang memisahkan dashboard setiap user:
| π Role | Fitur Tersedia |
|---|---|
| π Mahasiswa | Dashboard Akademik, Lihat Materi & Submit Tugas, Cek Kehadiran (Scan QR), Bayar & Tracking UKT, Chat Dosen, Profil Publik. |
| π¨βπ« Dosen | Manajemen Matkul & Pertemuan, Upload Tugas & Materi, Input & Koreksi Nilai, Generate Absensi QR Code, Chat Mahasiswa. |
| π€ OpenClaw | (Automation Engine): Menarik data via Outbox Pattern, Kirim Notifikasi via Telegram Bot, Pengingat Deadline Otomatis. |
| π οΈ Admin | Manajemen Akun, Posting Pengumuman Kampus, Monitor UKT Mahasiswa, Dashboard Analytics, Pengaturan Sistem Kampus. |
| π¨βπ©βπ§ Orang Tua | Monitor Kehadiran Kuliah Anak, Tracking Status Pembayaran UKT, Notifikasi Akademik. |
| π« Ormawa/UKM | Manajemen Profil Organisasi, Publikasi Kegiatan/Kepanitiaan di Feed Kampus, Berinteraksi dengan Sivitas (Like & Comment). |
Sistem menggunakan stack moderen yang dioptimalkan untuk skalabilitas tinggi, transisi antar layar yang mulus, serta proses automation tanpa henti di belakang layar.
- Framework: React 19 + Vite 7
- Styling: Tailwind CSS, MUI + Emotion, GSAP (Animations), Three.js (3D Elements)
- Routing & State: React Router 7, TanStack React Query 5
- Communication: Axios
- Language: Go 1.24
- Framework: Gin (HTTP framework)
- Database: PostgreSQL (Supabase) + GORM (Seelumnya MySQL)
- Authentication: JWT (HS256)
- Real-time: Gorilla / WebSocket
- Automation Service: Backend memiliki microservice internal bernama OpenClaw untuk Push Notification ke Telegram Bot API.
Aplikasi ini dapat dijalankan di lingkungan lokal (komputer pribadi) maupun di-deploy ke server VPS (Virtual Private Server). Pastikan sistem Anda telah terinstal Node.js β₯ 18, Go β₯ 1.20, dan memiliki akses ke PostgreSQL.
git clone https://github.com/HudzaifahArrantisi/NF-STUDENT-HUB.git
cd NF-STUDENT-HUBPusat API dan Database dikonfigurasi pada folder backend. Buatlah file .env di dalam folder backend:
# Koneksi Database PostgreSQL (Bisa lokal localhost atau Supabase)
# PENTING: Untuk deployment Supabase, gunakan Transaction Pooler (port 6543)
# JANGAN gunakan Session Pooler (port 5432) β akan menyebabkan error EMAXCONNSESSION
DB_DSN=postgresql://postgres.[PROJECT_REF]:[PASSWORD]@aws-0-[REGION].pooler.supabase.com:6543/postgres
# Security (JWT)
JWT_SECRET=isi_dengan_bebas_rahasia_panjang
NAMA=STUDENT HUB Server
PORT=8080
ALLOWED_ORIGINS=https://domainanda.com,http://localhost:3000
# Konfigurasi OpenClaw (Sistem Notifikasi Telegram)
OPENCLAW_BASE_URL=http://localhost:8080
TELEGRAM_BOT_TOKEN=token_bot_anda_dari_botfather
TELEGRAM_CHANNEL_ID=@channel_target_reminder
OPENCLAW_CRON_SCHEDULE="0 * * * *"Buka dua (2) terminal yang berbeda untuk menjalankan Frontend dan Backend. (Catatan: OpenClaw kini sudah di-embed langsung ke dalam backend utama).
Terminal 1 β Backend (Go)
cd backend
go mod tidy
go run main.go
# API & OpenClaw berjalan di http://localhost:8080Terminal 2 β Frontend (React)
cd frontend
npm install
npm run dev
# Akses web di http://localhost:3000Akses LAN/Wi-Fi: Jika ingin diakses dari HP di jaringan Wi-Fi yang sama, gunakan
npm run dev -- --hostdan akses IP lokal komputer Anda (contoh:http://192.168.1.10:3000).
Jika Anda menggunakan VPS (Ubuntu/Debian), berikut langkah terbaik untuk menjalankannya:
A. Build Frontend (React)
Di VPS, frontend tidak perlu dijalankan dengan npm run dev. Anda harus mem-buildnya:
cd frontend
npm install
npm run buildHasil build akan berada di folder dist/. Anda bisa menggunakan Nginx untuk menyajikan folder dist/ ini.
B. Build & Jalankan Backend (Go) dengan Systemd Sebaiknya backend dijalankan sebagai service di belakang layar agar tetap hidup saat terminal ditutup.
cd backend
go build -o server main.goBuat file service systemd (/etc/systemd/system/studenthub.service):
[Unit]
Description=Student Hub Backend
After=network.target
[Service]
User=root
WorkingDirectory=/path/ke/NF-Student-HUB/backend
ExecStart=/path/ke/NF-Student-HUB/backend/server
Restart=always
[Install]
WantedBy=multi-user.targetLalu jalankan:
sudo systemctl daemon-reload
sudo systemctl enable studenthub
sudo systemctl start studenthubC. Konfigurasi Nginx (Reverse Proxy)
Arahkan domain Anda ke Nginx, lalu buat Nginx mem-proxy port 8080 (Backend) dan menyajikan folder dist (Frontend). Jangan lupa set SSL/HTTPS menggunakan Certbot.
STUDENT-HUB/
βββ frontend/ # Folder seluruh UI React
β βββ public/
β βββ src/
β βββ components/ # UI Partials (Re-usable Components)
β βββ pages/ # Views untuk Routing
β βββ hooks/
β βββ services/
β βββ utils/
β
βββ backend/ # Inti Sistem API Go
β βββ config/ # Database Connectors (PostgreSQL)
β βββ controllers/ # Business Logic
β βββ models/ # DTO & Schema Models
β βββ routes/ # Endpoint Index
β βββ openclaw/ # MICROSERVICE Engine Automation
β β βββ discord/ # (Opsional Future) Modul Discord
β β βββ handler/ # Polling Events
β β βββ telegram/ # Broadcast Bot
β βββ uploads/ # Auto-generated Static Files (Tugas & Materi)
β
βββ README.md
- RBAC (Role Based Access Control): Implementasi middleware di backend Go untuk memblokir user mengakses resource selain golongannya.
- Payload Encryption: Autentikasi state-less dengan token JWT yang di-hash via standard HS256.
- Auto Prevention: Mencegah kebocoran struktur Query SQL Injection via standardisasi GORM.
(Peringatan: Pastikan .env ter-ignor (.gitignore) saat production deployment agar credential API & Database tidak terekspos.)
- Lakukan Fork pada repository ini.
- Buatlah branch untuk tiap fitur/pengembangan
git checkout -b feature/SistemKerenKu. - Simpan perubahan dengan Conventional Commit:
git commit -m "feat: Menambah auto-login system". - Dorong (push) kodenya
git push origin feature/SistemKerenKu. - Buka Pull Request.
Lisensi Penggunaan
Proyek ini berada di bawah jalur pengunaan Akademik (STT Terpadu Nurul Fikri).
Terakhir diperbarui: April 2026 β v1.0.2