Skip to content

KrohIgor/internet-shop

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

77 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Internet Shop

Header Image

Table of Contents

Project purpose

Project structure

For developer

Author

Project purpose

This project is a simplified internet shop.


This internet shop performs these basic functions:

  • Registration, log in forms and logout
  • Shopping cart and order services
  • Two roles: User and Admin

This project has authentication and authorization filters, DAO and Service layers, Servlets and JSP pages.

DAO layer has two implementations: inner storage based on List and outer storage based on MySQL DB.

Project structure

  • Java 11
  • Maven
  • MavenCheckstylePlugin 3.1.1
  • javax.servlet 3.1.0
  • javax.jstl 1.2
  • mysql-connector-java 8.0.20
  • log4j 1.2.17

For developer

To run this project you need to install:


Add this project to your IDE as Maven project.

Add Java SDK 11 in project structure.

Configure Tomcat:

  • Add war
  • Add Java SDK 11

Change a path to your Log file in src/main/resources/log4j.properties on line 12.


To work with MySQL you need to:

  • Use file src/main/resources/init_db.sql to create schema and all the tables required by this app in MySQL DB
  • Change username and password to match with MySQL in src/main/java/mate/academy/internet/shop/util/ConnectionUtil.java class on 19 and 20 lines

To work with inner Storage you need to:

  • Need to remove annotation @Dao from classes :
    1. src/main/java/mate/academy/internet/shop/dao/jdbc/OrderDaoJdbcImpl.java
    2. src/main/java/mate/academy/internet/shop/dao/jdbc/ProductDaoJdbcImpl.java
    3. src/main/java/mate/academy/internet/shop/dao/jdbc/ShoppingCartDaoJdbcImpl.java
    4. src/main/java/mate/academy/internet/shop/dao/jdbc/UserDaoJdbcImpl.java
  • Need to add annotation @Dao to classes :
    1. src/main/java/mate/academy/internet/shop/dao/impl/OrderDaoImpl.java
    2. src/main/java/mate/academy/internet/shop/dao/impl/ProductDaoImpl.java
    3. src/main/java/mate/academy/internet/shop/dao/impl/ShoppingCartDaoImpl.java
    4. src/main/java/mate/academy/internet/shop/dao/impl/UserDaoImpl.java

The class src/main/java/mate/academy/internet/shop/lib/Injector.java checks all classes in all packages and checks the annotation over the class name and selects the desired classes that implements the interfaces


Run the project:

Main page is at URL: .../{context_path}

For MySQL DAO only on first run of the project, for inner Storage on every launch, to create default users open URL: .../{context_path}/injectData

By default there are two users with an USER role (name = "Bob", login = "bob", password = "1"), (name = "Alisa", login = "alisa", password = "1")
one with an ADMIN role (login = "admin", password = "3"),

Author

Ihor Krokhmal

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages