This project was made as part of an assignment of the subject 'Databases' at the Faculty of Electrical Engineering in Banja Luka. The project is made as a desktop application using JavaFX.
The Gaming Shop system provides comprehensive management of products, orders, users and other relevant entities, as well as enabling users to search and purchase relevant products. During registration, users can enter their personal data, and for each user, a unique username, password in secure form, first name, last name, and email address are stored. The user can be a customer, employee or administrator. When the customer registers in the system, in addition to the above information, he enters his place of residence and phone number. For a worker, the system records his job position, as well as his salary.
A worker reviews orders from customers (and approves them), checks product availability, also monitors inventory levels, adds new products and updates products, and removes potentially non-existent products. Likewise, advanced users (administrators) are enabled to add and change user accounts. The system allows customers to browse, search and buy various products such as games, consoles, computers, computer components and so on. Customers can view the products and their characteristics, ie. description of the product (name, description, price) and unique specifications (who is the manufacturer, what category is it, the quantity in stock and what is the warranty). Products are categorized by type (components, peripherals, consoles, games, cables) and can be associated with different actions such as price reductions or promotions. Each promotion has a specific percentage discount applied to a specific product.
Customers can view products, add them to the shopping cart and complete orders. Customers are allowed to add products to their shopping cart, where the user can add multiple items to their cart. After that, the customer's order is processed (if the customer chooses), whereby each order is recorded with details about the customer (name, surname, country, city, street name, postal code, email address and phone number), the corresponding purchased product and the quantity of that product, the total price of that selected product (quantity * price of individual product), the total price of the order (total price of all products in the basket) and the order date. Postage may also affect the total price of the entire order. After the order is approved by the worker (ie the order is marked as "sent" and "completed"), an invoice is created in the form of a .txt file on the file system.









