/Some-Kind-Of-Shop

Console-based project

Primary LanguageJava

Some-Kind-Of-Shop

Console-based project

Description

The Some kind of Shop app is a console-based application that facilitates the purchasing of some kind of item, the choice is up to you. An employee can add these items to an inventory and manage offers for those those items while a customer can view the available items and make offers.

Purpose

Understanding concept of object-oriented programming (Encapsulation, Abstraction, Inheritance, Polymorphism). Working with JUnit test, Log4j and MySQL functions.

Requirements

  1. Functionality should reflect the below user stories.
  2. Data is stored in a database.
  3. Data Access is performed through the use of JDBC in a data layer consisting of Data Access Objects.
  4. All input is received using the java.util.Scanner class.
  5. All public service layer methods must have at least one JUnit test.
  6. Log4j is implemented to log events to a file.

User Stories

  • As a user, I can login.
  • As an employee, I can add an item to the shop.
  • As a customer, I can view the available items.
  • As a customer, I can make an offer for an item.
  • As an employee, I can accept or reject a pending offer for an item.
  • As the system, I update an item to an owned state when an offer is accepted.
  • As the system, I reject all other pending offers for an item when an offer is accepted.
  • As a user, I can register for a customer account.
  • As an employee, I can remove an item from the shop.
  • As a customer, I can view the items that I own.
  • As a customer, I can view my remaining payments for an item.
  • As an employee, I can view all payments.
  • As the system, I can calculate the weekly payment.
  • As a user, I can make a payment.
  • As a manager, I can make employee accounts.
  • As an employee, I can edit existing items.
  • As a manager, I can fire employees.
  • As a manager, I can view sales history of all offers.

Extra

  • File I/O
  • Threading
  • Mocking
  • Password hashing