Online store with an administration panel¶
Brief description of the system¶
As part of the project, you should create an application that allows you to add products to the store via the administration panel. The system is to enable user registration and logging, as well as placing an order.
Main system functions¶
- Login panel.
-
Admin:
- Adding categories for products.
- Category tree overview.
- Adding products.
- List of products + edition.
-
User:
- Registration.
- List of products.
- Product table with pagination.
- Weather forecast for the user's city.
General guidelines¶
Build a website using Spring Boot, JPA (Hibernate) and Thymeleaf/Angular/React as the view layer. Introduce a division into the application by DAO, services, controllers (REST controllers in the case of using Angular) and placing the appropriate logic into each of them. Secure access to applications and functionalities using Spring Security.
Basic entities (Proposal)¶
Category¶
- name
- parent categories and categories of "children" (location in the tree)
User's account¶
- login (email)
- password (hash)
- city
- address (country, city, street, zip code)
- logotype/thumbnail/avatar
- role (ADMIN/USER - entity)
- message channel preferences (standard mail/email)
Product¶
- title
- description
- thumbnail (url)
- category (entity)
- price
- product type (enum)
- author (entity)
Order line¶
- Product (entity)
- Number of products
- Product price
Order¶
- User Name
- Total cost
- Delivery address
- User address
- Date of submission
- Order lines (entities)
- Client (entity)
- Status (enum)
Author¶
- First name
- Last Name
Role¶
- Role name
Cart (not entity)¶
- Order lines
Functionalities¶
Admin functionality¶
Adding categories¶
- category name
- parent id
Category tree overview¶
- category search
- possibility to drag categories (change position)
Adding a product¶
- name
- description
- image url
- availability
- price
- product type (dropdown)
- category (dropdown)
- author (dropdown)
List of products¶
- list of all added products with their details
- button to go to the edition of the product
- product search
User functionalities¶
User registration¶
- entering data into the form fields + validation of these fields
Login¶
- the ability to log in the user (after prior registration)
- user logout
Weather widget¶
- weather display based on the city of the currently logged in user
List of products¶
- it is possible to display products as a list or as a grid
- product search
- adding a product to the cart
Table with products (Ajax on the GET query and inserting parameters into the url)¶
- displaying products in a pagination board (selection of the number of products on the page)
- sorting products in the table
- Ajax product search
- adding products to the cart
Cart¶
- displaying products added to the cart
- possibility of ordering products from the cart -> leads to a static thank-you page and reduces the condition of products
Additional tasks and extensions¶
- possibility to edit user account (data)
- review of user orders (from the user and admin level)
- adding an author in the admin panel
Additional requirements¶
- it is necessary to ensure an aesthetic and functional way of presenting data
- data downloaded from users should be pre-validated