An open API service indexing awesome lists of open source software.

https://github.com/ecopque/grocerystore_project

This project is an inventory and sales management system developed using pure Python, focusing on simplicity and organization. The system adopts the Model-View-Controller (MVC) architecture to ensure a well-defined and maintainable codebase. The goal was to create a solution using Python concepts, avoiding functions.
https://github.com/ecopque/grocerystore_project

model-view-controller python3

Last synced: 10 months ago
JSON representation

This project is an inventory and sales management system developed using pure Python, focusing on simplicity and organization. The system adopts the Model-View-Controller (MVC) architecture to ensure a well-defined and maintainable codebase. The goal was to create a solution using Python concepts, avoiding functions.

Awesome Lists containing this project

README

          

![LastCommit-Ecommerce_Project](https://img.shields.io/github/last-commit/ecopque/grocerystore_project?logo=&logoColor=white&label=/grocerystore_project&color=9bf12&&style=flat) 
# Grocery Store Project

## Inventory and Sales Management System

This project is an inventory and sales management system developed using pure Python, focusing on simplicity and organization. The system adopts the Model-View-Controller (MVC) architecture to ensure a well-defined and maintainable codebase. The goal was to create a solution using Python concepts, avoiding functions like `map`, `filter`, `lambda`, and others.

This is a real-world project, designed and implemented for use in grocery stores. It efficiently manages inventory, tracks sales, and generates reports to help store owners maintain control over stock levels and sales performance.

IDE:
![readme](https://github.com/ecopque/grocerystore_project/blob/main/prints/Screenshot%20from%202024-12-31%2010-41-30.png)

## Technologies Used

- **Python 3.11**: The main programming language used to develop the project.
- **MVC Architecture**: A design pattern used to separate concerns and responsibilities.
- **File System**: Utilization of text files to store data (e.g., categories, customers, products).

## Project Structure

The project is organized into three main layers according to the MVC architecture:

- **Model**: Represents the data and the interactions with the data storage (text files).
- **View**: Contains the user interface (UI), which is command-line-based.
- **Controller**: Handles business logic and interacts with both the Models and Views.
- **DAO**: Manages data interactions with the text files, providing methods for reading, writing, and updating data.

mind map:

![readme](https://github.com/ecopque/grocerystore_project/blob/main/prints/Grocery_Store_mindmap.png)

## Features

The system offers the following features, divided by operation categories:

### 1. **Categories**:
- Register, remove, update, and list categories.

### 2. **Inventory/Stock**:
- Register, remove, update, and view products.

### 3. **Suppliers**:
- Register, remove, update, and list suppliers.

### 4. **Customers**:
- Register, remove, update, and view customers.

### 5. **Employees**:
- Register, remove, update, and list employees.

### 6. **Sales**:
- Register new sales.
- Generate total sales reports.
- Show sales within a specific date range.

## Execution

Once the application starts, you will be presented with an interactive menu in the terminal that allows you to manage categories, inventory, suppliers, customers, employees, and sales. Each category has its own submenu for interacting with the system.

terminal:

![readme](https://github.com/ecopque/grocerystore_project/blob/main/prints/Screenshot%20from%202024-12-31%2010-33-05.png)

## Final Considerations

This project was developed with the goal of learning and applying pure Python concepts, as well as the MVC architecture. The choice to use Python without external dependencies was made to keep the code simple and easy to understand. The inventory and sales management features are implemented in a modular way, ensuring maintainability and readability.

## Contributions

If you'd like to contribute to this project, feel free to open a pull request with improvements or bug fixes!