Categorygithub.com/benebobaa/amikom-bri-api
repositorypackage
0.0.0-20240305035314-86aa604b0c39
Repository: https://github.com/benebobaa/amikom-bri-api.git
Documentation: pkg.go.dev

# Packages

No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author

# README

Welcome Simple Bank API GO Clean Architecture

Version Build License: MIT

  • This project is a user-friendly solution for basic banking tasks, built using the Go programming language and adhering to the Clean Architecture principles. It encompasses essential features such as account creation, listing, balance checking, account transfers, and transaction history tracking. Additionally, it incorporates advanced functionalities like user registration, email verification, authentication with JWT (JSON Web Token) using access and refresh tokens, password recovery with email-based reset links, email notifications for transfers, and the ability to create and export transaction and expense history to PDF.
  • Tech Stack Used: Go, PostgreSQL, Onesignal ,GORM, JWT, Validator, Viper and Fiber.
  • Infrastructure: Docker, AWS EC2, AWS Sec Manager, AWS RDS, Github Actions, and Cloudflare.

Architecture

Clean Architecture

ERD Diagram Database

Source : diagram.io erd

ERD Diagram

Requirements/dependencies

  • Docker

Getting Started Run Locally

  • Pull Postgres Images and Run Container with Docker
make postgres
  • Run Database Migrations
make migrateup
  • Run Go Server API
go run main.go

API Request

Currently Published Example Endpoints

Base URL: https://go.amikompedia.xyz

Note: I kindly request you to use or try this API using a valid email, as the push send email feature can function properly.

  • Or you can use this user, only these account has provided sample data
EmailPasswordPIN
[email protected]apaiya123123456
[email protected]apaiya123123456

Auth

EndpointHTTP MethodDescription
/api/v1/auth/_registerPOSTRegister user
/api/v1/auth/_loginPOSTLogin user
/api/v1/auth/_forgot-passwordPOSTForgot password user

Users

EndpointHTTP MethodDescription
/api/v1/users/profileGETGet detail profile user
/api/v1/usersGETList user account
/api/v1/users/:usernameDELETEDelete user account

Transaction

EndpointHTTP MethodDescription
/api/v1/transferPOSTCreate transfer to another account
/api/v1/entries/filterGETGet transaction history and exported to pdf
/api/v1/expenses-planPOSTCreate expenses plan

For more detail api documentation please import apispec.json in this repo to your Postman