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.
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;
- ๐ 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.
The project follows a decoupled Client-Server Architecture:
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
pgxdriver. - Handler: RESTful API endpoints managed by the
chirouter.
The frontend utilizes the Next.js App Router for optimized routing and server-side rendering:
- Client Components: Interactive UI using
shadcn/uiandlucide-react. - API Integration: Centralized service layer for communicating with the Go backend.
- Validation: Strict schema validation using
Zodandreact-hook-form.
- Language: Go 1.23
- Router: chi v5
- Database: PostgreSQL (Driver: pgx v5)
- Auth: JWT (JSON Web Tokens)
- Environment: godotenv
- Framework: Next.js 16 (React 19)
- Styling: Tailwind CSS 4.0
- UI Components: shadcn/ui
- Icons: Lucide React
- Form/Validation: React Hook Form & Zod
git clone https://github.com/your-username/ppob-app.git
cd ppob-appcd backend
cp .env.example .env # Configure your database credentials
go mod download
go run cmd/api/main.gocd frontend
npm install
npm run devTo 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"}'Navigate to /purchase in the dashboard, select your provider, and enter your phone number to initiate a transaction.
- 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.
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Distributed under the MIT License. See LICENSE for more information.
Made with โค๏ธ by the PPOB App Team