Skip to content

reggi49/PPOB

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

3 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

PPOB App ๐Ÿš€

License: MIT Build Status Open Issues Stars Forks

PPOB App is a robust, full-stack digital payment platform (Payment Point Online Bank) designed for seamless management of credits (pulsa), data packages, and financial transactions. Built with a focus on high performance, security, and modern user experience.


๐Ÿ—๏ธ System Architecture

flowchart TD
    %% Nodes
    Client([๐Ÿ“ฑ Web Client\nNext.js 16])
    API[๐Ÿ“ก REST API\nGo Chi Router]
    
    subgraph Backend [Backend Logic - Go Clean Architecture]
        Middleware{๐Ÿ”’ Auth Middleware\nJWT Validation}
        Handlers[๐ŸŽฎ HTTP Handlers\nController Layer]
        Services[โš™๏ธ Services\nBusiness Logic Layer]
        Repos[๐Ÿ—„๏ธ Repositories\nData Access Layer]
    end

    DB[(๐Ÿ›ข๏ธ PostgreSQL\nData Persistence)]

    %% Flow
    Client -- Request + JWT --> API
    API --> Middleware
    Middleware -- Validated --> Handlers
    Handlers --> Services
    Services -- Transactional Unit --> Repos
    Repos <--> DB

    %% Details
    Services -- Balance Lock & Deduct --> DB
    Services -- Record Transaction --> DB

    %% Styling
    classDef client fill:#f9f,stroke:#333,stroke-width:2px;
    classDef api fill:#bbf,stroke:#333,stroke-width:2px;
    classDef logic fill:#dfd,stroke:#333,stroke-width:1px;
    classDef storage fill:#fdd,stroke:#333,stroke-width:2px;

    class Client client;
    class API api;
    class Middleware,Handlers,Services,Repos logic;
    class DB storage;
Loading

โœจ Key Features

  • ๐Ÿ” Secure Authentication: JWT-based authentication system with secure password hashing (bcrypt).
  • ๐Ÿ’ฐ Digital Wallet: Real-time balance management and transaction tracking.
  • ๐Ÿ“ฑ Product Catalog: Integrated system for managing various digital products like airtime (pulsa) and data plans.
  • ๐Ÿ“Š Transaction History: Detailed logs for all financial activities and purchase records.
  • ๐ŸŽจ Modern UI/UX: Clean, responsive interface built with Next.js 16 and Tailwind CSS 4.
  • ๐Ÿ—๏ธ Clean Architecture: Decoupled backend logic following industry-standard Go patterns.

๐Ÿ—๏ธ Architecture & How It Works

The project follows a decoupled Client-Server Architecture:

Backend (Go)

The backend is structured using Clean Architecture principles:

  • Domain: Pure business logic and entity definitions (User, Wallet, Transaction).
  • Service: Orchestrates business rules and use cases.
  • Repository: Handles data persistence using PostgreSQL with the pgx driver.
  • Handler: RESTful API endpoints managed by the chi router.

Frontend (Next.js)

The frontend utilizes the Next.js App Router for optimized routing and server-side rendering:

  • Client Components: Interactive UI using shadcn/ui and lucide-react.
  • API Integration: Centralized service layer for communicating with the Go backend.
  • Validation: Strict schema validation using Zod and react-hook-form.

๐Ÿ› ๏ธ Tech Stack

Backend

  • Language: Go 1.23
  • Router: chi v5
  • Database: PostgreSQL (Driver: pgx v5)
  • Auth: JWT (JSON Web Tokens)
  • Environment: godotenv

Frontend

  • Framework: Next.js 16 (React 19)
  • Styling: Tailwind CSS 4.0
  • UI Components: shadcn/ui
  • Icons: Lucide React
  • Form/Validation: React Hook Form & Zod

๐Ÿš€ Installation & Setup

Prerequisites

1. Clone the Repository

git clone https://github.com/your-username/ppob-app.git
cd ppob-app

2. Backend Setup

cd backend
cp .env.example .env # Configure your database credentials
go mod download
go run cmd/api/main.go

3. Frontend Setup

cd frontend
npm install
npm run dev

๐Ÿ“– Usage Examples

Authentication (API)

To register a new user via curl:

curl -X POST http://localhost:8080/api/v1/auth/register \
     -H "Content-Type: application/json" \
     -d '{"email": "[email protected]", "password": "securepassword123", "name": "John Doe"}'

Buying Credits (Frontend)

Navigate to /purchase in the dashboard, select your provider, and enter your phone number to initiate a transaction.


๐Ÿ—บ๏ธ Roadmap & Future Plans

  • Admin Dashboard: Comprehensive management interface for products and users.
  • Payment Gateway Integration: Midtrans or Stripe integration for automated topups.
  • Push Notifications: Real-time transaction alerts via Firebase.
  • Mobile App: Cross-platform mobile version using Flutter or React Native.
  • Microservices Transition: Splitting auth and payment into dedicated services.

๐Ÿค Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

โš–๏ธ License

Distributed under the MIT License. See LICENSE for more information.


Made with โค๏ธ by the PPOB App Team

About

A scalable and secure enterprise PPOB gateway engine built with modular architecture for seamless multi-biller integration, automated micro-transactions, and high-performance financial workflows.

Topics

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors