Skip to content

Microservices assignment for Solution Architecture course @Avans (Period 3.4)

Notifications You must be signed in to change notification settings

SvenWesterlaken/saibot-airport-microservices

Repository files navigation

Saibot International Airport

Usage

Setup

The whole application architecture can be started by using docker compose with the following command:

docker-compose up

Applications

Once everything is started the following microservices should be available:

Airport Microservices

Microservice Url Endpoint documentation
Flight Management http://localhost:5001/ http://localhost:5001/api/1/docs
Airplane Management http://localhost:5002/ http://localhost:5002/api/1/docs
Airside Management http://localhost:5003/ Postman scripts
Gate Management http://localhost:5004/ http://localhost:5004/api/1/docs
Check-in Counter Management http://localhost:5005/ http://localhost:5005/api/1/docs
Employee Management http://localhost:5007/ Postman scripts
Security Management http://localhost:5008/ http://localhost:5008/api/1/docs

Management/Development Microservices

Microservice Url
PHPMyAdmin http://localhost:8080/
Container Visualizer http://localhost:9000/
RabbitMQ http://localhost:15672/

Assigment Information

Motivation for chosen concepts can be found here!

Functional requirements:

  • An airline is able to register itself at an airport.
  • An airline can park their planes at a gate.
  • An airline can arrive and depart with their planes at scheduled runways.
  • An airline can request time slots for flights.
  • An airline can register airplanes.
  • The airport can schedule flights requested by airlines.
  • The airport can assign a gate and check-in counters for each flight.
  • Passengers are informed of gate and check-in counter changes for their flight.
  • Passengers are able to check themselves in at the check-in counter.
  • Visitors are able to check in their baggage at the check-in counter.
  • All airport customers are billed through the airport financial department.
  • All payments have to be successfully authorised before finalizing an action or request.
  • Visitors are able to park at the airport.
  • All internal transactions in the airport are also billed through the airport financial department.
  • Security is able to have insight in all airport events.
  • External baggage companies are notified of changes in baggage status.
  • External baggage companies are able to notify airport of changes in baggage status.
  • Passengers are able to claim their baggage
  • Plane is not able to leave the gate until authorized by ground personnel and control tower.
  • A plane cannot land or take-off on runway without authorization of the control tower.
  • Airside department notifies ground personnel when and where planes need to be refueled.
  • Retail is able to rent a spot at the tax-free zones.

Requirements for assignment:

    • Context map.
    • Non-functional requirements.
    • Functional requirements added to the given requirements, based on assumptions.
    • Implementation of all functional and non-functional requirements as described for your case.
    • Postman or Swagger scripts that trigger the various RESTful Web API’s to allow showing that functionality works. So, there’s no need to create a GUI in order to save you work.
    • Docker image of your application.
    • Motivation of each of the following concepts as applied to your case in a document. Use of these concepts is mandatory. Describe where it is applied and why it is applied:
    • Microservices based on the principles of DDD
    • Eventual consistency
    • Event driven architecture based on messaging
    • Command Query Responsibility Segregation (CQRS)
    • Event Sourcing
    • Enterprise Integration Patterns (at least one)

Context Map:

Context Map

Enterprise Architecture Diagrams:

Financial Department

Finincial Department

Flight Scheduling

Flight Scheduling

About

Microservices assignment for Solution Architecture course @Avans (Period 3.4)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published