0% found this document useful (0 votes)
6 views3 pages

Programming Project

The project report outlines a work plan for developing an electronics store software using the MVC architecture, detailing team member responsibilities for the Administrator, Manager, and Cashier modules. It includes a UML diagram description emphasizing core OOP principles, class hierarchy, and relationships among classes. The report highlights the separation of concerns and the design's focus on modularity, scalability, and data integrity.

Uploaded by

ashkey.dgn
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
6 views3 pages

Programming Project

The project report outlines a work plan for developing an electronics store software using the MVC architecture, detailing team member responsibilities for the Administrator, Manager, and Cashier modules. It includes a UML diagram description emphasizing core OOP principles, class hierarchy, and relationships among classes. The report highlights the separation of concerns and the design's focus on modularity, scalability, and data integrity.

Uploaded by

ashkey.dgn
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Project Report 1: Work Plan (Electronics Store Software)

Course: Object-Oriented Programming (CEN 215)

Team Members: Arystan Ashkey, Ilias Sagynbaev, Abdulaziz Abdizhalil uulu

1. Work Plan & Member Duties


We have divided the project responsibilities based on the Model-View-Controller (MVC) architecture
to ensure a clear separation of concerns and to meet all individual contribution requirements.

Arystan (Team Leader) – Administrator Module

●​ User Management: Implementing the registration, modification, and deletion of employee


profiles (Managers and Cashiers).
●​ Access Control: Managing and revoking system permissions and access levels for all staff
members.
●​ Financial Oversight: Developing the logic to calculate total income (sales) and total costs
(purchases and staff salaries) over specific periods.
●​ Core Data: Maintaining detailed employee records, including personal and salary information.

Ilias – Manager Module

●​ Inventory Management: Implementing tools to add new item categories and restock products
within assigned sectors.
●​ Stock Monitoring: Developing a notification system that alerts when stock levels fall below 3
units.
●​ Performance Tracking: Monitoring cashier metrics, including total bills, items sold, and
revenue generated.
●​ Supplier Relations: Maintaining a comprehensive database of suppliers and their product
catalogs.

Abdulaziz – Cashier Module

●​ Sales Operations: Creating bills by entering product names and quantities.


●​ Validation: Implementing real-time alerts if items do not exist or are out of stock.
●​ Bill Generation: Automating the creation of printable bill files in the required format
●​ Personal Reporting: Providing views for the cashier to see their total daily bills and
transaction counts.
2. UML Diagram

3. UML Diagram Description

Our software design utilizes core Object-Oriented Programming (OOP) principles to ensure
modularity, scalability, and strict data integrity as required by the project specifications.

Key Classes and Hierarchy:

●​ Inheritance (Generalization): We implemented an abstract class User as the base for all
employees. The subclasses Administrator, Manager, and Cashier inherit common
attributes such as username, password, fullName, email, phone, and salary. This
structure allows for polymorphic handling of authentication and access control.
●​ Data Models: * Product: Encapsulates data for store items, including category, supplier,
purchase/selling prices, and stock quantities.
○​ Bill: Tracks transaction details, including a unique bill number, sale date, and the
total amount.
●​ Infrastructure Classes: To satisfy the architectural requirements, we included utility classes:
○​ IOHandler: Manages Text and Binary I/O operations for data persistence.
○​ Validator: Uses Regular Expressions to ensure the integrity of inputs like emails
and phone numbers.

Relationships and Connections:


●​ Administrator ↔ User (Association): The Administrator has a direct association with all
User types, enabling the management of employee profiles (registering, modifying, and
deleting) and the dynamic control of access permissions.
●​ Manager ↔ Cashier (Association): A monitoring relationship exists where the Manager can
oversee the performance metrics of Cashiers within their assigned sectors, such as total
revenue and bills generated.
●​ Cashier ↔ Bill (Association): The Cashier class is responsible for triggering the creation of
a Bill object during the checkout process and generating the printable .txt format.
●​ Bill ↔ Product (Aggregation): This is an aggregation relationship where one Bill object
contains a collection (Map or List) of Product objects. This allows a single transaction to
include multiple items with their respective quantities.
●​ Manager ↔ Category/Product (Association): The Manager is linked to products and
categories to handle restocking, adding new categories, and applying discounts when stock
levels fall below the threshold of 3 items.

MVC Architecture:

Following the Model-View-Controller pattern, the classes mentioned above represent the Model
layer. They are decoupled from the View (JavaFX UI) through Controller classes that handle events
and data flow between the files and the user interface.

You might also like