{"id":27332140,"url":"https://github.com/ret2hell/e-commerce-console-application","last_synced_at":"2025-04-12T13:47:16.235Z","repository":{"id":214906791,"uuid":"737643950","full_name":"Ret2Hell/E-Commerce-Console-Application","owner":"Ret2Hell","description":null,"archived":false,"fork":false,"pushed_at":"2023-12-31T22:28:23.000Z","size":0,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2023-12-31T23:20:53.387Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/Ret2Hell.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}},"created_at":"2023-12-31T22:20:29.000Z","updated_at":"2023-12-31T23:20:55.342Z","dependencies_parsed_at":"2023-12-31T23:31:01.365Z","dependency_job_id":null,"html_url":"https://github.com/Ret2Hell/E-Commerce-Console-Application","commit_stats":null,"previous_names":["ret2hell/e-commerce-console-application"],"tags_count":0,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ret2Hell%2FE-Commerce-Console-Application","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ret2Hell%2FE-Commerce-Console-Application/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ret2Hell%2FE-Commerce-Console-Application/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ret2Hell%2FE-Commerce-Console-Application/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Ret2Hell","download_url":"https://codeload.github.com/Ret2Hell/E-Commerce-Console-Application/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248575008,"owners_count":21127104,"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":[],"created_at":"2025-04-12T13:47:15.848Z","updated_at":"2025-04-12T13:47:16.221Z","avatar_url":"https://github.com/Ret2Hell.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# E-Commerce Console Application\n\n## Overview\nThis project is an interactive shopping system where users can browse through various categories of products like Laptops, Phones, TVs, and Fashion items, add them to their cart, and simulate a checkout process.\n## Features\n\n### User Authentication\n- A login/logout system.\n- Define roles and manage access levels (customer, admin).\n- The application supports multiple admins.\n- The application supports multiple customers.\n- The user will be asked to choose his profile type at first (Admin or Customer), then he will be asked whether to sign up or login.\n- Sign up: The user will be asked to enter his username and password and confirm it, The username and password will be saved in a file for future logins(admin_login.txt or customer_login.txt).\n- Login: The user will be asked to enter his username and password, if the username and password are correct(The program will search in the file for a matching username/password), the user will be logged in, otherwise, an error message will be printed.\n\n### ProductManagement\n- When an admin logs in, he will be able to add a new product, update an existing product, view the products, or delete a product.\n- Added products will be saved in a file (TV.txt/Phone.txt/....) and will be loaded when the program starts.\n- Note: When adding a new product or modifying an existing one, the Product ID should be unique and TV ID: from 0 to 999 Phone ID: from 1000 to 1999 Laptop ID: from 2000 to 2999 Fashion ID: from 3000 to 3999. Of course, the isUniqueId and isIdInRange methods will be used to check the validity of the ID. Just make sure not to change the ID of an existing product manually in the files to ensure the stability of the program.\n\n### Dynamic Product Search and Filtering\n- When a Customer logs in, he will be able to view the products by category, search for a product by name, or filter the products by price range.\n\n### Shopping Cart\n- When a customer logs in, and search for the products he wants, he will be able to add the product to the cart, update the quantity of the product in the cart, or remove the product from the cart.\n- A customer will be able to see the products in his cart and can choose to check out or continue shopping.\n\n### Shipping Options\n- When a customer chooses to check out, he will be asked to choose the shipping method (Home Delivery or Pick-up in Store).\n- Then the customer will be asked to enter his personnel information (Fullname/Address/Phone number/...).\n- Note: The Home Delivery option will add 10$ to the total price.\n\n### Discounts\n- The application supports discounts.\n- When a customer chooses to check out, he will be asked if he has a discount code, if yes, he will be asked to enter the discount code, if the discount code is valid, the discount will be applied to the total price, otherwise, an error message will be printed.\n- Note: The discount code is a 8-digit number, and the discount amount depends on the code itself.\n- Note: The discount codes are saved in a file (Codes.txt) in this format: Code,DiscountAmount. You can pick the code you want and try it.\n\n### Payment Processing\n- When a customer chooses to check out, he will be asked to choose the payment method (Payment upon Delivery/Receiving or Credit Card).\n- If the customer chooses to pay by Credit Card, he will be asked to enter his Credit Card information (Card Number/Expiration Date/...).\n\n### Order Processing\n- After a successful checkout, the order details will be saved in a file (transactions.txt).\n\n### Inventory Management\n- The inventory class role is to decrease the quantity of purchased products in the files (TV.txt/Phone.txt/....) after a successful checkout.\n- When the customer adds a product to the cart, there will be a check to make sure that the quantity of the product is available in the inventory, otherwise, an error message will be printed.\n\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fret2hell%2Fe-commerce-console-application","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fret2hell%2Fe-commerce-console-application","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fret2hell%2Fe-commerce-console-application/lists"}