Skip to content

SirAnatoly/Backend-MyShop

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

This is my project: online shop with admin board.On Java EE technology

VIDEO DEMO:

Watch the video

Piccy.info - Free Image Hosting

Piccy.info - Free Image Hosting

Technologies

  • Interface : HTML/CSS/JS/Bootstrap/jQuery.
  • JavaEE: Servlets, JSP, JSTL.
  • Hibernate
  • JSON
  • Apache Commons : email, validator.
  • Database: MySql.
  • Libraries: RestFacebook, Lombok.
  • Maven, Logback.

I have implemented the following features:

  • Displaying of all products in the shop, button(more products) via AJAX loading
  • Button return to the top
  • Category panel with a quantity indicator
  • Searching products by: name, using categories or producers from the filters tab (via SQL)
  • Tab - More filters, contains categories and producers with a quantity indicator
  • Button for registering in the shop by Facebook
  • The shopping cart tab with indicators of a quantity of products and total cost.
  • When you click a buy button, will be an open popup with an indicator of the number of products and their total cost, the maximum number of products is 10 pieces.
  • An unregistered user can't create an order, but he can add products to the shopping cart or delete.
  • If the user successfully login to the shop, he will be forwarded to a page(my orders) with a table of his orders, and short information in the navigation panel.
  •  If the user has selected the required number of products, he can create an order, after which he will receive a notification about the successful order.
  •  After successful creating order, the server will send the email to the administrator's email address, with the information about the user like ( name, email, orders short description)
  • Also, the Buyer will also receive an email with information about the order and thanks for the purchase.
  • The Admin Board page is shop management page, where can only be accessed by Admin email.
  • If you access the site as a non-Admin email, the user will be redirected to a page with an error (access denied)
  • If the user login into the shop from the administrator's email address, the Admin Board button appears in the navbar menu
  • The admin panel has 3 tabs (Dashboard, Messages, Add product)
  • The dashboard has 3 indicators, the number of products in the store, the number of registered users, and the approximate revenue of the shop.
  • Also in the dashboard is a table with all the products, with a description of each and a button to delete the product. When you click delete, the product is deleted, and a notification appears the product which was successfully deleted.
  • You can sort by product attribute or set the number of displayed products in the table also you can search by name (via JS).
  • The Messages page has a large table with all orders in the shop and a description of each
  • On the Add product page has a form for adding a new product to the shop, after filling all the values, will be displayed a message about the successful addition of a product to the shop.
  • When you click Log out, the session with the user ends and the user becomes a guest.

Base Blog Props

1) File: src/main/resources/application.properties

application.production=true
social.facebook.idClient=328479825126601
social.facebook.secret=2580fb7fd745a451b05e43bacc074753
app.host=https://localhost:8443
email.notificationEmail=XXXXX@gmail.com
email.sendTryCount=2
email.smtp.server=smtp.gmail.com
email.smtp.port=465
email.fromEmail=XXXXX@gmail.com
email.smtp.username=XXXXX@gmail.com
email.smtp.password=XXXXX

2) File: src/main/java/MyShop/Constants.java

public class Constants {

public static final String CURRENT_SHOPPING_CART = "CURRENT_SHOPPING_CART";

public static final int MAX_PRODUCTS_PER_SHOPPING_CART = 20;

public static final String ACCOUNT_ACTIONS_HISTORY = "ACCOUNT_ACTIONS_HISTORY";

public static final int MAX_PRODUCTS_PER_HTML_PAGE = 12;

public static final String CATEGORY_LIST = "CATEGORY_LIST";

public static final String PRODUCER_LIST = "PRODUCER_LIST";

public static final String CURRENT_ACCOUNT = "CURRENT_ACCOUNT";

}

3) File: src/main/resources/hibernate.cfg.xml

<property name="connection.driver_class">com.mysql.cj.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://localhost:3306/MyShop?useUnicode=true&amp;characterEncoding=UTF-8&amp;zeroDateTimeBehavior=CONVERT_TO_NULL&amp;serverTimezone=UTC&amp;useSSL=false</property>
<property name="connection.username">XXXXX</property>
<property name="connection.password">XXXXX</property>
<property name="hibernate.connection.characterEncoding">utf8</property>
<property name="hibernate.format_sql">true</property>
<property name="hibernate.current_session_context_class">thread</property>

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors