Code Monkey home page Code Monkey logo

productreviewswebapp's Introduction

ProductReviewsWebApp

Java CI with Maven Build and deploy JAR app to Azure Web App

This Product Reviews Web App is a SpringBoot web application deployed on Azure Web Services. It uses RESTful commands and Thymeleaf calls to organize and display information that is persisted and stored in a database.

Working Technology Stack

Description

Product reviews on the platform are linked to their respective website listings. Each review comprises a star rating and accompanying text. Users have the option to 'follow' others whose reviews they find valuable. They can then organize products within a specific category by their average rating, considering either all users or just those they follow. Additionally, users can identify individuals whose reviewing patterns closely resemble their own using the Jaccard distance metric. Reviews can be further ranked based on the similarity of the reviewers' scores. The platform also allows users to discover the most followed reviewers. To enhance trust, the system indicates the degree of separation between users through their 'follow' connections, assuming closer connections imply higher trustworthiness.

This project contains three entities:

Product

The product entity is responsible for holding the model logic of a typical Product. It contains a name, URL, category, and a list of Reviews related to that product. Users can add and remove products to the site.

Review

The review entity holds the model logic of a typical Review. It contains a star rating and a comment and keeps track of the review's author and related product.

Client

The client entity is responsible for holding the model logic of the typical client. Clients have a username, a map of product_id, review pairs, a list of users they follow, and a count of how many users follow them - using Degrees of Separation. Clients can follow and unfollow other clients, write reviews of products, and calculate Jaccard Distance to each other.

Project Milestones

UML Class Diagram - model

classUML-model

UML Class Diagram - controller

classUML-controller

Entity Relationship Diagram

entity-relationship-diagram

Run locally

  • Clone the repository to your machine and run the ProductReviewsWebAppApplication.java file
  • On any web browser, navigate to localhost:8080, allowing an offline developer view of the project

Run with Prometheus and Grafana monitoring

Prometheus and Grafana can be used to query and visualize a variety of app metrics. In order to get them working complete the following steps:

  • Install docker on your machine (docker installation webpage or sudo apt install docker.io on debian)
  • Install docker compose on your machine (docker compose installation site)
  • Run mvn package in the project root directory to ensure that the latest version of the project jar file is present
  • Open the terminal, navigate to the monitoring directory and run docker-compose up -d or docker compose up -d (depending on how docker compose was installed, docker-compose may not work as sometimes docker compose is included in the docker installation instead of installed individually)
  • Navigate to URL:
    • http://localhost:8080 for the Product Reviews Web App
    • http://localhost:9090 for the Prometheus user interface
    • http://localhost:3000 for the Grafana user interface
  • Once you are done, navigate to the monitoring directory again and run docker-compose down to stop the containers

Contribute

  • Once changes are made, re-run ProductReviewsWebAppApplication.java and refresh localhost:8080 on your web browser, the changes should appear
  • Create a new branch and commit to the repository
  • Open a pull request on that branch, once approved, congratulations, you've successfully contributed to Product Reviews Web App!

productreviewswebapp's People

Contributors

trong0dn avatar nathanmacdiarmid avatar koookee avatar jeremytrendoff81 avatar evansmedley avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.