Skip to content

TheBigBadWolfClub/cars-booking

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

eBookings POC

Project lear and test SpringBoot && Angular.

  • Rest CRUD
  • H2 in memory database
  • RabbitMQ with Exchange's and Queue's
  • FrontEnd in angular

Instalation

1. checkout repository
2. build java modules (see commands list)
3. run docker-compose to build and start containers (see commands list)

Commands list

1.Build java modules

# make provided script executeble
chmod +x ./build.sh

#run provided script
./build.sh

  1. Docker compose
# build all containers managed by compose
docker-compose  -f docker-compose.yml build 

# start all containers managed by compose
docker-compose  -f docker-compose.yml up

# stop all containers managed by compose
docker-compose  -f docker-compose.yml down

Playground

other ports and services

Design

  1. Backend, with Spring Boot

    • two micro-server's
      1. CORE -
        • Rest api for CRUD (server side pagination, sort, filter),
        • H2DB
        • consumers of RabbitMQ
        • create and populate H2 on init
        • configure Rabbit exchanges and queue's on init
      2. PRODUCER -
        • Rest api to receive request's
        • RabbitMQ producer to publish to Rabbit Exchange
  2. RabbitMQ Configuration

    • MainExchange (producer will publish to this exchange)
      1. BookingExchange
      2. Audit Queue
    • BookingExchange will forward to delete, edit and create queue's, based on routing keys
  3. Frontend, in Angular

    • Home page (user can select with protocol to use for delete/edit/create)
    • Table for listing
      • Paging
      • Sorting
      • Filter
      • store/state management (akita)
    • Page for editing (accessible from table), with actions:
      • update
      • delete
      • clone
    • Page for creating (accessible form navbar).
    • Akita as store/state management