首页
网站开发
桌面应用
管理软件
微信开发
App开发
嵌入式软件
工具软件
数据采集与分析
其他
首页
>
> 详细
data程序代做、代写SQL编程语言
项目预算:
开发周期:
发布时间:
要求地区:
Online Shopping App Requirements
Create a Shopping application which supports the following:
High Level Design(HLD):
● Use Spring Boot, Hibernate (HQL, Criteria), MySQL, Spring Security + JWT, Spring AOP,
Spring Validation to develop the backend.
○ You CAN NOT use JDBC/JdbcTemplate, JPA repository, CRUD repository, or the
native query.
○ At least one of the DAO functions needs to be implemented with Criteria.
○ Using Spring AOP to handle all exception throws in the controller and return
HTTP response
● Use Angular to develop the frontend.
● RESTful application required following a layered architecture: RestController, service,
repository.
● Use Postman to present your project by calling your RESTful endpoints.
● All required functionalities should be implemented.
● If you are using a version control tool such as GitHub, please make your repository
PRIVATE!!!
The retailer tycoon, Super Duper Mart™, requires your assistance in setting up their online
shopping website. The following is the requirement they sent over. Based on these
requirements, please come up with a RESTful application that is equipped with the necessary
endpoints to return the needed information for each of their requirements.
User (Buyer)
The users are able to shop for different products from Super Duper Mart™.
1. Registration [POST]
a. Before being able to purchase products, a user has to first register.
i. Your application should prevent registration using the same username
and email.
ii. Only username, email and password are required to register an account.
iii. Password should be encrypted (Bonus)
2. Login [POST]
a. If the user has entered the correct credentials, they may proceed to the
corresponding page based on their authorities.
b. If the user has entered incorrect credentials, a custom named exception
‘InvalidCredentialsException’ should be thrown and handled by the Exception
handler. The message the user will get is: “Incorrect credentials, please try
again.”
3. Home Page
a. The user is able to view all of the products. An out of stock product should NOT
be shown to the user. [GET]
b. When a user clicks on one product, the user should be redirected to the detail
page of that product, including the description and price (retail_price) of the
product. (The user should NOT be able to see the actual quantity of any items).
[GET]
c. After purchasing the product, the user should be able to view order details
including, order placement time and order status which is Processing,
Completed or Canceled. [GET]
4. Purchasing
a. The user should be able to purchase listing items with a specified quantity by
creating a “Processing” order. After a user places an order, the item’s stock
should be deducted accordingly. [POST]
i. The user should be able to purchase multiple different items within a
single order.
b. If the quantity of an item that the user is purchasing is greater than the item’s
stock, throw a custom exception named ‘NotEnoughInventoryException’ using
Exception Handler and the order should not be placed.
c. The user should be able to cancel an order by updating the status from
“Processing” to “Canceled”. If so, the item’s stock should be incremented
accordingly to offset the auto-deduction that took place when the order is first
placed. However, a “Completed” order cannot be changed to “Canceled”.
[PATCH]
5. Product Watchlist
a. The user can add/remove products to/from their watchlist.
i. The user should not be able to add a product that is already on the
watchlist [POST]
ii. The user should not be able to remove a product that is not on the
watchlist [DELETE]
b. The user can view all in stock products within their watchlist. [GET]
i. When viewing the watchlist, products which are out of stock will not be
shown to the user.
6. Summary
a. The user should be able to view all their orders. [GET]
i. Note that the wholesale_price and retail_price of a product can be
adjusted by the seller, implement something to prevent the adjustments
from affecting previous orders.
b. The user can then click and look into any one specific order created by them,
completed with the items included in that order. [GET]
c. The user should be able to view their top 3 most frequently purchased items.
(excluding canceled order, use item ID as tie breaker) [GET]
d. The user can also view their top 3 most recently purchased items. (excluding
canceled order, use item id as tie breaker) [GET]
Admin (Seller)
The seller, Super Duper Mart™, is able to list different products to sell. There is one and ONLY
one seller, thus no need to keep user_id foreign keys in the product table.
1. Home Page
a. The seller should be able to view a dashboard, consisting of the following:
i. Order information, with details of order placed time, users who placed
the order and the order status (Processing, Completed, Canceled).
[GET]
1. A page should only have 5 orders (Bonus)
2. The seller can click and see information regarding any single
order, completed with the items involved in the order.
ii. Listing information, the current products that are listed to sell. When the
seller clicks on one product, the seller should be redirected to the detail
page of that product, including the description, wholesale_price,
retail_price and stock’s quantity of the product; the seller should be
able to modify the wholesale_price, retail_price, description and
quantity of a product. [GET]
2. Listing
a. The seller should be able to add products. A product has fields including
description, wholesale_price, retail_price and stock’s quantity. [POST]
i. The wholesale price is the price which the seller paid for the product.
ii. The retail price is the price which customers pay for the product.
3. Selling
a. When one product is sold, the quantity of that product should be deducted
accordingly. And such quantity should be reflected on the dashboard.
4. Order
a. The seller should be able to complete a “Processing” order by updating its
status to “Completed”. [PATCH]
b. The seller should also be able to cancel an order for some reasons, such as that
the product is sold out locally, by updating the order status to “Canceled”. If so,
the item’s stock should be incremented accordingly to offset the auto-deduction
that took place when the order is first placed. However, a “Canceled” order
cannot be completed, nor can a “Completed” order be canceled. [PATCH]
5. Summary
a. The seller can see which product brings the most profit. [GET]
i. The profit is calculated as (retail price - wholesale price).
ii. Note: This should address situations where the seller alters either the
wholesale_price or retail_price, causing a discrepancy when comparing
between the past orders and the current updated product details.
iii. This should not include “Processing” and “Canceled” orders.
b. The seller can see which 3 products are the most popular/sold (excluding
canceled and ongoing order). [GET]
c. The seller can also see the amount of total items sold successfully (excluding
canceled and ongoing order). [GET]
6. Additional Features (Bonus)
a. This part would be evaluated by your creativity and completeness of the design.
Be creative and think outside of the box :) if you have time
Spring Validation
Using Spring Validation to validate the request in at least one POST request.
Security
Protect your application endpoints using Spring Security + JWT:
1. Authentication: Guests cannot access any endpoints other than for login or registration
usage.
2. Authorization: A user with the corresponding authorities can access certain pages that
they are granted access to.
a. They should not be able to access information that they don’t have access to:
i. Any of seller’s functionality
ii. Any of other user’s order information
iii. Any other relevant information
Exception Handling
1. Your application must not crash during the presentation. Therefore, if an exception
occurs, you must handle it with Spring AOP and display the exception as a message to
help yourself and others debug.
Project Submission
Please include the following in a ZIP file. If the file size exceeds the accepted file size, upload
your files to a cloud storage (such as Google Drive) or push your code to a remote repo in
GitHub (make sure you make the repo PRIVATE) and share access with Jack and Aiden.
- Project source code
- Diagram of your finalized DB design
(other info)
- Jack’s email address: jack.shi@beaconfireinc.com
- Aiden’s email address: aiden.gong@beaconfiresolution.com
软件开发、广告设计客服
QQ:99515681
邮箱:99515681@qq.com
工作时间:8:00-23:00
微信:codinghelp
热点项目
更多
代写dts207tc、sql编程语言代做
2024-12-25
cs209a代做、java程序设计代写
2024-12-25
cs305程序代做、代写python程序...
2024-12-25
代写csc1001、代做python设计程...
2024-12-24
代写practice test preparatio...
2024-12-24
代写bre2031 – environmental...
2024-12-24
代写ece5550: applied kalman ...
2024-12-24
代做conmgnt 7049 – measurem...
2024-12-24
代写ece3700j introduction to...
2024-12-24
代做adad9311 designing the e...
2024-12-24
代做comp5618 - applied cyber...
2024-12-24
代做ece5550: applied kalman ...
2024-12-24
代做cp1402 assignment - netw...
2024-12-24
热点标签
mktg2509
csci 2600
38170
lng302
csse3010
phas3226
77938
arch1162
engn4536/engn6536
acx5903
comp151101
phl245
cse12
comp9312
stat3016/6016
phas0038
comp2140
6qqmb312
xjco3011
rest0005
ematm0051
5qqmn219
lubs5062m
eee8155
cege0100
eap033
artd1109
mat246
etc3430
ecmm462
mis102
inft6800
ddes9903
comp6521
comp9517
comp3331/9331
comp4337
comp6008
comp9414
bu.231.790.81
man00150m
csb352h
math1041
eengm4100
isys1002
08
6057cem
mktg3504
mthm036
mtrx1701
mth3241
eeee3086
cmp-7038b
cmp-7000a
ints4010
econ2151
infs5710
fins5516
fin3309
fins5510
gsoe9340
math2007
math2036
soee5010
mark3088
infs3605
elec9714
comp2271
ma214
comp2211
infs3604
600426
sit254
acct3091
bbt405
msin0116
com107/com113
mark5826
sit120
comp9021
eco2101
eeen40700
cs253
ece3114
ecmm447
chns3000
math377
itd102
comp9444
comp(2041|9044)
econ0060
econ7230
mgt001371
ecs-323
cs6250
mgdi60012
mdia2012
comm221001
comm5000
ma1008
engl642
econ241
com333
math367
mis201
nbs-7041x
meek16104
econ2003
comm1190
mbas902
comp-1027
dpst1091
comp7315
eppd1033
m06
ee3025
msci231
bb113/bbs1063
fc709
comp3425
comp9417
econ42915
cb9101
math1102e
chme0017
fc307
mkt60104
5522usst
litr1-uc6201.200
ee1102
cosc2803
math39512
omp9727
int2067/int5051
bsb151
mgt253
fc021
babs2202
mis2002s
phya21
18-213
cege0012
mdia1002
math38032
mech5125
07
cisc102
mgx3110
cs240
11175
fin3020s
eco3420
ictten622
comp9727
cpt111
de114102d
mgm320h5s
bafi1019
math21112
efim20036
mn-3503
fins5568
110.807
bcpm000028
info6030
bma0092
bcpm0054
math20212
ce335
cs365
cenv6141
ftec5580
math2010
ec3450
comm1170
ecmt1010
csci-ua.0480-003
econ12-200
ib3960
ectb60h3f
cs247—assignment
tk3163
ics3u
ib3j80
comp20008
comp9334
eppd1063
acct2343
cct109
isys1055/3412
math350-real
math2014
eec180
stat141b
econ2101
msinm014/msing014/msing014b
fit2004
comp643
bu1002
cm2030
联系我们
- QQ: 9951568
© 2021
www.rj363.com
软件定制开发网!