This project is a Java-based application for managing product reviews, user-following relationships, and categorization of products. The application uses Jakarta Persistence (JPA) to map classes to a relational database.
Timeline: Started 2024-11-04, Completed 2024-11-04
Functionality added:
Objectives for next milestone:
Timeline: Started 2024-11-11, Completed 2024-11-25
Functionality added:
Objectives for next milestone:
Represents a user who can follow other users and leave reviews on products.
id
(Long): Primary key, auto-generated.userId
(String): Unique identifier for each user.name
(String): User's name.following
(Setreviews
(SetCustomer
entities through a join table (user_follows
) to represent following relationships.Review
entities, where a Customer
can have multiple reviews.addFollowing(Customer customer)
: Adds a customer to the following set.removeFollowing(Customer customer)
: Removes a customer from the following set.addReview(Review review)
: Associates a review with the customer.removeReview(Review review)
: Disassociates a review from the customer.Represents a product available for review.
id
(Long): Primary key, auto-generated.productId
(String): Unique identifier for each product.name
(String): Name of the product.category
(String): Product category.reviews
(ListReview
entities, where a Product
can have multiple reviews.addReview(Review review)
: Associates a review with the product.removeReview(Review review)
: Disassociates a review from the product.Represents a review of a product left by a customer, including a rating, text, and date.
id
(Long): Primary key, auto-generated.reviewer
(Customer): The customer who wrote the review.product
(Product): The product being reviewed.starRating
(int): The rating given to the product, on a scale (e.g., 1-5).reviewText
(String): Textual content of the review.reviewDate
(LocalDateTime): Timestamp of when the review was created.Customer
(each review has one customer).Product
(each review relates to one product).This database schema represents a persistent PostgreSQL database utilized to test this proof of concept. This iteration utilizes a persistent database assocated with Azure that contains data related to products, customers, and reviews. The current iteration deletes added elements once a session has been finished for testing and storage purposes.
Primary keys are represented by an underline, and foreign keys contain an arrow associated with their respective primary keys.
This UML Diagram represents the application as of Milestone 2. The diagram will be updated periodically to accound for any new classes, attributes and methods implemented alongside commits.