Skip to content

Commit

Permalink
Readme (#49)
Browse files Browse the repository at this point in the history
* README - added README file.

* README - updating README.md.

* README - updating README.md.

* README - updated README.md and removed credentials from application.properties.

Co-authored-by: Evgeniy Kiprenko <[email protected]>
  • Loading branch information
kiprenko and Evgeniy Kiprenko authored Jan 26, 2021
1 parent 99bfb47 commit 90ef04c
Show file tree
Hide file tree
Showing 9 changed files with 109 additions and 3 deletions.
106 changes: 106 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
<img src="docs/logo.png" alt="Price Observer logo">

# Price Observer

## Introduction

Price Observer is a price monitoring web-application. The application is built using Java programming language, Spring
Boot, and MySQL database.

The application itself is a pretty and clear tool to monitor the price of popular products. In the current version the
application support only the products made by Apple company. <br>
Price Observer supports Sign-In/Sign-Up possibility implemented with Spring Security. Authorized users can add products
they like into the wishlist for more comfortable price monitoring. The full list of the application features you may see
below:

- Review existing product categories;
- Search product by name or model;
- Review a product description and its price history;
- Create an account in the application;
- Sign In using your account and add products to the wishlist;
- Change account information.

## User Interface

Price Observer has a very smooth and useful User Interface. The main page of the application looks in a next way:

![Price Observer main page](docs/poMainPage.png)

You may see five main product categories on the main page. When you click on any of them you will be redirected to this
category page. Here is the "Smartphone" category page.

![Price Observer smartphones page](docs/poSmartphoneCategory.png)

The same page for the "Smartwatch" category.

![Price Observer smartwatches page](docs/poSmartWatchCategory.png)

When you click on the product you like, the page with a detailed product description is opened.

![Price Observer product view page](docs/poProductViewPage.png)

Also, I need to show you how nice our Sign-in/Sign-Up page looks like.

![Price Observer Sign-In/Sign-up page](docs/poSignInSignUpPage.png)

## Getting started

### Prerequisites

To run the application you need such things installed on your machine:

- Java 11
- Maven

### Build and run

1. Clone the project to your machine using git;
2. Open the root directory of the project;
3. Open a terminal and run the next command ```cd webapp```. You will be moved to the webapp module directory;
4. Run the Spring Boot Application by the ```mvn spring-boot:run``` command;
5. Wait till the Maven builds and runs the project;
6. Open http://localhost:8080 to verify the application running.

That's it.

## Documentation

### Use case diagram

![Use Case Diagram](docs/useCaseDiagram.png)

### Project structure

The project represents Maven multi-module project. It has four main modules:

- [auto](auto) module, which contains auto-tests;
- [core](core) module, which contains business logic and logic to interact with a database;
- [parser](parser) module, which contains logic to parse store sites;
- [webapp](webapp) module, which contains web-application layer logic (controllers, etc).

To run the application from your IDE use [Application](webapp/src/main/java/priceobserver/Application.java) class
located in [webapp](webapp) module.

### Database structure

The application uses MySQL database. For the database creation is used [main.sql](db/main.sql) file. Other important
database scripts may be found in this [folder](db).<br/>
The database schema visualization is provided below:
![Price Observer database schema visualisation](docs/dbSchema.png)

#### Database filling

To fill the database with product information the application uses store sites parsing. To parse sites was used Java
library **[jsoup](https://jsoup.org/)**

## Authors

🦉 **Viktoriia Abakumova**

- Email: [email protected]
- [LinkedIn](http://linkedin.com/in/viktoriia-abakumova)

🦝 **Evgeniy Kiprenko**

- Email: [email protected]
- [LinkedIn](https://www.linkedin.com/in/kiprenko/)
6 changes: 3 additions & 3 deletions core/src/main/resources/application.properties
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
spring.datasource.url=jdbc:mysql://price-observer.csdwed8ykm5o.eu-central-1.rds.amazonaws.com:3306/price_observer?useUnicode=yes&characterEncoding=UTF-8&serverTimezone=UTC
spring.datasource.username=po_root
spring.datasource.password=rootroot
spring.datasource.url=
spring.datasource.username=
spring.datasource.password=
spring.jpa.open-in-view=false
# Spring logging level. If it spams too much, change to higher.
logging.level.org.springframework.web=WARN
Expand Down
Binary file added docs/dbSchema.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/poMainPage.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/poProductViewPage.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/poSignInSignUpPage.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/poSmartWatchCategory.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/poSmartphoneCategory.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/useCaseDiagram.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 90ef04c

Please sign in to comment.