Backend API berbasis Express.js untuk mendukung fitur prediksi, analisis, chatbot, autentikasi, dan manajemen data pada proyek SPPG Capstone.
- REST API berbasis Express.js
- Integrasi dengan layanan FastAPI
- JWT Authentication & Authorization
- Upload dan prediksi data CSV
- Riwayat analisis SPPG
- Chatbot Session API
- PostgreSQL Database
- Redis Cache Support
- Middleware validasi dan error handling
backend/
βββ migrations/
βββ src/
β βββ cache/
β βββ config/
β βββ exceptions/
β βββ middlewares/
β βββ routes/
β βββ security/
β βββ server/
β βββ services/
β β βββ authentications/
β β βββ chatbot/
β β βββ sppg/
β β βββ sppganalyses/
β β βββ sppgpredictcsv/
β β βββ users/
β βββ utils/
βββ package.json
βββ .env- Node.js
- Express.js
- PostgreSQL
- Redis
- JWT
- Multer
- Joi Validation
- Axios
- Nodemon
- ESLint
git clone <repository-url>
cd backendnpm installBuat file .env berdasarkan contoh berikut:
HOST=localhost
PORT=5000
FASTAPI_URL=https://your-fastapi-url
PGUSER=postgres
PGHOST=localhost
PGPASSWORD=password
PGDATABASE=sppgdb
PGPORT=5432
ACCESS_TOKEN_KEY=your_access_token_secret
REFRESH_TOKEN_KEY=your_refresh_token_secretnpm run migrate upnpm run start:devnpm run start:prodServer berjalan di:
http://localhost:5000POST /users{
"username": "admin",
"password": "password123",
"fullname": "Administrator"
}POST /authentications{
"username": "admin",
"password": "password123"
}{
"status": "success",
"data": {
"accessToken": "jwt-access-token",
"refreshToken": "jwt-refresh-token"
}
}POST /api/predictPOST /api/predict/batchPOST /api/analyzePOST /api/predict-and-analyzePOST /api/chatPOST /api/sppg-analysesMembutuhkan Bearer Token
GET /api/sppg-analysesMembutuhkan Bearer Token
POST /api/sppg-csv/upload| Key | Type |
|---|---|
| file | CSV File |
Membutuhkan Bearer Token
GET /api/sppg-csv/historyPOST /api/sessionsGET /api/sessionsGET /api/sessions/:sessionId/messagesPOST /api/messagesPOST /api/public-chatProject ini menggunakan beberapa middleware utama:
- Authentication Middleware
- Validation Middleware
- Error Handler Middleware
- Upload Middleware (Multer)
| Command | Description |
|---|---|
| npm run start:dev | Menjalankan server development |
| npm run start:prod | Menjalankan server production |
| npm run migrate | Menjalankan migration database |
| npm run lint | Menjalankan ESLint |
| Package | Fungsi |
|---|---|
| express | Web framework |
| pg | PostgreSQL client |
| redis | Redis client |
| jsonwebtoken | JWT Authentication |
| joi | Validasi request |
| multer | Upload file |
| axios | HTTP client |
- Pastikan PostgreSQL aktif sebelum menjalankan server.
- Pastikan environment variable sudah sesuai.
- Endpoint tertentu membutuhkan Authorization Bearer Token.
- Integrasi AI menggunakan layanan FastAPI eksternal.
SPPG Capstone Team
ISC License