https://github.com/dimasnuryadin/express-topupgame
A browser-based game top up application
https://github.com/dimasnuryadin/express-topupgame
backend express-js mongodb
Last synced: 4 months ago
JSON representation
A browser-based game top up application
- Host: GitHub
- URL: https://github.com/dimasnuryadin/express-topupgame
- Owner: DimasNuryadin
- Created: 2024-03-08T12:57:10.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-04-08T21:00:06.000Z (over 2 years ago)
- Last Synced: 2025-01-30T04:22:36.195Z (over 1 year ago)
- Topics: backend, express-js, mongodb
- Language: EJS
- Homepage: https://express-top-up-game.vercel.app
- Size: 1.79 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# đ§ą Express-TopUpGame
**Express-TopUpGame** adalah backend API untuk proyek **Top Up Game** dalam kelas **BuildWithAngga**.
Aplikasi ini dibangun dengan **Express.js** dan **MongoDB**, berfungsi untuk menangani autentikasi, data game, transaksi, serta komunikasi data ke frontend **[Next-TopUpGame](https://github.com/DimasNuryadin/Next-TopUpGame)**.
---
## đī¸ Teknologi & Arsitektur
Proyek ini dibangun dengan stack berikut:
- **Express.js** â framework backend berbasis Node.js
- **MongoDB + Mongoose** â database dan ODM
- **JWT (JSON Web Token)** â autentikasi pengguna
- **bcrypt.js** â enkripsi password
- **dotenv** â konfigurasi environment
- **CORS & Morgan** â keamanan & logging API
---
## đ Struktur Direktori
```
src/
ââ config/
ââ controllers/
ââ middlewares/
ââ models/
ââ routes/
ââ utils/
ââ server.js
.env.example
package.json
```
Penjelasan singkat:
- `config/` â koneksi database & konfigurasi dasar
- `controllers/` â logika utama API (auth, top-up, transaksi)
- `middlewares/` â middleware autentikasi dan validasi
- `models/` â skema Mongoose untuk data user & game
- `routes/` â definisi endpoint API
- `utils/` â helper seperti error handling & response standar
- `server.js` â entry point aplikasi
---
## đ Instalasi & Menjalankan Server
### Prasyarat
- Node.js (versi 18+ disarankan)
- MongoDB (lokal atau Atlas)
- npm / yarn
### Langkah
1. Clone repository:
```bash
git clone https://github.com/DimasNuryadin/Express-TopUpGame.git
cd Express-TopUpGame
```
2. Install dependencies:
```bash
npm install
# atau
yarn install
```
3. Buat file `.env` dan isi seperti contoh berikut:
```bash
MODE=dev
SERVICE_NAME=express-topupgame
MONGO_URL=mongodb://127.0.0.1:27017/db_name
JWT=your_jwt_secret
```
4. Jalankan server development:
```bash
npm run dev
# atau
yarn dev
```
5. Server berjalan di **http://localhost:4000** (atau sesuai PORT di `.env`).
---
## đ Integrasi dengan Frontend
Frontend: [Next-TopUpGame](https://github.com/DimasNuryadin/Next-TopUpGame)
Gunakan variabel berikut di frontend:
```
NEXT_PUBLIC_API=https://express-top-up-game.vercel.app
NEXT_PUBLIC_IMG=https://express-top-up-game.vercel.app/uploads
```
Pastikan **CORS** aktif agar request dari domain frontend dapat diterima oleh backend.
---
## đ Endpoint Utama (Contoh)
| Method | Endpoint | Deskripsi |
|--------|-----------|-----------|
| `POST` | `/api/v1/auth/signup` | Registrasi pengguna |
| `POST` | `/api/v1/auth/signin` | Login pengguna & JWT token |
| `GET` | `/api/v1/games` | Mendapatkan daftar game |
| `GET` | `/api/v1/categories` | Mendapatkan kategori game |
| `POST` | `/api/v1/transactions` | Membuat transaksi top up |
| `GET` | `/api/v1/transactions/history` | Melihat riwayat transaksi |
---
## đ§Š Middleware
Middleware penting yang digunakan:
- `authMiddleware.js` â verifikasi JWT
- `errorHandler.js` â penanganan error global
- `validateInput.js` â validasi input pengguna
---
## đĻ Deployment
Aplikasi dapat dideploy ke **Vercel**, **Render**, **Railway**, atau server Node.js lain.
Untuk mode produksi:
```bash
npm run build
npm start
```
Pastikan `.env` disesuaikan dengan konfigurasi produksi (database & JWT secret).
Link deployment:
đ [https://express-top-up-game.vercel.app](https://express-top-up-game.vercel.app)
---
## â
Fitur Utama
- Autentikasi pengguna dengan JWT
- Manajemen data game & kategori
- Transaksi top up & riwayat pengguna
- Integrasi penuh dengan frontend Next.js
- Struktur modular & mudah dikembangkan
---
## đ¸ Screenshoot

---
## âšī¸ Catatan & Tips
- Pastikan database MongoDB berjalan sebelum menjalankan server.
- Gunakan **Postman** untuk menguji endpoint API.
- Simpan JWT secret dengan aman dan jangan commit ke repo publik.
---