This is a basic MVP version of a bank account system implemented in Go using the hexagonal architecture. It includes features such as JWT authentication, account management, transaction processing, and user management.
- Getting Started
- Usage
- Docker Deployment
- Testing
- API Documentation
- Technologies and Tools
- Contributing
- License
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.
- Go (version 1.15 or later)
- Make
- Clone the repository
git clone https://github.com/goodnessuc/paywalletengine.git
- Change directory to the project folder
cd paywalletengine
- Install dependencies
make install
- Build the application
make build
- Run the application
./cmd/server/main.go
To start the server, run the following command:
./cmd/server/main.go
The server will start and listen on the default port 8080.
This application can be run using Docker Compose, which sets up the required services including a database and the application itself.
-
Ensure that Docker and Docker Compose are installed on your machine.
-
Navigate to the project directory:
cd paywalletengine
- Build and run the application and its services using Docker Compose:
docker-compose up --build
This will start up the db
service using the PostgreSQL image and the api
service which is your application. The
application will connect to the database, and both will be accessible from your machine.
To stop the services, simply run:
docker-compose down
This will gracefully shut down the containers and remove them.
To run the tests, run the following command:
make test
- Go - The programming language used
- GORM - Database ORM tool
- The Gorilla Mux Router - Go based HTTP routing tool
- JWT - JSON Web Tokens for authentication
- Make - Build automation tool
Contributions are welcome! Feel free to open a pull request right away.
This project is licensed under the MIT License - see the LICENSE.md file for details