Situs ini dikemudikan dua tombol, seperti mesin pemiliknya. Membaca: j dan k menggulir, d dan u setengah layar, gg ke atas, G ke bawah, H dan L pindah jendela, ? membuka panduan. Spasi adalah kunci leader Neovim dan mengurus isi: Spasi lalu h beranda, r riset, p proyek, g gear, a tentang, / tag, atau Spasi lalu angka untuk melompat ke jendela bernomor itu. Home adalah prefix tmux dan mengurus jendela: Home lalu c membuka terminal, Home lalu & menutup jendela, Home lalu spasi ke jendela berikutnya. Saat fokus ada di papan ketik, h j k l memindahkan pilihan antar tombol dan Enter membukanya.

RisetR TentangA Gear — G untuk gear — papan ketik, terminal, editor, homelab.G
    ProyekP Tag — / seperti di vim: cari./
    ×
    Menu

    test_presence: Presensi Karyawan Berbasis GPS

    Aplikasi presensi dengan check-in tervalidasi geolokasi dan alur pengajuan cuti. Backend Go + SQLite, frontend React dengan pratinjau peta radius kantor.

    Ringkasan

    Aplikasi manajemen presensi untuk melacak kehadiran karyawan dengan check-in berbasis GPS dan alur permintaan cuti.

    • Backend: Go dengan database SQLite
    • Frontend: React dengan alur check-in GPS

    Fitur

    • Validasi kehadiran berdasarkan geolokasi kantor dan radius yang dapat dikonfigurasi
    • Pengajuan permintaan cuti untuk karyawan
    • Dashboard admin untuk laporan serta persetujuan atau penolakan permintaan cuti
    • Autentikasi berbasis peran untuk karyawan dan admin
    • Pratinjau peta yang menampilkan titik pusat kantor, radius yang diizinkan, dan posisi GPS karyawan saat ini

    Struktur Proyek

    DirektoriDeskripsi
    BE/REST API (Go + SQLite)
    FE/Aplikasi web (React + Vite)

    Menjalankan Backend

    cd BE
    go mod tidy
    go run .

    Backend berjalan di http://localhost:8080.

    Pengguna Default

    UsernamePasswordPeran
    andipassword123Karyawan
    budipassword123Karyawan
    citrapassword123Admin

    Menjalankan Frontend

    cd FE
    npm install
    npm run dev

    Frontend tersedia di http://localhost:5173.

    Secara default, FE menggunakan /api melalui proxy Vite. Untuk mengganti endpoint API, atur:

    VITE_API_BASE=http://localhost:8080/api

    Endpoint API

    Publik

    • POST /api/login

    Terautentikasi

    • GET /api/config
    • POST /api/presence
    • POST /api/holiday-requests
    • GET /api/holiday-requests — karyawan hanya melihat permintaan miliknya sendiri

    Khusus Admin

    • GET /api/employees
    • PATCH /api/holiday-requests/{id}
    • GET /api/admin/report

    Setup Docker

    Jalankan seluruh stack dengan satu perintah:

    docker compose up --build
    • Frontend: http://localhost:5173
    • Backend: http://localhost:8080

    Catatan

    • FE versi Docker memproksi /api ke container backend secara internal, sehingga menghindari masalah CORS di browser.
    • Server dev Vite lokal juga memproksi /api ke http://localhost:8080.
    id en
    rss gh in