Informasi Project API: ctech-admin-server
Halaman ini berisi analisis dan intisari dari struktur backend API berdasarkan file package.json,
server.js, dan konfigurasi rute di dalam project.
1. Teknologi Yang Digunakan
- Runtime & Framework: Node.js, Express.js (versi 5.1.0)
- Desktop Wrapper: Electron (Aplikasi ini dapat dijabarkan sebagai desktop app yang membungkus
server lokal).
- Database: MySQL/MariaDB (menggunakan konektor
mysql2).
- Authentication: JSON Web Tokens (
jsonwebtoken), Bcrypt untuk hashing.
- Realtime / Notifikasi: Firebase Admin SDK untuk Cloud Messaging (FCM).
- Styling: Tailwind CSS CLI (untuk halaman admin/statis).
- AI Integration: Groq SDK (
groq-sdk) untuk fitur tanya AI.
- Utilitas Lain: Puppeteer (mungkin untuk cetak struk/PDF), bwip-js/qrcode (pembuat
barcode/QR), Sharp (image processing), Multer (upload file), Nodemailer (email).
2. Arsitektur Server
- Dual Protocol: Menjalankan server HTTP dan HTTPS secara bersamaan dari script yang sama.
- Port Default: HTTP berjalan di port 8888 dan 8000, HTTPS di 8443 dan 9000 (jika
dikonfigurasi).
- CORS & Security: Mendukung Cross-Origin Resource Sharing agar API dapat diakses dari frontend
web lain, serta menyertakan SSL (cert.pem/key.pem).
3. Direktori File Statis (Public Assets)
Server mengekspos beberapa folder untuk diakses langsung secara publik tanpa autentikasi:
- /images : Menyimpan gambar/logo (misal: logo perusahaan).
- /qrcode : Direktori untuk file kode QR.
- /barcode : Direktori untuk file Barcode.
- /foto : Tempat penyimpanan foto (produk/user/pegawai).
- /public : Folder antarmuka web statis (HTML, CSS).
4. Rute API yang Tersedia
Berbagai rute disediakan melalui direktori /router yang menandakan ini adalah sistem Point of Sale
(POS), ERP, atau Manajemen Toko:
- Master Data:
/api/produk, /api/kategori, /api/suplier,
/api/customer, /api/perusahaan.
- Transaksi:
/api/penjualan, /api/pembelian,
/api/pesanan, /api/retur.
- Keuangan & Laporan:
/api/ppn, /api/laporan.
- HR & User:
/api/users, /api/kasir, /api/pegawai,
/api/salesman.
- Inventory:
/api/gudang.
- Komunikasi & Notifikasi:
/api/pesan, /fcm (Firebase),
/api/groq (AI Tanya Jawab).
5. Panduan Komunikasi dengan API (Untuk Frontend)
Untuk melihat semua contoh kode JavaScript (fetch) lengkap dengan format kirim data (request
body) dan contoh balasan (response) dari setiap endpoint API, silakan buka halaman dokumentasi berikut:
📌 Ringkasan Singkat: Halaman tersebut berisi contoh fetch() siap pakai untuk
20+ modul API (Users, Produk, Penjualan, Pembelian, Salesman, Laporan, FCM, dll)
lengkap dengan contoh JSON body dan response dari server.