Giter Site home page Giter Site logo

carserviceapi's Introduction

Car Service API

Example Laravel/Lumen API to manage maintainance services for vehicles.

Key concepts /ADR

  • Onion/Hexagonal architecture: a DDD implementation to keep our business logic apart from our infrastructure.
  • Low-dependency approach: to avoid the vendor lock-in antipattern and enhance the migration/upgrade experience.

UML diagram

Installing

composer install
cp .env.example .env

Running

docker-compose up
docker-compose exec app php artisan migrate
docker-compose exec app php artisan db:seed
  • Navigate to your host, i.e. http://localhost/api/v1/owners/
  • Or use the postman collection named CarService.postman_collection, available in the root dir of this project. After importing it, plase verify and update the URL/IP defined in the base_url variable, if necessary.

Getting into the containers

docker-compose exec app bash
docker-compose exec db bash

Pending

  • i18n: replace localized terms by keys (car colours, car services) and add an agnostic translator layer.
  • Discuss about the cars/{id}/services endpoints: although the URL structure is coherent, an alternative may be to flattern it to /services so that it could be more independent of car entities.
  • All Entity fields should be value objects (remaining strings/integers): this enables domain-based validation.
  • Unit & Feature Testing

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.