mvn paseq:exec@dev
# or
./mvnw paseq:exec@dev
- Developer Tools
- Spring Boot DevTools
- Lombok
- Docker Compose Support
- Web
- Spring Web
- SQL
- JDBC API
- Spring Data JPA
- Spring Data JDBC
- MySQL Driver
- Building a RESTful Web Service
- Serving Web Content with Spring MVC
- Building REST services with Spring
- Accessing Relational Data using JDBC with Spring
- 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
- 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
- Show a list of existing users
- Create and delete users (Shop, Warehouse, Senior management)
- Edit users with detail and roles
- Manage the user role
- 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)
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]
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
stateDiagram-v2
[*] --> Pending
state Borrowing {
Pending --> Shipped: Approve
Pending --> Rejected: Reject
Shipped --> Delivered: Deliver
Delivered --> [*]
Rejected --> [*]
}
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 --> [*]
}
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
}
- 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