ShipLog is a small backend application that collects data from marine vessels and displays them for users. The project consists of two distinct parts:
- Fake Data Generation Algorithm(
route
package): As real data from vessels is not currently collected, this algorithm generates fake data for vessels in the database. - CRUD API(rest of the packages): The CRUD API provides two controllers for managing vessels and logs. A log entity contains ship data at a specific timestamp.
Java 20
Spring 3.1.0
Maven
Docker
Start the database and kafka by running the following commands in the project directory:
docker-compose up -d
Start the Spring application from your IDE. Please note that this setup is for development purposes only, as there is no live environment available.
You can optionally edit the application.properties file, although it is not necessary for the current state of the application.
The project follows a standard Java Spring structure. You can explore the code to understand its organization and purpose.
In the future, Swagger documentation will be added to provide a comprehensive view of the REST endpoints and their usage.
The project includes standard Maven tests for ensuring its functionality. You can run these tests using the appropriate Maven commands.
Currently, the project is intended for local development purposes only. You can deploy it locally from your IDE.
No specific troubleshooting information is available at this time.
There are currently no guidelines for contributing to the project. Feel free to explore and make modifications as needed.
This project is currently not licensed.
Feel free to modify the generated README file as needed to align with your project's specific requirements and preferences.
- Add SOS functionality. One ship can send an SOS signal, and all ships within some distance will get this signal with gps location of troubled vessel.
- Add Swagger documentation
- Divide the project into microservices.
route
package should be a separate service. - Add a frontend application to display the data.
- Add authentication and authorization.