Skip to content

LMCv2/EnterpriseSystemsDevelopment

Repository files navigation

Acer International Bakery Web System

mvn paseq:exec@dev
# or
./mvnw paseq:exec@dev

http://127.0.0.1:8080/

Dependencies

Create Project Link

  • Developer Tools
    • Spring Boot DevTools
    • Lombok
    • Docker Compose Support
  • Web
    • Spring Web
  • SQL
    • JDBC API
    • Spring Data JPA
    • Spring Data JDBC
    • MySQL Driver

Reference Documentation

Reference Guides

TODO List

Main Functions

  • CRUD for fruit types
  • Show a list of all fruits and the source location
  • Show the stock level for different locations (source country, shop, city, target country)
  • Reserve fruits from source city
  • Check reserve records
  • Borrow fruits from other shops in the same cities
  • Check the fruits on delivery (borrow/reserve)
  • Update fruits stock level in the shop/warehouse
  • Check-in, Check-out, Approve-Reserve, Approve-Borrow

Analytic & Report

  • Show a list of reserve needs of the selected shop/city/country (hints: aggregation of the reserve records)
  • Show a list of consumption records of the selected shop/city/country under different seasons

Account Management

  • Show a list of existing users
  • Create and delete users (Shop, Warehouse, Senior management)
  • Edit users with detail and roles
  • Manage the user role

Extra Feature

  • Show report in graphical format
  • Forecast report to achieve 1 SKU delivery (1 SKU mean 1 fruit deliver in 1 day to other country by average time consumed)

Report

Site Map

graph TD
    B[Login Page]
    
    B --> D[Account]
    B --> E[Fruit]
    B --> F[Location]
    B --> G[Stock]
    B --> H[Event]
    B --> I[Dashboard]
    B --> J[CurrentAccount]
    
    J --> J1[Login]
    J --> J2[Register]

    D --> D1[Account List]
    D --> D2[Add Account]
    D --> D3[Edit Account]
    D --> D4[Delete Account]
    
    E --> E1[Fruit List]
    E --> E2[Add Fruit]
    E --> E3[Edit Fruit]
    E --> E4[Delete Fruit]
    E --> E5[Add Fruit Source Location]
    
    F --> F1[Location List]
    F --> F2[Add Location]
    F --> F3[Edit Location]
    F --> F4[Delete Location]
    
    G --> G1[Edit Stock for Source Warehouse]
    G --> G2[Add Stock for Shop]
    
    G2 --> G2A[Create Reservation]
    G2 --> G2B[Create Borrowing]

    H --> H1[Event List]
    H --> H2[Processing Reservation]
    H --> H3[Processing Borrowing]
    H --> H4[Processing Consumption]

    I --> I1[Analysis and Reporting]
Loading

System Structure

graph TD
    A[JSP] --> C[Controller]
    C --> M[Model]
    M --> D1[JPA Repository]
    D2 --> E[(MySQL)]
    
    subgraph View
    A1[Account Management Page] --> A
    A2[Fruit Management Page] --> A
    A3[Location  Management Page] --> A
    A4[Stock Management Page] --> A
    A5[Event Management Page] --> A
    A6[CurrentAccountController] --> A
    end
    
    subgraph Controller
    C1[Account Controller] --> C
    C2[Fruit Controller] --> C
    C3[Location Controller] --> C
    C4[Stock Controller] --> C
    C5[Event Controller] --> C
    end
    
    subgraph Model
    M1[Account] --> M
    M2[Fruit] --> M
    M3[Location] --> M
    M4[Stock] --> M
    M5[Event] --> M
    end

    subgraph Data Access
    D1[JPA Repository] --> D2
    D2[JDBC]
    end
Loading

Brief description

Event State Machine

stateDiagram-v2
    [*] --> Pending
    
    state Borrowing {
        Pending --> Shipped: Approve
        Pending --> Rejected: Reject
        Shipped --> Delivered: Deliver
        Delivered --> [*]
        Rejected --> [*]
    }
Loading
stateDiagram-v2
    [*] --> Pending
    
    state Reservation {
        Pending --> ShippedCentral: Approve
        Pending --> Rejected: Reject
        ShippedCentral --> DeliveredCentral: Delivered to central warehouse
        DeliveredCentral --> Shipped: Shipped to shop
        Shipped --> Delivered: Deliver to shop
        Delivered --> [*]
        Rejected --> [*]
    }
Loading

Database Structure

erDiagram
    Location |o--|{ Account : managed
    Location ||--|{ Stock : store
    Stock }|--|| Fruit : store
    Location ||--o{ Event : recorded
    Fruit ||--o{ Event : recorded

    Account {
        string username
        string password
        string role
        int locationid
        bool deleted
        date createDate
        date lastModifiedDate
    }
    Stock {
        int FruitId
        int locationId
        int quantity
        bool deleted
        date createDate
        date lastModifiedDate
    }
    Fruit {
        int id
        string name
        bool deleted
        date createDate
        date lastModifiedDate
    }
    Location {
        int id
        string name
        string country
        string city
        int type
        bool deleted
        date createDate
        date lastModifiedDate
    }
    Event {
        int id
        int fruitId
        int quantity
        int eventType
        int fromLocationId
        int throughLocationnId
        int toLocationId
        int status
        int timePeriod
        int year
        String season
        date createDate
        date lastModifiedDate
    }
Loading

Skill Checklist

  • Dynamically Generate HTML (JSP EL, JSTL)
  • Accept User Inputs (Current Account Controller, getParameter)
  • JSP Action (layout_start.jsp, jsp:include)
  • Custom Tag (Tag Folder)
  • JavaBean (Entity Folder)
  • JDBC
  • Session Checking (Current Account Controller)
  • Login Control (Current Account Controller)
  • MVC
  • Spring boot

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •