Giter Club home page Giter Club logo

logistics-service's Introduction

Logistics test project by Pavel Lezin

Design and implement a REST API using Hibernate/Spring/SpringMVC (or Spring-Boot) without frontend.

The task is:

1. Build a web service for the logistics department. Information about drivers and vehicles should be kept. More than three vehicles cannot be assigned to one driver. Vehicles can be of various types: cars, trucks, buses. Drivers can drive vehicles of categories B, C, D; driver's licenses have a validity period.

  • Support CRUD operations for drivers and vehicles.
  • It is necessary to develop methods of attaching a car to a driver and detaching from him, a method for displaying a list of drivers and cars assigned to them.
  • When assigning a car to a driver, check the open categories, the expiration date of the driver's license and the number of cars assigned to the driver.

Write documentation for a web service using Swagger. Write a database migration script (SQL script or special tools like Liquibase or Flyway). Cover the code with unit tests using Spring context, Mockito, in-memory database.

Deploy the application to a publicly available VPS, if available, or prepare everything necessary for this. Deploy description in readme.md. In the case of deploying an application in a container environment, make a Dockerfile, include in the readme.md build and run scripts. It is desirable, but not required: the Docker-compose file for deploying everything is needed for the application to work with one command. Instead of Docker and compose, K8S and yaml manifest are welcome.

2. Write documentation for a web service using Swagger. Write a database migration script (SQL script or special tools like Liquibase or Flyway). Cover the code with unit tests using Spring context, Mockito, in-memory database.

3. Deploy the application to a publicly available VPS, if available, or prepare everything necessary for this. Deploy description in readme.md. In the case of deploying an application in a container environment, make a Dockerfile, include in the readme.md build and run scripts. It is desirable, but not required: the Docker-compose file for deploying everything is needed for the application to work with one command. Instead of Docker and compose, K8S and yaml manifest are welcome.

4. Let's say that our company has become a transnational organization, and half of the world's population works in it. The logistics department has grown to a billion people working all over the planet, and our application is constantly in use and cannot handle the high workload. Provide an architectural solution to handle any workload. You can use both vertical and horizontal scaling. Describe the solution in the form of diagrams, text and a stack of applied technologies.

As a result, provide a link to github repository.

It should contain the code and README.md with API documentation and curl commands for based use-cases to test it.


P.S.: Make sure everything works with latest version that is on github :)


View model:

logistics-service's People

Contributors

pavellezin avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.