- Rauf Kutay Akyıldız: github.com/RaufkAk
- Eren Acar: github.com/Eren-Acar
This project was designed for Yeditepe University Faculty of Computer and Information Sciences for ACM 321 - Object-Oriented Programming course (2024-2025 Fall). The work is targeted at shops (groceries, cookware, etc.) to save their existing stock details, complete the sales process in a short time, and deliver, in the best way possible and with the correct quantity of data, accurate inventory data, and to improve the management of the shop as a whole. With this system, it is possible to track product condition, sales, and manage inventory. The realized project is developed as a Java program using SQLite as the database management system and the Swing framework for the graphical user interface.
- Login, Register, and Logout: Allows users to safely log in and out of the system. User information is encrypted using SHA-256.
- CRUD Operations: Add, update, delete, and list functions for products, categories, customers, and orders.
- Statistical Data: Various reports and statistics based on sales and product information are shown on dashboards.
- Inventory Management: Add, edit, and delete product and category information.
- Sales Management: Create invoices and track customer orders.
- Customer Management: Store customer information and manage sales relationships.
- CSV Support: Data import/export is supported for categories, products, and customers.
- Graphical Interface: A user-friendly interface designed using Java Swing.
- Database Management: Reliable data storage provided by a relational database using SQLite.
- Business Logic Layer: Core functions such as CRUD operations, stock control, and sales management are handled here.
The database structure is organized to correctly link products in stock, customers, and sales. Key tables include:
- CustomerTable: Stores customer information.
- CategoryTable: Contains product categories.
- ProductTable: Manages product information.
- InvoiceTable: Holds invoice and payment details.
- Classes and Objects: Each panel (e.g.,
CustomerAddPanel
,OrderAddPanel
) has its own methods to perform specific tasks. - Inheritance: Panels are derived from the
JPanel
class to manage events and user interactions. - Polymorphism: Button actions are handled using
ActionListener
to perform context-specific tasks.