Leer este Readme en español <--
Full Documentation (English) <--
Web application to control Stock, Customers and Orders for a small business.
Originally the web application El Canario Regionales was created for the management of a small business of regional articles from Argentina (@elcanario.regionales), although its use can be general for any CRM business. Given its nature and scalability it would be a matter of replacing logos, fonts and some other small things. Using DaisyUI this becomes very simple.
- Create, edit, delete customers.
- Creates, edits, deletes items for articles
- Creates, edits or deletes categories for articles
- Creates, edits or deletes values related to a specific category (to relate them to a specific article)
- Creates, edits or deletes categories for articles
- Create, edit, delete orders.
- Automatic creation of log of actions displayed on the main panel (desktop)
- Full authentication system
- Login (or register) with Google account
- Registration
- Login with Google account
- Password recovery
- Email confirmation (not mandatory for practical purposes)
- Dual authentication system (2FA) (not mandatory for practical purposes)
- and much more...
- Filtering of Cards (objects [Customers, Orders, Items]) based on any of their attributes (Implemented HTMX dynamic page)
- Install the application on your cell phone (Progressive web application)
git clone https://github.com/DarthKenar/ElCanarioRegionales.git
pip install pdm
pdm install
pdm migrate
pdm server
py -m venv enviroment_name
source enviroment_name/bin/activate
pip install -r requirements.txt
cd ElCanarioRegionales
cd elCanario
cd dir
py manage.py migrate
py manage.py runserver
If a local server is used, the google login function will not be available because the google credentials are not available. For more information: Google credentials
erDiagram
Article one or zero to many ArticleValue : characteristics_id
Article |o--|| ArticlePromotion : in
Article |o--|| ArticleOrder : in
ArticleValue |o--|| Value : get
ArticleValue |o--|| Category : get
Value |o--|| Category : get
ArticlePromotion |o--|| Promotion : get
ArticleOrder |o--|| Order : get
Order |o--|| Customer : places
Article {
id BigAutoField
image Imagefield
name CharField
buy_price DecimalField
increase DecimalField
sell_price DecimalField
stock PositiveSmallIntergerField
}
ArticleValue {
id BigAutoField
article_id ForeingKey
category_id ForeingKey
value_id ForeingKey
}
ArticlePromotion {
id BigAutoField
article_id ForeingKey
promotion_id ForeingKey
}
ArticleOrder {
id BigAutoField
article_id ForeingKey
order_id ForeingKey
}
Value {
id BigAutoField
name CharField
category_id ForeingKey
}
Category {
id BigAutoField
name CharField
}
Promotion {
id BigAutoField
name CharField
discount DecimalField
remainder SmallIntergerField
sell_price DecimalField
}
Order {
id BigAutoField
customer_id ForeingKey
article_quantity PositiveSmallIntergerField
creation_date DateTimeField
delivery_status BooleanDield
details TextField
total_pay DecimalField
updated_date DateTimeField
}
Customer {
id BigAutoField
address CharField
email EmailField
name CharField
phone_number CharField
}