{"id":27306267,"url":"https://github.com/markokolarski/computer_store_management_system","last_synced_at":"2026-04-27T11:32:06.043Z","repository":{"id":287292535,"uuid":"964230886","full_name":"MarkoKolarski/Computer_Store_Management_System","owner":"MarkoKolarski","description":"Java + Oracle SQL system for managing a computer store — products, orders, feedback, and inventory.","archived":false,"fork":false,"pushed_at":"2025-04-10T23:53:10.000Z","size":247,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-12T03:59:09.989Z","etag":null,"topics":["computer-store","data-modeling","database","inventory","java","jdbc","oracle","oracle-sql","sql","store-management"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MarkoKolarski.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-04-10T22:23:21.000Z","updated_at":"2025-04-11T00:00:34.000Z","dependencies_parsed_at":"2025-04-11T00:38:59.689Z","dependency_job_id":null,"html_url":"https://github.com/MarkoKolarski/Computer_Store_Management_System","commit_stats":null,"previous_names":["markokolarski/computer_store_management_system"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarkoKolarski%2FComputer_Store_Management_System","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarkoKolarski%2FComputer_Store_Management_System/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarkoKolarski%2FComputer_Store_Management_System/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarkoKolarski%2FComputer_Store_Management_System/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MarkoKolarski","download_url":"https://codeload.github.com/MarkoKolarski/Computer_Store_Management_System/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248514201,"owners_count":21116900,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["computer-store","data-modeling","database","inventory","java","jdbc","oracle","oracle-sql","sql","store-management"],"created_at":"2025-04-12T03:59:16.582Z","updated_at":"2026-04-27T11:32:06.036Z","avatar_url":"https://github.com/MarkoKolarski.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 💻 Computer Store Management System\n\n![Java](https://img.shields.io/badge/Java-JDK%208+-blue?logo=java)\n![JDBC](https://img.shields.io/badge/JDBC-Java%20Database%20Connectivity-yellow?logo=oracle)\n![SQL Developer](https://img.shields.io/badge/SQL%20Developer-Oracle-blue?logo=oracle)\n![Data Modeler](https://img.shields.io/badge/Data%20Modeler-Oracle%20SQL%20Developer%20Data%20Modeler-orange?logo=oracle)\n![Relational Model](https://img.shields.io/badge/Relational%20Model-Enabled-green)\n![ACID](https://img.shields.io/badge/ACID-Supported-critical)\n\n## 📘 Project Description\nThe **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.\n\n---\n\n## 🚀 Features\n- **Product Management**: Administer various product types such as desktop computers, components, and peripherals.\n- **Customer Management**: Store customer profiles and track their purchase history.\n- **Order Management**: Manage shopping carts, order statuses, and invoices.\n- **Feedback System**: Collect customer reviews and ratings for products.\n- **Supplier and Warehouse Management**: Monitor suppliers, warehouse stock levels, and deliveries.\n\n---\n\n\n### 🔁 Triggers\nCustom triggers are implemented to ensure data integrity and enforce business rules, such as:\n- Validating product types in associated tables (`Desktop_racunar`, `Komponenta`, `Periferija`).\n\n### 📜 Scripts\n- **DDL Script**: SQL script for creating the database schema.\n- **DML Script**: Contains sample data for testing purposes.\n- **Oracle Data Modeler File**: A `.dmd` file providing a visual data model created using Oracle SQL Developer Data Modeler.\n\n---\n\n## 🧰 Technologies Used\n| Technology | Description |\n|------------|-------------|\n| **Database** | Oracle Database 11g |\n| **Backend Language** | Java |\n| **Database Connectivity** | JDBC |\n| **Tools** | Oracle SQL Developer, Oracle SQL Developer Data Modeler, Eclipse IDE |\n\n---\n\n## 📁 Folder Structure\n\n```\nproject-root/\n│\n├── docs/                             # Documentation and model diagrams\n│   ├── ER_Model.png\n│   ├── Data_Model_Description.docx\n│\n├── sql/                              # SQL scripts\n│   ├── DDL_Script.ddl\n│   └── DML_Script.sql                # Rename to .sql for consistency\n│\n├── Database data modeler/           # Relational model / metadata\n│   ├── Data Model Description.docx   # Detailed documentation of the data model and its components \n│   ├── Database relational model/    # Additional metadata for the model\n│\n├── JDBC/                             # Java application\n│   ├── src/                          # Java source code\n│   └── bin/                          # Compiled classes\n│\n└── README.md                         # Project documentation\n```\n\n---\n\n## ▶️ How to Run\n\n1. Start Oracle Database and execute the `DDL_Script.ddl` to create the schema.\n2. Run `DML_Script.txt` to populate the database with sample data.\n3. Configure JDBC connection parameters in the Java project.\n4. Compile and run the Java application.\n5. *(Optional)* Open `Database relational model.dmd` in Oracle SQL Developer Data Modeler to visualize or modify the schema.\n\n---\n\n## 📊 Sample Outputs\n\n\u003e 🔽 The following outputs were originally in Serbian and have been translated into English to improve understanding.\n\n\n\n### 1️⃣ View Customer Purchase Statistics\n```\nCustomer Purchase Statistics:\nNAME                    INVOICE COUNT     TOTAL SPENT\nPetar Petrović          1                 85,000.00\nMarko Marković          1                 65,000.00\nJovana Jovanović        1                 3,000.00\n```\n\n---\n\n### 2️⃣ View Average Product Ratings by Type\n```\nAverage Ratings by Product Type:\nPRODUCT TYPE           AVERAGE RATING     NUMBER OF REVIEWS\nDesktop Computer       4.75               2\nComponent              4.75               2\nPeripheral             3.00               1\n```\n\n---\n\n### 3️⃣ Detailed Purchase Analysis\n```\nDetailed Purchase Analysis:\nNAME                    CART STATUS    QUANTITY    CREATED DATE    REVIEWS    SATISFACTION\nAna Anić                Active         1           2025-01-20       0          0.00\nPetar Petrović          Closed         2           2025-01-17       1          5.00\nMarko Marković          Closed         2           2025-01-15       1          4.50\nJovana Jovanović        Closed         1           2025-01-10       1          3.00\n```\n\n---\n\n### 4️⃣ Product Analysis\n```\nProduct Analysis:\nPRODUCT NAME            TYPE             STOCK         ACTIVE CARTS    CLOSED CARTS    POPULARITY\nSSD 1TB                 Component        30            0               1               20%\nMechanical Keyboard     Peripheral       75            1               0               20%\nBusiness PC             Desktop          5             0               1               20%\nRAM 16GB DDR4           Component        50            0               1               20%\nGaming PC               Desktop          10            0               1               20%\n```\n\n---\n\n### 5️⃣ New Purchase with Feedback (Transaction)\n```\nNew Purchase with Feedback:\nEnter Customer ID: 1\nEnter Product IDs (comma-separated): 1,2\nEnter Payment Method: Card\nEnter Rating (1-5): 4\nEnter Comment: Excellent product\n\nSuccessfully created purchase with invoice and feedback.\nCart ID: 5\nPurchase completed successfully.\n```\n\n---\n\n## 📌 Note\n- The system supports **transactional operations**, such as creating a new purchase with a review, ensuring **ACID compliance**.\n\n## 🗃️ Database Design\n\nThe 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.\n\n---\n\n### 🏬 Store\nRepresents a physical or online location where products are sold.\n\n| Attribute         | Description                      |\n|------------------|----------------------------------|\n| `id_prodavnice`  | Unique identifier of the store   |\n| `naziv`          | Store name                       |\n| `adresa`         | Store address                    |\n\n---\n\n### 👨‍💼 Employee\nStores employee information and their role within the store.\n\n| Attribute         | Description                          |\n|------------------|--------------------------------------|\n| `id_zaposlenog`  | Unique identifier of the employee    |\n| `ime`            | First name of the employee           |\n| `prezime`        | Last name of the employee            |\n| `pozicija`       | Job position                         |\n| `plata`          | Salary                               |\n\n---\n\n### 🏢 Warehouse\nRepresents a storage facility for products.\n\n| Attribute           | Description                          |\n|--------------------|--------------------------------------|\n| `id_magacina`      | Unique identifier of the warehouse   |\n| `naziv_magacina`   | Warehouse name                       |\n| `kapacitet`        | Maximum storage capacity             |\n\n---\n\n### 📦 Product\nContains information about the products available for sale.\n\n| Attribute         | Description                                             |\n|------------------|---------------------------------------------------------|\n| `id_artikla`     | Unique identifier of the product                        |\n| `naziv_artikla`  | Product name                                            |\n| `cena`           | Product price                                           |\n| `tip_artikla`    | Product type (`Desktop Computer`, `Component`, `Peripheral`) |\n| `kol_na_st`      | Quantity currently in stock                             |\n\n---\n\n### 🛒 Shopping Cart\nTracks products added by customers for potential purchase.\n\n| Attribute          | Description                           |\n|-------------------|---------------------------------------|\n| `id_korpe`        | Unique identifier of the shopping cart|\n| `datum_kreiranja` | Date the cart was created             |\n| `status_korpe`    | Cart status (`active`, `empty`, etc.) |\n\n---\n\n### 🧾 Invoice\nStores billing information after a purchase is completed.\n\n| Attribute         | Description                          |\n|------------------|--------------------------------------|\n| `id_racuna`      | Unique identifier of the invoice     |\n| `datum_izdavanja`| Date of invoice creation             |\n| `ukupan_iznos`   | Total amount billed                  |\n| `nacin_placanja` | Payment method (`cash`, `card`, etc.)|\n\n---\n\n### 👤 Customer\nStores personal information about customers.\n\n| Attribute         | Description                          |\n|------------------|--------------------------------------|\n| `id_kupca`       | Unique identifier of the customer    |\n| `ime_kupca`      | Customer's first name                |\n| `prezime_kupca`  | Customer's last name                 |\n\n---\n\n### ⭐ Feedback\nCollects product reviews and ratings submitted by customers.\n\n| Attribute         | Description                          |\n|------------------|--------------------------------------|\n| `id_utiska`      | Unique identifier of the feedback    |\n| `ocena`          | Rating value (1–5)                   |\n| `komentar`       | Textual comment                      |\n| `datum_utiska`   | Date the feedback was submitted      |\n\n---\n\n### 🚚 Supplier\nContains information about product vendors or suppliers.\n\n| Attribute           | Description                          |\n|--------------------|--------------------------------------|\n| `id_dobavljaca`    | Unique identifier of the supplier    |\n| `naziv_dobavljaca` | Supplier name                        |\n| `kontakt`          | Contact information                  |\n\n---\n\n### 🛠️ Services\nRepresents additional services offered by the store (e.g., technical support).\n\n| Attribute         | Description                                   |\n|------------------|-----------------------------------------------|\n| `id_usluge`      | Unique identifier of the service              |\n| `tip_usluge`     | Type of service (`repair`, `installation`, etc.) |\n| `cena_usluge`    | Price of the service                          |\n| `opis_usluge`    | Description of the service                    |\n\n---\n\n### 📌 Notes\n- All tables use appropriate **primary keys** and **foreign keys** to maintain relational integrity.\n- Entity relationships are visualized in the `Database relational model.dmd` file included in the project.\n- Triggers are used for **data validation** and **business rule enforcement**, particularly for product type integrity.\n\n\n---\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarkokolarski%2Fcomputer_store_management_system","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmarkokolarski%2Fcomputer_store_management_system","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarkokolarski%2Fcomputer_store_management_system/lists"}