Welcome to the Marine Vessel Keeper application! This document provides guidance on how to use the various features and functionalities offered by the application.
- Introduction
- Technologies used
- Getting Started
- User Management
- Vessel Management
- Voyage Management
- Seaman Management
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.
- 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
To begin using the Marine Vessel Keeper application, follow these steps:
- Install Docker (If necessary).
- Clone the repository from [https://github.com/wtypmah24/Vessel_keeper].
- Add an application-secrets.properties file with the following keys and their respective values:
- "secret_key" for the Vessel API, "vessel_finder_api_key" for the Vessel Finder API,
- and "google_api" for the Google Static Map API.
- Navigate to the project directory.
- Run docker-compose up command.
- To check all end points visit [/swagger-ui.html]
If you want to run it on a server:
- Clone the repository from [https://github.com/wtypmah24/Vessel_keeper].
- Add an application-secrets.properties file with the following keys and their respective values:
- "secret_key" for the Vessel API, "vessel_finder_api_key" for the Vessel Finder API, and "google_api"
- for the Google Static Map API.
- Run the bash script which will download necessary programs such as Git, Java, Maven, Docker,
- Docker Compose onto the server.
- Navigate to the project directory.
- Run docker-compose up command.
- To check all end points visit [/swagger-ui.html]
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.
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.
The Voyage Management module facilitates the management of voyage details such as ports of loading and discharging, start and end dates, and vessel assignments.
- VoyageService: Manages voyage creation, deletion, and retrieval.
- VoyageRepository: Provides data access methods for voyage entities.
- VoyageMapper: Handles mapping between voyage DTOs and entities.