aman-ga

๐Ÿ›ก๏ธ Aman ga? - Payment Verification System

Tanya dulu, transfer kemudian.
Ask first, transfer later.

License: MIT FastAPI Next.js Python Mock Mode

Status Last Commit


๐Ÿ“– Table of Contents


๐ŸŽฏ What is Aman ga?

Aman ga? is a comprehensive payment verification platform designed for the Indonesian market to help users verify if online transactions are safe before transferring money.

The Problem We Solve

In Indonesia, online fraud is rampant. People need a way to:

How It Works

graph LR
    A[User Uploads Payment Proof] --> B{Amount < Rp 1.000?}
    B -->|Yes| C[Auto-Approve]
    B -->|No| D[Admin Review]
    C --> E[Service Credit Activated]
    D --> E
    D --> F[Fraud Detected?]
    F -->|Yes| G[Flag & Suspend]
    F -->|No| E
  1. User registers and purchases a service package
  2. Uploads payment proof (screenshot of transfer)
  3. System verifies:
    • Amount < Rp 1.000 โ†’ Auto-approved โšก
    • Amount โ‰ฅ Rp 1.000 โ†’ Admin review ๐Ÿ‘ฎ
  4. Service credit activated โ†’ User can perform fraud checks
  5. Fraud detection runs in background, flags suspicious patterns

โœจ Features

๐Ÿ” Authentication & Authorization

๐Ÿ’ณ Payment Processing

๐Ÿ›ก๏ธ Fraud Detection

๐Ÿ‘ฎ Admin Dashboard

๐Ÿ“ฑ User Interface

๐Ÿ”” Notifications (Optional)


๐ŸŽฏ Quick Start

No external services needed! Test everything locally in 5 minutes.

# 1. Clone repository
git clone https://github.com/Therealratoshen/aman-ga.git
cd aman-ga

# 2. Start Backend (Terminal 1)
cd backend
python3 -m venv venv
source venv/bin/activate  # Windows: venv\Scripts\activate
pip install -r requirements.txt
uvicorn main:app --reload --port 8000

# Look for this message:
# ๐ŸŽฏ MOCK MODE: Using in-memory database for testing
#    Demo accounts:
#    - Admin: admin@amanga.id / admin123
#    - Finance: finance@amanga.id / admin123

# 3. Start Frontend (Terminal 2)
cd frontend
npm install
npm run dev

# 4. Open browser
# http://localhost:3000

โœ… Ready to test! Login with demo credentials below.


Option 2: Production Mode (With Supabase)

For persistent data and production deployment:

# 1. Create free Supabase project
# Go to: https://supabase.com
# Create project โ†’ Copy URL and anon key

# 2. Run database schema
# SQL Editor โ†’ New Query โ†’ Paste database/schema.sql โ†’ Run

# 3. Configure backend
cd backend
cp .env.example .env
nano .env  # Edit with your Supabase credentials

# 4. Restart backend
uvicorn main:app --reload --port 8000

See QUICKSTART.md for detailed setup guide.


๐Ÿ“‹ Demo Credentials

Role Email Password Access Level
๐Ÿ‘‘ Admin admin@amanga.id admin123 Full access, fraud flagging
๐Ÿ’ฐ Finance finance@amanga.id admin123 Approve/reject payments
๐Ÿ‘ค User Register new Your choice Purchase & use services

Try these steps:

  1. Login as Admin โ†’ Explore admin dashboard
  2. Register new user โ†’ Purchase service โ†’ Upload payment
  3. Logout โ†’ Login as Finance โ†’ Approve payment
  4. Check user dashboard โ†’ See activated credit

๐Ÿ—๏ธ Architecture

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                         CLIENT LAYER                         โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”         โ”‚
โ”‚  โ”‚   Desktop   โ”‚  โ”‚   Mobile    โ”‚  โ”‚   Tablet    โ”‚         โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜         โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                            โ”‚
                            โ–ผ HTTP/JSON
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                      PRESENTATION LAYER                      โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    โ”‚
โ”‚  โ”‚           Next.js 14 Frontend (React)               โ”‚    โ”‚
โ”‚  โ”‚           โ€ข Tailwind CSS                           โ”‚    โ”‚
โ”‚  โ”‚           โ€ข Axios HTTP Client                      โ”‚    โ”‚
โ”‚  โ”‚           โ€ข JWT Authentication                     โ”‚    โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜    โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                            โ”‚
                            โ–ผ REST API
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                       APPLICATION LAYER                      โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    โ”‚
โ”‚  โ”‚            FastAPI Backend (Python)                 โ”‚    โ”‚
โ”‚  โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”            โ”‚    โ”‚
โ”‚  โ”‚  โ”‚   Auth   โ”‚ โ”‚ Payment  โ”‚ โ”‚  Fraud   โ”‚            โ”‚    โ”‚
โ”‚  โ”‚  โ”‚ Service  โ”‚ โ”‚ Service  โ”‚ โ”‚ Service  โ”‚            โ”‚    โ”‚
โ”‚  โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜            โ”‚    โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜    โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                            โ”‚
                            โ–ผ SQL
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                        DATA LAYER                            โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”         โ”‚
โ”‚  โ”‚  Supabase   โ”‚  โ”‚    Mock     โ”‚  โ”‚   Storage   โ”‚         โ”‚
โ”‚  โ”‚  PostgreSQL โ”‚  โ”‚   Database  โ”‚  โ”‚  (Images)   โ”‚         โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜         โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

๐Ÿ“ Project Structure

aman-ga/
โ”œโ”€โ”€ ๐Ÿ“‚ backend/                    # FastAPI Backend
โ”‚   โ”œโ”€โ”€ main.py                   # ๐Ÿ“„ API endpoints (414 lines)
โ”‚   โ”œโ”€โ”€ auth.py                   # ๐Ÿ” JWT authentication
โ”‚   โ”œโ”€โ”€ database.py               # ๐Ÿ’พ Database client (Supabase/Mock)
โ”‚   โ”œโ”€โ”€ mock_database.py          # ๐ŸŽญ In-memory mock database โญ NEW
โ”‚   โ”œโ”€โ”€ models.py                 # ๐Ÿ“‹ Pydantic schemas
โ”‚   โ”œโ”€โ”€ requirements.txt          # ๐Ÿ“ฆ Python dependencies
โ”‚   โ”œโ”€โ”€ .env.example              # โš™๏ธ Environment template
โ”‚   โ””โ”€โ”€ ๐Ÿ“‚ services/
โ”‚       โ”œโ”€โ”€ payment.py            # ๐Ÿ’ณ Payment processing
โ”‚       โ”œโ”€โ”€ fraud.py              # ๐Ÿ›ก๏ธ Fraud detection
โ”‚       โ””โ”€โ”€ notification.py       # ๐Ÿ”” WhatsApp/Email
โ”‚
โ”œโ”€โ”€ ๐Ÿ“‚ frontend/                   # Next.js Frontend
โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ pages/
โ”‚   โ”‚   โ”œโ”€โ”€ index.js              # ๐Ÿ  Login/Register
โ”‚   โ”‚   โ”œโ”€โ”€ dashboard.js          # ๐Ÿ“Š User dashboard
โ”‚   โ”‚   โ”œโ”€โ”€ admin.js              # ๐Ÿ‘ฎ Admin panel
โ”‚   โ”‚   โ””โ”€โ”€ payment.js            # ๐Ÿ’ณ Payment history
โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ components/
โ”‚   โ”‚   โ”œโ”€โ”€ PaymentUpload.js      # ๐Ÿ“ธ Upload modal
โ”‚   โ”‚   โ”œโ”€โ”€ ServiceCard.js        # ๐Ÿ’Ž Service pricing
โ”‚   โ”‚   โ””โ”€โ”€ AdminDashboard.js     # ๐Ÿ“ˆ Admin view
โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ styles/
โ”‚   โ”‚   โ””โ”€โ”€ globals.css           # ๐ŸŽจ Tailwind CSS
โ”‚   โ”œโ”€โ”€ package.json              # ๐Ÿ“ฆ NPM dependencies
โ”‚   โ””โ”€โ”€ next.config.js            # โš™๏ธ Next.js config
โ”‚
โ”œโ”€โ”€ ๐Ÿ“‚ database/
โ”‚   โ”œโ”€โ”€ schema.sql                # ๐Ÿ—„๏ธ Database schema
โ”‚   โ””โ”€โ”€ seed.sql                  # ๐ŸŒฑ Test data
โ”‚
โ””โ”€โ”€ ๐Ÿ“‚ docs/
    โ”œโ”€โ”€ README.md                 # ๐Ÿ“– This file
    โ”œโ”€โ”€ QUICKSTART.md             # ๐Ÿš€ Setup guide (5 min)
    โ”œโ”€โ”€ API-KEY-SETUP.md          # ๐Ÿ”‘ API key acquisition
    โ”œโ”€โ”€ TEST-REVIEW.md            # โœ… Code review report
    โ””โ”€โ”€ DEPLOYMENT-OPTIONS.md     # โ˜๏ธ Deployment comparison

๐Ÿ”Œ API Endpoints

Authentication

Method Endpoint Description Auth Required
POST /register Register new user โŒ
POST /token Login (get JWT token) โŒ
GET /me Get current user โœ…

Example: Login

curl -X POST "http://localhost:8000/token" \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "username=admin@amanga.id&password=admin123"

Payment

Method Endpoint Description Auth Required
POST /payment/upload Upload payment proof โœ…
GET /payment/my Get payment history โœ…
GET /payment/credits Get service credits โœ…

Example: Upload Payment

curl -X POST "http://localhost:8000/payment/upload" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -F "service_type=CEK_DASAR" \
  -F "amount=1000" \
  -F "payment_method=BANK_TRANSFER" \
  -F "bank_name=BCA" \
  -F "transaction_id=TRX123" \
  -F "transaction_date=2024-01-01T10:00:00" \
  -F "proof_image=@screenshot.png"

Admin (Requires ADMIN or FINANCE role)

Method Endpoint Description Auth Required
GET /admin/payments/pending Get pending payments โœ…
POST /admin/payment/{id}/approve Approve payment โœ…
POST /admin/payment/{id}/reject Reject payment โœ…
POST /admin/payment/{id}/flag Flag as fraud โœ…
GET /admin/stats Dashboard statistics โœ…

Example: Approve Payment

curl -X POST "http://localhost:8000/admin/payment/PAYMENT_ID/approve?notes=Verified" \
  -H "Authorization: Bearer ADMIN_TOKEN"

Service

Method Endpoint Description Auth Required
GET /service/use/{type} Use service credit โœ…

Health Check

Method Endpoint Description Auth Required
GET /health Server status โŒ

๐Ÿ“– Full API Documentation: http://localhost:8000/docs (Swagger UI)


๐Ÿ’ฐ Service Pricing

Service Price Auto-Approve Processing Time Description
๐Ÿฅ‰ Cek Dasar Rp 1.000 โœ… Yes Instant Basic OJK/Kominfo check
๐Ÿฅˆ Cek Deep Rp 15.000 โŒ Manual 5-30 min AI chat analysis
๐Ÿฅ‡ Cek Plus Rp 45.000 โŒ Manual 5-30 min Contract + legal letter

Auto-Approval Rules

Payments are auto-approved when ALL conditions are met:


๐Ÿงช Testing

Test Flow (Mock Mode)

# 1. Start backend (Terminal 1)
cd backend
source venv/bin/activate
uvicorn main:app --reload --port 8000

# 2. Start frontend (Terminal 2)
cd frontend
npm run dev

# 3. Open http://localhost:3000

Test Scenarios

Scenario 1: User Registration & Purchase

  1. Register new account
  2. Login with new credentials
  3. Purchase โ€œCek Dasarโ€ (Rp 1.000)
  4. Upload payment proof (any image)
  5. See instant auto-approval โœ…
  6. Service credit activated in dashboard

Scenario 2: Admin Approval

  1. Login as admin (admin@amanga.id / admin123)
  2. Navigate to Admin Panel
  3. See pending payment (if amount > Rp 1.000)
  4. Click โ€œApproveโ€ or โ€œRejectโ€
  5. Add verification notes
  6. User receives notification

Scenario 3: Fraud Detection

  1. Login as admin
  2. Flag suspicious payment
  3. Select flag type: FAKE_PROOF
  4. Select severity: HIGH
  5. User automatically suspended
  6. Service credits revoked

API Testing

# Health check
curl http://localhost:8000/health

# Register user
curl -X POST "http://localhost:8000/register" \
  -H "Content-Type: application/json" \
  -d '{
    "email": "test@example.com",
    "password": "test123",
    "full_name": "Test User"
  }'

# Login
curl -X POST "http://localhost:8000/token" \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "username=test@example.com&password=test123"

๐Ÿš€ Deployment

Component Service Cost Setup Time
Frontend Vercel Free 5 min
Backend Railway $5/month 10 min
Database Supabase Free (500MB) 5 min
Storage Supabase Storage Free (1GB) 5 min
Total ย  ~$5/month 25 min

Deployment Guides

Alibaba Cloud Option

For Indonesian market with local data residency:

Setup Monthly Cost Complexity
Minimal (Simple Server) ~$6.50 โญโญ Medium
Production (ECS + RDS) ~$50 โญโญโญ Hard

See DEPLOYMENT-OPTIONS.md for full comparison.


๐Ÿ›ก๏ธ Security

Authentication

Data Protection

Fraud Prevention

Production Recommendations


๐Ÿ“Š Database Schema

Entity Relationship Diagram

erDiagram
    USERS ||--o{ PAYMENT_PROOFS : creates
    USERS ||--o{ SERVICE_CREDITS : owns
    USERS ||--o{ FRAUD_FLAGS : flagged_in
    USERS ||--o{ ADMIN_AUDIT_LOG : actions
    
    PAYMENT_PROOFS ||--o| SERVICE_CREDITS : generates
    PAYMENT_PROOFS ||--o{ FRAUD_FLAGS : associated_with
    
    USERS {
        uuid id PK
        string email UK
        string password_hash
        string full_name
        string phone
        string role "USER|ADMIN|FINANCE"
        string status "ACTIVE|SUSPENDED|BANNED"
        timestamp created_at
        timestamp updated_at
    }
    
    PAYMENT_PROOFS {
        uuid id PK
        uuid user_id FK
        string service_type
        integer amount
        string payment_method
        string status
        text proof_image_url
        timestamp created_at
    }
    
    SERVICE_CREDITS {
        uuid id PK
        uuid user_id FK
        string service_type
        integer quantity
        integer used_quantity
        string status
        timestamp expires_at
    }
    
    FRAUD_FLAGS {
        uuid id PK
        uuid user_id FK
        uuid payment_proof_id FK
        string flag_type
        string severity
        string status
        string action_taken
        timestamp reviewed_at
    }
    
    ADMIN_AUDIT_LOG {
        uuid id PK
        uuid admin_id FK
        string action
        string target_type
        uuid target_id
        jsonb details
        timestamp created_at
    }

Tables Overview

Table Purpose Key Fields
users User accounts email, role, status
payment_proofs Payment records amount, status, proof_image_url
service_credits Service usage tracking quantity, used_quantity, expires_at
fraud_flags Fraud detection flag_type, severity, action_taken
admin_audit_log Admin action tracking action, target_type, details

๐Ÿค Contributing

Contributions are welcome! Please follow these steps:

  1. Fork the repository
  2. Create feature branch (git checkout -b feature/amazing-feature)
  3. Commit changes (git commit -m 'Add amazing feature')
  4. Push to branch (git push origin feature/amazing-feature)
  5. Open Pull Request

Development Setup

# Backend
cd backend
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt

# Frontend
cd frontend
npm install
npm run dev

Code Style


๐Ÿ“„ License

MIT License - feel free to use for learning or commercial projects.

See LICENSE for details.


๐Ÿ“ž Support

Documentation

Contact

For questions or support, please open an issue on GitHub.


๐Ÿ™ Acknowledgments

Built with โค๏ธ for Indonesian market safety.

Tech Stack

Inspiration

This project was built to help Indonesians verify online transactions and avoid fraud.


๐Ÿ“ˆ Project Status

Milestone Status Date
POC Development โœ… Complete Mar 2026
Mock Mode โœ… Complete Mar 2026
Documentation โœ… Complete Mar 2026
Frontend UI โœ… Complete Mar 2026
Backend API โœ… Complete Mar 2026
Production Deployment ๐Ÿ”„ Ready -

Last Updated: March 15, 2026


### ๐Ÿ›ก๏ธ Aman ga? - Tanya dulu, transfer kemudian. [โญ Star this repo](https://github.com/Therealratoshen/aman-ga/stargazers) โ€ข [๐Ÿด Fork it](https://github.com/Therealratoshen/aman-ga/fork) โ€ข [๐Ÿ“‹ Issues](https://github.com/Therealratoshen/aman-ga/issues) **Made with โค๏ธ in Indonesia**