8000 GitHub - wtypmah24/Vessel_keeper
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

wtypmah24/Vessel_keeper

Repository files navigation

Vessel Keeper Application

Welcome to the Marine Vessel Keeper application! This document provides guidance on how to use the various features and functionalities offered by the application.

Table of Contents

  1. Introduction
  2. Technologies used
  3. Getting Started
  4. User Management
  5. Vessel Management
  6. Voyage Management
  7. Seaman Management

Introduction

The Marine Vessel Keeper application is designed to manage information about vessels, voyages, seamen, and users. It provides features for creating, updating, and deleting records related to these entities.

Technologies used

  • Language - Java 17
  • Framework - Spring Boot 3
  • Database - PostgreSQL
  • Working with DB - Hibernate, JPA, Spring Data
  • Data migration - Liquibase
  • Security - Spring Security
  • Authentication - Basic auth.
  • Password Encoder - BCryptPasswordEncoder
  • Scheduling - Cron
  • Code documentation - JavaDoc, Swagger
  • Mapping - MapStruct
  • Exception handling - Controller advice
  • Testing - Junit, Mockito, Data JPA test, WebMVC test
  • Build System - Maven
  • Containerization - Docker/DockerHub, Docker compose
  • Third party API connection - Feign
  • Deploy - AWS Elastic Server
  • Version control - Git/GitHub

Getting Started

To begin using the Marine Vessel Keeper application, follow these steps:

  1. Install Docker (If necessary).
  2. Clone the repository from [https://github.com/wtypmah24/Vessel_keeper].
  3. Add an application-secrets.properties file with the following keys and their respective values:
  4. "secret_key" for the Vessel API, "vessel_finder_api_key" for the Vessel Finder API,
  5. and "google_api" for the Google Static Map API.
  6. Navigate to the project directory.
  7. Run docker-compose up command.
  8. To check all end points visit [/swagger-ui.html]

If you want to run it on a server:

  1. Clone the repository from [https://github.com/wtypmah24/Vessel_keeper].
  2. Add an application-secrets.properties file with the following keys and their respective values:
  3. "secret_key" for the Vessel API, "vessel_finder_api_key" for the Vessel Finder API, and "google_api"
  4. for the Google Static Map API.
  5. Run the bash script which will download necessary programs such as Git, Java, Maven, Docker,
  6. Docker Compose onto the server.
  7. Navigate to the project directory.
  8. Run docker-compose up command.
  9. To check all end points visit [/swagger-ui.html]

User Management

The User Management module allows administrators to manage user accounts within the system. Users can have different roles such as OWNER, OPERATIONAL_MANAGER, CREW_MANAGER.

  • UserService: Responsible for user registration, creation, deletion, and retrieval.
  • UserRepository: Data access layer for managing user entities.
  • UserMapper: Handles mapping between user DTOs and entities.

Vessel Management

The Vessel Management module enables users to manage vessel-related information, including vessel types and crew members.

  • VesselService: Manages vessel creation, deletion, and retrieval.
  • VesselRepository: Provides data access methods for vessel entities.
  • VesselMapper: Handles mapping between vessel DTOs and entities.
  • PositionService: Manages functionality to generate a static Google Maps URL with markers
  • for the positions of vessels.
  • VesselFinderService: Provides functionality to retrieve real-time vessel information from a remote service.

Voyage Management

The Voyage Management module facilitates the management of voyage details such as ports of loading and discharging, start and end dates, and vessel assignments.

< 5CBE div class="markdown-heading" dir="auto">

Seaman Management

The Seaman Management module allows users to manage seaman-related information, including certificates and service records.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

0