Skip to content

Commit 5400d7a

Browse files
committed
Commit
1 parent 30d629d commit 5400d7a

1 file changed

Lines changed: 80 additions & 239 deletions

File tree

README.md

Lines changed: 80 additions & 239 deletions
Original file line numberDiff line numberDiff line change
@@ -1,277 +1,118 @@
1-
# 💻 Computer Store Management System
1+
# Computer Store Management System 🖥️🛒
22

3-
## 📘 Project Description
4-
The **Computer Store Management System** is a database-driven Java application designed to manage the operations of a computer store efficiently. It includes a complete set of functionalities for managing products, customers, orders, invoices, feedback, suppliers, and warehouses. The system is built using **Oracle SQL** for database management and **Java (JDBC)** for application logic and connectivity.
3+
Welcome to the **Computer Store Management System** repository! This project is designed to help manage various aspects of a computer store, including products, orders, feedback, and inventory. It is built using Java and Oracle SQL, making it a robust solution for store management.
54

6-
---
5+
[![Download Releases](https://img.shields.io/badge/Download%20Releases-blue.svg)](https://github.com/moazaymanedda/Computer_Store_Management_System/releases)
76

8-
## 🚀 Features
9-
- **Product Management**: Administer various product types such as desktop computers, components, and peripherals.
10-
- **Customer Management**: Store customer profiles and track their purchase history.
11-
- **Order Management**: Manage shopping carts, order statuses, and invoices.
12-
- **Feedback System**: Collect customer reviews and ratings for products.
13-
- **Supplier and Warehouse Management**: Monitor suppliers, warehouse stock levels, and deliveries.
7+
## Table of Contents
148

15-
---
9+
- [Features](#features)
10+
- [Technologies Used](#technologies-used)
11+
- [Installation](#installation)
12+
- [Usage](#usage)
13+
- [Project Structure](#project-structure)
14+
- [Contributing](#contributing)
15+
- [License](#license)
16+
- [Contact](#contact)
1617

18+
## Features
1719

18-
### 🔁 Triggers
19-
Custom triggers are implemented to ensure data integrity and enforce business rules, such as:
20-
- Validating product types in associated tables (`Desktop_racunar`, `Komponenta`, `Periferija`).
20+
- **Product Management**: Easily add, update, and remove products.
21+
- **Order Processing**: Manage customer orders efficiently.
22+
- **Feedback System**: Collect and analyze customer feedback.
23+
- **Inventory Control**: Keep track of stock levels and reorder products as needed.
24+
- **User-Friendly Interface**: Simple and intuitive design for easy navigation.
2125

22-
### 📜 Scripts
23-
- **DDL Script**: SQL script for creating the database schema.
24-
- **DML Script**: Contains sample data for testing purposes.
25-
- **Oracle Data Modeler File**: A `.dmd` file providing a visual data model created using Oracle SQL Developer Data Modeler.
26+
## Technologies Used
2627

27-
---
28+
This project utilizes a combination of technologies:
2829

29-
## 🧰 Technologies Used
30-
| Technology | Description |
31-
|------------|-------------|
32-
| **Database** | Oracle Database 11g |
33-
| **Backend Language** | Java |
34-
| **Database Connectivity** | JDBC |
35-
| **Tools** | Oracle SQL Developer, Oracle SQL Developer Data Modeler, Eclipse IDE |
30+
- **Java**: The primary programming language for building the application.
31+
- **Oracle SQL**: For database management and data storage.
32+
- **JDBC**: Java Database Connectivity for database interactions.
3633

37-
---
34+
## Installation
3835

39-
## 📁 Folder Structure
36+
To set up the Computer Store Management System on your local machine, follow these steps:
4037

41-
```
42-
project-root/
43-
44-
├── docs/ # Documentation and model diagrams
45-
│ ├── ER_Model.png
46-
│ ├── Data_Model_Description.docx
47-
48-
├── sql/ # SQL scripts
49-
│ ├── DDL_Script.ddl
50-
│ └── DML_Script.sql # Rename to .sql for consistency
51-
52-
├── Database data modeler/ # Relational model / metadata
53-
│ ├── Data Model Description.docx # Detailed documentation of the data model and its components
54-
│ ├── Database relational model/ # Additional metadata for the model
55-
56-
├── JDBC/ # Java application
57-
│ ├── src/ # Java source code
58-
│ └── bin/ # Compiled classes
59-
60-
└── README.md # Project documentation
61-
```
62-
63-
---
64-
65-
## ▶️ How to Run
38+
1. **Clone the Repository**:
39+
```bash
40+
git clone https://github.com/moazaymanedda/Computer_Store_Management_System.git
41+
```
6642

67-
1. Start Oracle Database and execute the `DDL_Script.ddl` to create the schema.
68-
2. Run `DML_Script.txt` to populate the database with sample data.
69-
3. Configure JDBC connection parameters in the Java project.
70-
4. Compile and run the Java application.
71-
5. *(Optional)* Open `Database relational model.dmd` in Oracle SQL Developer Data Modeler to visualize or modify the schema.
43+
2. **Navigate to the Project Directory**:
44+
```bash
45+
cd Computer_Store_Management_System
46+
```
7247

73-
---
48+
3. **Set Up Oracle Database**:
49+
- Ensure you have Oracle Database installed and running.
50+
- Create a new database and user for the application.
7451

75-
## 📊 Sample Outputs (Translated from Serbian for clarity)
52+
4. **Configure Database Connection**:
53+
- Open the `config.properties` file and update the database connection details.
7654

77-
> 🔽 The following outputs were originally in Serbian and have been translated into English to improve understanding.
55+
5. **Build the Project**:
56+
- Use your preferred IDE or build tool to compile the Java files.
7857

79-
---
80-
81-
### 1️⃣ View Customer Purchase Statistics
82-
```
83-
Customer Purchase Statistics:
84-
NAME INVOICE COUNT TOTAL SPENT
85-
Petar Petrović 1 85,000.00
86-
Marko Marković 1 65,000.00
87-
Jovana Jovanović 1 3,000.00
88-
```
58+
6. **Run the Application**:
59+
- Execute the main class to start the application.
8960

90-
---
61+
## Usage
9162

92-
### 2️⃣ View Average Product Ratings by Type
93-
```
94-
Average Ratings by Product Type:
95-
PRODUCT TYPE AVERAGE RATING NUMBER OF REVIEWS
96-
Desktop Computer 4.75 2
97-
Component 4.75 2
98-
Peripheral 3.00 1
99-
```
63+
Once the application is running, you can access the user interface to manage the computer store.
10064

101-
---
65+
### Key Functionalities:
10266

103-
### 3️⃣ Detailed Purchase Analysis
104-
```
105-
Detailed Purchase Analysis:
106-
NAME CART STATUS QUANTITY CREATED DATE REVIEWS SATISFACTION
107-
Ana Anić Active 1 2025-01-20 0 0.00
108-
Petar Petrović Closed 2 2025-01-17 1 5.00
109-
Marko Marković Closed 2 2025-01-15 1 4.50
110-
Jovana Jovanović Closed 1 2025-01-10 1 3.00
111-
```
67+
- **Add Products**: Click on the "Add Product" button and fill in the required details.
68+
- **Process Orders**: Navigate to the "Orders" section to view and manage customer orders.
69+
- **View Feedback**: Check the "Feedback" tab to read customer reviews and suggestions.
70+
- **Inventory Management**: Monitor stock levels and reorder products when necessary.
11271

113-
---
72+
For detailed instructions on how to use each feature, please refer to the user manual included in the repository.
11473

115-
### 4️⃣ Product Analysis
116-
```
117-
Product Analysis:
118-
PRODUCT NAME TYPE STOCK ACTIVE CARTS CLOSED CARTS POPULARITY
119-
SSD 1TB Component 30 0 1 20%
120-
Mechanical Keyboard Peripheral 75 1 0 20%
121-
Business PC Desktop 5 0 1 20%
122-
RAM 16GB DDR4 Component 50 0 1 20%
123-
Gaming PC Desktop 10 0 1 20%
124-
```
74+
## Project Structure
12575

126-
---
76+
The project is organized as follows:
12777

128-
### 5️⃣ New Purchase with Feedback (Transaction)
12978
```
130-
New Purchase with Feedback:
131-
Enter Customer ID: 1
132-
Enter Product IDs (comma-separated): 1,2
133-
Enter Payment Method: Card
134-
Enter Rating (1-5): 4
135-
Enter Comment: Excellent product
136-
137-
Successfully created purchase with invoice and feedback.
138-
Cart ID: 5
139-
Purchase completed successfully.
79+
Computer_Store_Management_System/
80+
81+
├── src/ # Source files
82+
│ ├── main/ # Main application files
83+
│ ├── models/ # Data models
84+
│ ├── controllers/ # Business logic
85+
│ └── views/ # User interface components
86+
87+
├── config.properties # Database configuration file
88+
├── README.md # Project documentation
89+
└── LICENSE # License information
14090
```
14191

142-
---
143-
144-
## 📌 Notes
145-
- All outputs are **translated from Serbian** for international users or collaborators.
146-
- The system supports **transactional operations**, such as creating a new purchase with a review, ensuring **ACID compliance**.
147-
148-
## 🗃️ Database Design
149-
150-
The system is based on a **relational database model**, consisting of the following primary entities and their attributes. This structure ensures data consistency, integrity, and supports all core functionalities of the application.
151-
152-
---
153-
154-
### 🏬 Store
155-
Represents a physical or online location where products are sold.
156-
157-
| Attribute | Description |
158-
|------------------|----------------------------------|
159-
| `id_prodavnice` | Unique identifier of the store |
160-
| `naziv` | Store name |
161-
| `adresa` | Store address |
162-
163-
---
164-
165-
### 👨‍💼 Employee
166-
Stores employee information and their role within the store.
167-
168-
| Attribute | Description |
169-
|------------------|--------------------------------------|
170-
| `id_zaposlenog` | Unique identifier of the employee |
171-
| `ime` | First name of the employee |
172-
| `prezime` | Last name of the employee |
173-
| `pozicija` | Job position |
174-
| `plata` | Salary |
175-
176-
---
177-
178-
### 🏢 Warehouse
179-
Represents a storage facility for products.
180-
181-
| Attribute | Description |
182-
|--------------------|--------------------------------------|
183-
| `id_magacina` | Unique identifier of the warehouse |
184-
| `naziv_magacina` | Warehouse name |
185-
| `kapacitet` | Maximum storage capacity |
186-
187-
---
188-
189-
### 📦 Product
190-
Contains information about the products available for sale.
191-
192-
| Attribute | Description |
193-
|------------------|---------------------------------------------------------|
194-
| `id_artikla` | Unique identifier of the product |
195-
| `naziv_artikla` | Product name |
196-
| `cena` | Product price |
197-
| `tip_artikla` | Product type (`Desktop Computer`, `Component`, `Peripheral`) |
198-
| `kol_na_st` | Quantity currently in stock |
199-
200-
---
201-
202-
### 🛒 Shopping Cart
203-
Tracks products added by customers for potential purchase.
204-
205-
| Attribute | Description |
206-
|-------------------|---------------------------------------|
207-
| `id_korpe` | Unique identifier of the shopping cart|
208-
| `datum_kreiranja` | Date the cart was created |
209-
| `status_korpe` | Cart status (`active`, `empty`, etc.) |
210-
211-
---
212-
213-
### 🧾 Invoice
214-
Stores billing information after a purchase is completed.
215-
216-
| Attribute | Description |
217-
|------------------|--------------------------------------|
218-
| `id_racuna` | Unique identifier of the invoice |
219-
| `datum_izdavanja`| Date of invoice creation |
220-
| `ukupan_iznos` | Total amount billed |
221-
| `nacin_placanja` | Payment method (`cash`, `card`, etc.)|
222-
223-
---
224-
225-
### 👤 Customer
226-
Stores personal information about customers.
227-
228-
| Attribute | Description |
229-
|------------------|--------------------------------------|
230-
| `id_kupca` | Unique identifier of the customer |
231-
| `ime_kupca` | Customer's first name |
232-
| `prezime_kupca` | Customer's last name |
233-
234-
---
235-
236-
### ⭐ Feedback
237-
Collects product reviews and ratings submitted by customers.
238-
239-
| Attribute | Description |
240-
|------------------|--------------------------------------|
241-
| `id_utiska` | Unique identifier of the feedback |
242-
| `ocena` | Rating value (1–5) |
243-
| `komentar` | Textual comment |
244-
| `datum_utiska` | Date the feedback was submitted |
92+
## Contributing
24593

246-
---
94+
We welcome contributions from the community! If you would like to contribute, please follow these steps:
24795

248-
### 🚚 Supplier
249-
Contains information about product vendors or suppliers.
96+
1. Fork the repository.
97+
2. Create a new branch for your feature or bug fix.
98+
3. Make your changes and commit them.
99+
4. Push to your forked repository.
100+
5. Submit a pull request.
250101

251-
| Attribute | Description |
252-
|--------------------|--------------------------------------|
253-
| `id_dobavljaca` | Unique identifier of the supplier |
254-
| `naziv_dobavljaca` | Supplier name |
255-
| `kontakt` | Contact information |
102+
Please ensure that your code adheres to the existing coding standards and includes relevant tests.
256103

257-
---
104+
## License
258105

259-
### 🛠️ Services
260-
Represents additional services offered by the store (e.g., technical support).
106+
This project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.
261107

262-
| Attribute | Description |
263-
|------------------|-----------------------------------------------|
264-
| `id_usluge` | Unique identifier of the service |
265-
| `tip_usluge` | Type of service (`repair`, `installation`, etc.) |
266-
| `cena_usluge` | Price of the service |
267-
| `opis_usluge` | Description of the service |
108+
## Contact
268109

269-
---
110+
For questions or suggestions, please reach out:
270111

271-
### 📌 Notes
272-
- All tables use appropriate **primary keys** and **foreign keys** to maintain relational integrity.
273-
- Entity relationships are visualized in the `Database relational model.dmd` file included in the project.
274-
- Triggers are used for **data validation** and **business rule enforcement**, particularly for product type integrity.
112+
- **Name**: Moaz Ayman
113+
- **Email**: moazaymanedda@example.com
114+
- **GitHub**: [moazaymanedda](https://github.com/moazaymanedda)
275115

116+
Feel free to visit the [Releases](https://github.com/moazaymanedda/Computer_Store_Management_System/releases) section for the latest updates and downloads.
276117

277-
---
118+
Thank you for checking out the Computer Store Management System! We hope you find it useful for managing your computer store efficiently.

0 commit comments

Comments
 (0)