Skip to content

Solution Folder Structure

Jaafar Alkaales edited this page Aug 5, 2024 · 3 revisions

Overview

Folders correspond to a component or service in the solution architecture. Look there for an in-depth description of the functionality of a component.

In all the descriptions on this wiki, I assume that you are working from Visual Studio Code.

Root Folder Structure:

.
├── Bar 
├── Warehouse
├── Drop_Point
├── User
├── frontend
├── Eureka-Server
├── config-server
├── docker-compose.yml
└── README.md

Bar

Bar
├── src
│   ├── config
│   │   ├── eurekaClient.js         # initialize eureka client
│   │   └── serviceHelper.js        # fetch warehouse's service instance and use it with config
│   ├── Controllers
│   │   ├── barController.js        # controller functions for bar
│   │   └── orderController.js      # controller functions for order
│   ├── Middleware                  # error handlers
│   │   ├── errorHandler.js       
│   │   └── validateObjectId.js
│   ├── Models
│   │   ├── barModel.js             # bar schema model
│   │   └── orderModel.js           # order schema model
│   ├── Routes
│   │   ├── barRoutes.js
│   │   └── orderRoutes.js
│   ├── Services
│   │   ├── DeleteDrink.js
│   │   ├── dropBottle.js          # helper function: communicate with drop point service to collect empties
│   │   └── replenishStock.js      # helper functions for bar replenishment
├── .dockerignore
├── .env
├── .gitignore
├── app.js                         # application entry point
├── Dockerfile
├── package-lock.json
└── package.json

Warehouse

Warehouse
├── src
│   ├── config
│   │   ├── eurekaClient.js        # initialize eureka client
│   │   └── serviceHelper.js       # fetch bar's service instance and use it with config
│   ├── Controllers
│   │   ├── beverageController.js       # controller functions for beverage CRUD ops
│   │   └── warehouseController.js      # controller functions for Warehouse
│   ├── Middleware                      # error handlers
│   │   ├── errorHandler.js
│   │   └── validateObjectId.js
│   ├── Models
│   │   ├── beverageModel.js            # beverage schema model
│   │   └── warehouseModel.js           # warehouse schema model
│   ├── Routes
│   │   ├── beverageRoutes.js
│   │   └── warehouseRoutes.js
│   ├── Services
│   │   └── logService.js               # helper function to update the log of warehouse                              
├── .dockerignore
├── .env
├── .gitignore
├── app.js                             # application entry point
├── Dockerfile
├── docker-compose.yml
├── package-lock.json
├── package.json
└── README.md

Drop Point

Drop_Point
├── .mvn/
├── .vscode/
├── src/
│   └── main/
│       └── java/
│           └── com/
│               └── bottleDrop/
│                   └── dp/
│                       ├── DropBottleRequest.java         DTO Class for empty bottles
│                       ├── DropPoint.java                 DropPoint Class
│                       ├── DropPointRepository.java       Repository interface extends JPA
│                       ├── DropPointService.java          Business Logic
│                       ├── ManagementController.java      RESTConroller
│                       └── DropPointApplication.java      Application entry point
├── resources/
│   ├── static/
│   ├── templates/
│   ├── application.properties
│   └── maven.properties
├── test/
├── target/
├── .gitignore
├── HELP.md
├── mvnw
├── mvnw.cmd
└── pom.xml                                   

User

User
To Be Added soon...

Eureka-Server

Eureka-Server                   
├── .mvn                         
├── src                          
│   ├── main                     
│   │   ├── java                 # Java source directory
│   │   │   └── com
│   │   │       └── example
│   │   │           └── server
│   │   │               └── ServerApplication.java  # Main application Java file
│   │   └── resources            # Resources directory for configuration files
│   │       └── application.properties        # Main application properties file
│   └── test                     
├── target                       
├── .gitignore                   
├── mvnw                         
├── mvnw.cmd                     
└── pom.xml                      # Maven project file (includes dependencies for eureka)

Config-Server

config-server                   
├── .mvn                        
├── src                          
│   ├── main                     
│   │   ├── java                 # Java source directory
│   │   │   └── com
│   │   │       └── example
│   │   │           └── server
│   │   │               └── ServerApplication.java  # Main application Java file
│   │   └── resources            # Resources directory for configuration files
│   │       ├── config
│   │       │   ├─ Bar_Service.properties          # configuration file stores **warehouse** api endpoints
│   │       │   ├─ Warehouse_Service.properties    # configuration file stores **bar** api endpoints
│   │       │   ├─ microservice1.properties        # dummy config file
│   │       │   └─ microservice2.properties        # // 
│   │       └── application.properties             # Main application properties file
│   └── test                     
├── target                       
├── .gitignore                   
├── mvnw                         
├── mvnw.cmd                    
└── pom.xml                      # Maven project file (includes dependencies for Spring Cloud Config)

Clone this wiki locally