joshiaj7 / vessel-management

Vessel Management Service

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

vessel-management

Summary

Vessel Management service is a service to serve information about vessel related stuffs

Architecture Diagram

architecture_diagram

Database Diagram

db_diagram

Usage

Business logic for Vessels

API Documentation

Below is a list of stable APIs

No Method Endpoint Description Parameters
1 POST /v1/vessels Create new vessel name (string), owner_id (int), naccs_code (string)
2 GET /v1/vessels Get a list of vessels name (string), owner_id (int), offset (int), limit (int)
3 GET /v1/vessels/{id} Get a single vessel id (int)
4 PUT /v1/vessels/{id} Update a vessel id (int), name (string), owner_id (int), naccs_code (string)

Voyage APIs is still in progress ;)

Installation

Prerequisites

  • Go 1.19
  • Docker
  • Docker Compose

Setup

  1. Clone this repository
git clone git@github.com:joshiaj7/vessel-management.git
  1. Copy env variable
cp env.sample .env 
  1. Build dependencies
  • Golang dependecy
go mod tidy
go mod vendor
  • Unlisted Go Dependencies

  • Service dependencies

docker-compose up --build
  1. Check everything is OK
make test

Run the service

You can run it using docker-compose

docker-compose up

Migrating database You can use helper.sh to help migrating DB

source helper.sh
migrate-up

Try make a request using your favourite method (Postman, curl, etc.)

About

Vessel Management Service

License:MIT License


Languages

Language:Go 96.9%Language:Makefile 2.1%Language:Shell 0.6%Language:Dockerfile 0.3%