Skip to content

Commit 798e8dc

Browse files
author
Mohaned Atef
committed
fixed naming and readme file
1 parent be82b9c commit 798e8dc

File tree

11 files changed

+103
-89
lines changed

11 files changed

+103
-89
lines changed

monolithic-architecture/README.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,17 @@
1+
---
2+
title: "Monolithic Ecommerce App: A Cohesive Application Model"
3+
shortTitle: Monolithic Ecommerce
4+
description: "Explore the Monolithic Ecommerce application structure, its design intent, benefits, limitations, and real-world applications. Understand its simplicity and practical use cases."
5+
category: Architectural
6+
language: en
7+
tag:
8+
- Cohesion
9+
- Simplicity
10+
- Scalability
11+
- Deployment
12+
- Maintainability
13+
---
14+
115
## Monolithic-Ecommerce App
216
* A Monolithic Ecommerce example to showcase Monolithic Architecture
317

monolithic-architecture/src/main/java/com/iluwatar/monolithic/EcommerceApp.java

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,10 @@
2424
*/
2525
package com.iluwatar.monolithic;
2626

27-
import com.iluwatar.monolithic.controller.OrderCon;
28-
import com.iluwatar.monolithic.controller.ProductCon;
29-
import com.iluwatar.monolithic.controller.UserCon;
30-
import com.iluwatar.monolithic.model.Products;
27+
import com.iluwatar.monolithic.controller.OrderController;
28+
import com.iluwatar.monolithic.controller.ProductController;
29+
import com.iluwatar.monolithic.controller.UserController;
30+
import com.iluwatar.monolithic.model.Product;
3131
import com.iluwatar.monolithic.model.User;
3232
import java.nio.charset.StandardCharsets;
3333
import java.util.Scanner;
@@ -53,13 +53,13 @@
5353
public class EcommerceApp implements CommandLineRunner {
5454

5555
private static final Logger log = LogManager.getLogger(EcommerceApp.class);
56-
private final UserCon userService;
57-
private final ProductCon productService;
58-
private final OrderCon orderService;
56+
private final UserController userService;
57+
private final ProductController productService;
58+
private final OrderController orderService;
5959
/**
6060
* Initilizing controllers as services.
6161
* */
62-
public EcommerceApp(UserCon userService, ProductCon productService, OrderCon orderService) {
62+
public EcommerceApp(UserController userService, ProductController productService, OrderController orderService) {
6363
this.userService = userService;
6464
this.productService = productService;
6565
this.orderService = orderService;
@@ -129,7 +129,7 @@ protected void addProduct(Scanner scanner) {
129129
double price = scanner.nextDouble();
130130
log.info("Stock: ");
131131
int stock = scanner.nextInt();
132-
Products product = new Products(null, name, description, price, stock);
132+
Product product = new Product(null, name, description, price, stock);
133133
scanner.nextLine();
134134
productService.addProduct(product);
135135
log.info("Product added successfully!");

monolithic-architecture/src/main/java/com/iluwatar/monolithic/controller/OrderCon.java renamed to monolithic-architecture/src/main/java/com/iluwatar/monolithic/controller/OrderController.java

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -26,36 +26,36 @@
2626
import com.iluwatar.monolithic.exceptions.InsufficientStockException;
2727
import com.iluwatar.monolithic.exceptions.NonExistentProductException;
2828
import com.iluwatar.monolithic.exceptions.NonExistentUserException;
29-
import com.iluwatar.monolithic.model.Orders;
30-
import com.iluwatar.monolithic.model.Products;
29+
import com.iluwatar.monolithic.model.Order;
30+
import com.iluwatar.monolithic.model.Product;
3131
import com.iluwatar.monolithic.model.User;
32-
import com.iluwatar.monolithic.repository.OrderRepo;
33-
import com.iluwatar.monolithic.repository.ProductRepo;
34-
import com.iluwatar.monolithic.repository.UserRepo;
32+
import com.iluwatar.monolithic.repository.OrderRepository;
33+
import com.iluwatar.monolithic.repository.ProductRepository;
34+
import com.iluwatar.monolithic.repository.UserRepository;
3535
import org.springframework.stereotype.Service;
3636
/**
37-
* OrderCon is a controller class for managing Order operations.
37+
* OrderController is a controller class for managing Order operations.
3838
* */
3939
@Service
40-
public class OrderCon {
41-
private final OrderRepo orderRepository;
42-
private final UserRepo userRepository;
43-
private final ProductRepo productRepository;
40+
public class OrderController {
41+
private final OrderRepository orderRepository;
42+
private final UserRepository userRepository;
43+
private final ProductRepository productRepository;
4444
/**
4545
* This function handles the initializing of the controller.
4646
* */
47-
public OrderCon(OrderRepo orderRepository, UserRepo userRepository, ProductRepo productRepository) {
47+
public OrderController(OrderRepository orderRepository, UserRepository userRepository, ProductRepository productRepository) {
4848
this.orderRepository = orderRepository;
4949
this.userRepository = userRepository;
5050
this.productRepository = productRepository;
5151
}
5252
/**
5353
* This function handles placing orders with all of its cases.
5454
* */
55-
public Orders placeOrder(Long userId, Long productId, Integer quantity) {
55+
public Order placeOrder(Long userId, Long productId, Integer quantity) {
5656
final User user = userRepository.findById(userId).orElseThrow(() -> new NonExistentUserException("User with ID " + userId + " not found"));
5757

58-
final Products product = productRepository.findById(productId).orElseThrow(() -> new NonExistentProductException("Product with ID " + productId + " not found"));
58+
final Product product = productRepository.findById(productId).orElseThrow(() -> new NonExistentProductException("Product with ID " + productId + " not found"));
5959

6060
if (product.getStock() < quantity) {
6161
throw new InsufficientStockException("Not enough stock for product " + productId);
@@ -64,7 +64,7 @@ public Orders placeOrder(Long userId, Long productId, Integer quantity) {
6464
product.setStock(product.getStock() - quantity);
6565
productRepository.save(product);
6666

67-
final Orders order = new Orders(null, user, product, quantity, product.getPrice() * quantity);
67+
final Order order = new Order(null, user, product, quantity, product.getPrice() * quantity);
6868
return orderRepository.save(order);
6969
}
7070
}

monolithic-architecture/src/main/java/com/iluwatar/monolithic/controller/ProductCon.java renamed to monolithic-architecture/src/main/java/com/iluwatar/monolithic/controller/ProductController.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,8 @@
2424
*/
2525
package com.iluwatar.monolithic.controller;
2626

27-
import com.iluwatar.monolithic.model.Products;
28-
import com.iluwatar.monolithic.repository.ProductRepo;
27+
import com.iluwatar.monolithic.model.Product;
28+
import com.iluwatar.monolithic.repository.ProductRepository;
2929
import java.util.List;
3030
import org.springframework.stereotype.Service;
3131

@@ -35,24 +35,24 @@
3535

3636

3737
@Service
38-
public class ProductCon {
39-
private final ProductRepo productRepository;
38+
public class ProductController {
39+
private final ProductRepository productRepository;
4040
/**
4141
* Linking Controller to DB.
4242
* */
43-
public ProductCon(ProductRepo productRepository) {
43+
public ProductController(ProductRepository productRepository) {
4444
this.productRepository = productRepository;
4545
}
4646
/**
4747
* Adds a product to the DB.
4848
* */
49-
public Products addProduct(Products product) {
49+
public Product addProduct(Product product) {
5050
return productRepository.save(product);
5151
}
5252
/**
53-
* Returns all relevant Products.
53+
* Returns all relevant Product.
5454
* */
55-
public List<Products> getAllProducts() {
55+
public List<Product> getAllProducts() {
5656
return productRepository.findAll();
5757
}
5858
}

monolithic-architecture/src/main/java/com/iluwatar/monolithic/controller/UserCon.java renamed to monolithic-architecture/src/main/java/com/iluwatar/monolithic/controller/UserController.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,18 +25,18 @@
2525
package com.iluwatar.monolithic.controller;
2626

2727
import com.iluwatar.monolithic.model.User;
28-
import com.iluwatar.monolithic.repository.UserRepo;
28+
import com.iluwatar.monolithic.repository.UserRepository;
2929
import org.springframework.stereotype.Service;
3030
/**
31-
* UserCon is a controller class for managing user operations.
31+
* UserController is a controller class for managing user operations.
3232
*/
3333
@Service
34-
public class UserCon {
35-
private final UserRepo userRepository;
34+
public class UserController {
35+
private final UserRepository userRepository;
3636
/**
3737
* Linking Controller to DB.
3838
*/
39-
public UserCon(UserRepo userRepository) {
39+
public UserController(UserRepository userRepository) {
4040
this.userRepository = userRepository;
4141
}
4242
/**

monolithic-architecture/src/main/java/com/iluwatar/monolithic/model/Orders.java renamed to monolithic-architecture/src/main/java/com/iluwatar/monolithic/model/Order.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,13 +34,13 @@
3434
import lombok.NoArgsConstructor;
3535

3636
/**
37-
* Represents a Database in which Orders are stored.
37+
* Represents a Database in which Order are stored.
3838
*/
3939
@Entity
4040
@Data
4141
@NoArgsConstructor
4242
@AllArgsConstructor
43-
public class Orders {
43+
public class Order {
4444
@Id
4545
@GeneratedValue(strategy = GenerationType.IDENTITY)
4646
private Long id;
@@ -49,7 +49,7 @@ public class Orders {
4949
private User user;
5050

5151
@ManyToOne
52-
private Products product;
52+
private Product product;
5353

5454
private Integer quantity;
5555

monolithic-architecture/src/main/java/com/iluwatar/monolithic/model/Products.java renamed to monolithic-architecture/src/main/java/com/iluwatar/monolithic/model/Product.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@
3939
@Data
4040
@NoArgsConstructor
4141
@AllArgsConstructor
42-
public class Products {
42+
public class Product {
4343
@Id
4444
@GeneratedValue(strategy = GenerationType.IDENTITY)
4545
private Long id;

monolithic-architecture/src/main/java/com/iluwatar/monolithic/repository/OrderRepo.java renamed to monolithic-architecture/src/main/java/com/iluwatar/monolithic/repository/OrderRepository.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,10 @@
2424
*/
2525
package com.iluwatar.monolithic.repository;
2626

27-
import com.iluwatar.monolithic.model.Orders;
27+
import com.iluwatar.monolithic.model.Order;
2828
import org.springframework.data.jpa.repository.JpaRepository;
2929
/**
3030
* This interface allows JpaRepository to generate queries for the required tables.
3131
*/
32-
public interface OrderRepo extends JpaRepository<Orders, Long> {
32+
public interface OrderRepository extends JpaRepository<Order, Long> {
3333
}

monolithic-architecture/src/main/java/com/iluwatar/monolithic/repository/ProductRepo.java renamed to monolithic-architecture/src/main/java/com/iluwatar/monolithic/repository/ProductRepository.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,10 @@
2424
*/
2525
package com.iluwatar.monolithic.repository;
2626

27-
import com.iluwatar.monolithic.model.Products;
27+
import com.iluwatar.monolithic.model.Product;
2828
import org.springframework.data.jpa.repository.JpaRepository;
2929
/**
3030
* This interface allows JpaRepository to generate queries for the required tables.
3131
*/
32-
public interface ProductRepo extends JpaRepository<Products, Long> {
32+
public interface ProductRepository extends JpaRepository<Product, Long> {
3333
}

monolithic-architecture/src/main/java/com/iluwatar/monolithic/repository/UserRepo.java renamed to monolithic-architecture/src/main/java/com/iluwatar/monolithic/repository/UserRepository.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
/**
3030
* This interface allows JpaRepository to generate queries for the required tables.
3131
*/
32-
public interface UserRepo extends JpaRepository<User, Long> {
32+
public interface UserRepository extends JpaRepository<User, Long> {
3333
/**
3434
* Utilizes JpaRepository functionalities to generate a function which looks up in the User table using emails.
3535
* */

0 commit comments

Comments
 (0)