Skip to content

A logistics system that consists of multiple microservices and a React frontend

License

Notifications You must be signed in to change notification settings

yigiterinc/ase-delivery

Repository files navigation

ase-delivery

ASE Delivery is a logistics system. ASE Delivery software manages the lifecycle of a delivery package from the point it is picked up by the deliverer from the central depot to when the customer opens the box to retrieve their items.

For a more detailed explanation of the project please refer to the project description document in repository.

Example diagram

Lifecycle of a Delivery

Lifecycle Diagram

Components

Container Diagram of system

  • Frontend Dashboard UI (React)
    • User role is determined after login
    • Dispatcher actions: Create Dispatcher/Deliverer/Customer, create delivery
    • Deliverer actions: Update delivery statuses to collected
    • Customer actions: View your current/past deliveries and their statuses
  • ASE Delivery Hardware (Python/RBP)
    • Reads the RFID cards
    • Communicates with backend to check if the owner of RFID token has permission to open the box
    • Lights a green LED if deliverer/customer is authorized to open the lock. Otherwise lights red.
    • Uses photoresistor light sensor to detect if box is open
    • Blinks red LED if the box is not closed properly within 10 seconds
  • API Gateway (Spring Boot/Spring API Gateway)
    • Communicates with the service registry to learn about services
    • Checks the JWTs for permission to access endpoints
    • Forwards the authorized requests to services
  • Service Registry (Spring Boot/Spring Cloud Eureka)
    • Manages and keeps track of which services/machines are up and available
  • Delivery Service (Spring Boot)
    • Creates and stores deliveries and boxes in MongoDB.
    • Responsible for managing the whole lifecycle of a delivery.
  • Customer Authentication Service (Spring Boot)
    • Stores the users and their roles in MongoDB
    • Creates the JWTs for the users for authorization

Technology Overview

  • JS, React, MaterialUI
  • Java, Spring Boot
  • Spring Cloud: Spring API Gateway, Spring Cloud Eureka
  • MongoDB
  • Docker, docker-compose (see the docker-compose in ase-delivery-deployment repo)
  • AWS (project was originally deployed to AWS by our GitLab CI process)
  • GitLab CI/CD (.gitlab-ci.yml file and our CI process can be found in ase-delivery-deployment repo)

Contributors

  • Yigit Kemal Erinc (@yigiterinc) - Backend and the frontend
  • Nils Morbitzer (@morbi25, @ge23tam) - Hardware (raspberry pi), deployment (CI/CD pipeline, AWS, docker-compose), and parts of the delivery-service

Releases

No releases published

Packages

No packages published