Skip to content

barisgudul/Jeweler-ERP-system-GUI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

14 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

OrbitX Jewelry ERP

Comprehensive ERP System for Modern Jewelry Businesses

Python PyQt6 ReportLab License

Elegant Design, Powerful Functionality, Cosmic Theme

Features β€’ Installation β€’ Usage β€’ Architecture β€’ Contributing


πŸ“‹ Table of Contents


✨ Features

🎯 Core Functionality

  • πŸ” User Management: Multi-user profiles, photo support, secure login
  • πŸ“Š Dashboard: KPI cards, live metrics, quick action buttons
  • πŸ“¦ Stock Management: Category-based inventory, critical stock alerts, labor tracking
  • πŸ‘₯ Customer Accounts: Customer management, debt/credit tracking, transaction history
  • πŸ’° Sales Transactions: Purchase/sales operations, receipt generation, multi-product selection
  • πŸ’Ό Finance Management: Cash/bank operations, income/expense tracking, voucher creation
  • πŸ“‹ Reporting: Date/category/customer filtering, CSV/PDF export
  • βš™οΈ System Parameters: Company information, prefix settings, theme selection

🎨 User Experience

  • 🌌 Cosmic Theme: Starry sky background, modern glass effects
  • πŸŒ™ Multiple Themes: Dark, dim, light theme options
  • πŸ‡ΉπŸ‡· Turkish Localization: Full Turkish support, local date/time format
  • πŸ“± Responsive Design: Screen-size adaptive, intuitive interface
  • ⌨️ Keyboard Shortcuts: Common shortcuts are supported by dialogs (Enter/ESC)

πŸ“„ Document Management

  • 🧾 PDF Receipts: Professional sales receipts, Unicode font support
  • πŸ“Š CSV Export: Stock, customer, finance reports (Excel-compatible)
  • πŸ–¨οΈ Print Support: Direct printer integration

πŸ—οΈ Architecture and Technology

πŸ› οΈ Technology Stack

graph TB
  A["PyQt6 GUI Framework"] --> B["OrbitX Jewelry ERP"]
  C["ReportLab PDF Engine"] --> B
  D["QSS Theme System"] --> B
  E["Future DB Layer (SQLite planned)"] --> B
  F["DejaVu Fonts"] --> B

  B --> G["Login System"]
  B --> H["Dashboard"]
  B --> I["Stock Management"]
  B --> J["Customer Accounts"]
  B --> K["Sales Transactions"]
  B --> L["Finance"]
  B --> M["Reports"]
  B --> N["Parameters"]

Loading

πŸ“ Project Structure

OrbitX_Jewelry_ERP/
β”œβ”€β”€ app/
β”‚   β”œβ”€β”€ __init__.py            # Package initialization
β”‚   β”œβ”€β”€ main.py                # Main application entry point
β”‚   β”œβ”€β”€ theme.py               # QSS-based theme engine
β”‚   β”œβ”€β”€ sidebar.py             # Navigation sidebar
β”‚   β”œβ”€β”€ dialogs.py             # Modal dialog windows
β”‚   β”œβ”€β”€ pages/
β”‚   β”‚   β”œβ”€β”€ __init__.py        # Package initialization
β”‚   β”‚   β”œβ”€β”€ login.py           # User login page
β”‚   β”‚   β”œβ”€β”€ dashboard.py       # Main dashboard panel
β”‚   β”‚   β”œβ”€β”€ stock.py           # Stock management module
β”‚   β”‚   β”œβ”€β”€ customers.py       # Customer account management
β”‚   β”‚   β”œβ”€β”€ sales.py           # Sales transactions
β”‚   β”‚   β”œβ”€β”€ finance.py         # Finance and cash register
β”‚   β”‚   β”œβ”€β”€ reports.py         # Reporting system
β”‚   β”‚   └── parameters.py      # System parameters
β”‚   └── assets/
β”‚       β”œβ”€β”€ fonts/             # Unicode fonts (DejaVu)
β”‚       β”œβ”€β”€ logo.png           # OrbitX logo
β”‚       └── users/             # User avatars
β”œβ”€β”€ receipts/                  # Generated PDF receipts
β”œβ”€β”€ environment.yml            # Conda environment
└── README.md

πŸ”§ Core Components

main.py - Main Application Controller

class MainWindow(QMainWindow):
    """Main window class - Page routing and layout"""
    - Responsive window sizing
    - Sidebar navigation integration
    - Theme application system
    - Inter-page signal connections

theme.py - Theme Management System

SCHEMES = {
    "dark": {...},   # Dark theme
    "dim": {...},    # Medium dark (default)
    "light": {...}   # Light theme
}
  • QSS-based dynamic theming
  • Glass effects and shadow support
  • Responsive color palette
  • Dialog theme integration

sidebar.py - Navigation System

  • OrbitX logo integration
  • Active page indicator
  • Cosmic background animation
  • Responsive button layout

πŸ“¦ Installation

πŸ”§ System Requirements

  • Python: 3.10 or higher
  • RAM: Minimum 4GB
  • Disk: 500MB free space
  • OS: Windows 10/11, macOS 10.15+, Linux

πŸ“₯ Step-by-Step Installation

1. Python Installation

# Check Python version
python --version
# Python 3.10+ required

2. Clone the Repository

git clone https://github.com/your-username/OrbitX_Jewelry_ERP.git
cd OrbitX_Jewelry_ERP

3. Create Virtual Environment

# Windows
python -m venv venv
venv\Scripts\activate

# Linux/macOS
python -m venv venv
source venv/bin/activate

4. Install Dependencies

pip install -r requirements.txt

5. Start the Application

python app/main.py

🐳 Docker Installation (Optional)

FROM python:3.11-slim

WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt

COPY . .
CMD ["python", "app/main.py"]
docker build -t orbitx-erp .
docker run -it --rm orbitx-erp

πŸš€ Usage

πŸ”‘ First Login

  1. Start the application: python app/main.py
  2. Select user: Choose a profile from the left panel
  3. Enter password: Use your configured credentials (demo uses mock auth UI)
  4. Access dashboard: After successful login

πŸ“Š Basic Workflows

New Sales Transaction

  1. Sidebar β†’ Sales page
  2. Click "New Sale" button
  3. Select products: Multi-product selector dialog
  4. Set quantities: Amount/weight for each product
  5. Select customer: From customer account list
  6. Save: PDF receipt automatically generated

Stock Entry

  1. Sidebar β†’ Stock Management
  2. Click "New Stock" button
  3. Product details: Code, category, gram, carat
  4. Price information: Purchase/sale price, labor costs
  5. Critical level: Set alert threshold

Finance Transaction

  1. Sidebar β†’ Cash & Finance
  2. Click "New Record" button
  3. Transaction type: Income/Expense selection
  4. Account: Cash/Bank selection
  5. Category: Income/Expense type
  6. Related account: Link customer/supplier

⌨️ Keyboard Shortcuts

Shortcut Action
ESC Close dialog/Cancel window
Enter Submit form/Confirm save
Ctrl+S Save (where implemented)
Ctrl+N New record (where implemented)

πŸ“– Detailed Module Descriptions

πŸ” Login System (login.py)

Features:

  • Multi-user profiles with photo support
  • Rotating banner system (product images)
  • Password visibility toggle
  • Responsive grid layout
  • Turkish date/time display

Security:

  • Mock authentication (should be replaced with real auth in production)
  • Profile management (add/edit/delete)
  • Avatar system (circular cropping)

πŸ“Š Dashboard (dashboard.py)

KPI Indicators:

  • Gold per Gram: Live price information
  • Daily Sales: Today's total transactions
  • Total Stock Value: Inventory value
  • Monthly Turnover: Monthly total sales
  • Pending Payment: Supplier debts
  • Critical Stock: Low-level products

Quick Access:

  • New Sales Transaction
  • Add New Customer
  • New Stock Entry
  • Reports

πŸ“¦ Stock Management (stock.py)

Product Categories:

  • Bracelet, Ring, Necklace
  • Ingot, Gram (gold types)

Detailed Tracking:

  • Millesimal: Purity degree (22K = 916.00)
  • Carat: Carat information (22, 24)
  • Gram: Weight
  • Quantity: Stock amount
  • Labor: Received/given labor costs
  • VAT: Tax rate

Features:

  • Critical stock alerts (color coding)
  • Search and filtering
  • Bulk editing
  • Excel export

πŸ‘₯ Customer Accounts (customers.py)

Customer Information:

  • Code: Unique customer code (CAR0001 format)
  • Name Surname: Customer name
  • Phone: Contact number
  • Balance: Debt/credit status
  • Last Transaction: Last transaction date
  • Status: Active/Passive

Functions:

  • Search and filtering
  • Debt/credit tracking
  • Transaction history
  • PDF/Excel export

πŸ’° Sales Transactions (sales.py)

Transaction Types:

  • Purchase: Product entry from supplier
  • Sale: Product exit to customer

PDF Receipt System:

  • ReportLab integration
  • Unicode font support (Turkish characters)
  • Professional layout
  • Automatic numbering

Multi-Product Selection:

  • Batch selection dialog
  • Dynamic quantity adjustment
  • Total calculation

πŸ’Ό Finance Management (finance.py)

Account Types:

  • Cash: Cash operations
  • Bank: VakΔ±fBank, Ziraat accounts

Transaction Categories:

  • Income: Sales collection, customer payment
  • Expense: Expense, supplier payment, rent

Voucher System:

  • Expense voucher creation
  • Date/time stamp
  • Related account linking

πŸ“‹ Reporting (reports.py)

Filter Options:

  • Date range: Start/end dates
  • Transaction type: Purchase/Sale/All
  • Account: Customer-based filter
  • Category: Product category

Export:

  • CSV format: Excel compatible
  • PDF reports: Professional layout
  • Print support: Direct printer

βš™οΈ Parameters (parameters.py)

System Settings:

  • Company information: Name, tax no, address
  • Code prefixes: SAT-, CAR- formats
  • Number digits: 6-digit numbering
  • Currency: TRY, USD, EUR
  • Reset period: Annual/Monthly
  • Theme selection: Dark/Dim/Light

🎨 Theme System

πŸŒ™ Available Themes

Dark Theme

PRIMARY: #5B8CFF    /* Primary blue */
BG: #0C1016        /* Dark background */
TEXT: #E9EDF2      /* Light text */
SURFACE: rgba(22,28,38,0.92)  /* Glass effect */

Dim Theme (Default)

PRIMARY: #4C7DFF    /* Medium blue */
BG: #171C23        /* Medium dark */
TEXT: #F1F4F8      /* Very light text */
SURFACE: rgba(28,34,44,0.96)  /* Transparent surface */

Light Theme

PRIMARY: #3C6DFF    /* Dark blue */
BG: #F5F7FA        /* Light background */
TEXT: #1B2430      /* Dark text */
SURFACE: #FFFFFF   /* White surface */

🎭 Special Effects

  • Glass Effect: Transparent glass-like surfaces
  • Elevation: Shadow effects for depth
  • Cosmic Background: Animated starry sky
  • Smooth Transitions: Smooth transition animations

πŸ“Š Data Management

πŸ—„οΈ Data Structure

# Stock record example
stock_record = {
    "Code": "STK0123",
    "Category": "Ring",
    "Name": "22K Ring",
    "Millesimal": 916.00,
    "Carat": 22,
    "Gram": 5.20,
    "Quantity": 3,
    "PurchasePrice": 1250.00,
    "SalePrice": 1450.00,
    "LaborType": "Millesimal",
    "LaborReceived": 15.50,
    "LaborGiven": 18.75,
    "VAT": 20.00,
    "CriticalStock": 5
}

πŸ’Ύ Persistence

  • Parameters via QSettings; business data currently seeded in-memory. A SQLite persistence layer is planned.
  • JSON configuration files
  • PDF receipt archive
  • CSV export (Excel-compatible)

πŸ”„ Data Flow

User Login β†’ Dashboard KPIs β†’ Transaction Modules β†’ Data Saving β†’ Reporting

πŸ”§ Developer Guide

πŸƒβ€β™‚οΈ Quick Start

from PyQt6.QtWidgets import QApplication
from app.main import MainWindow
from app.theme import apply_theme

app = QApplication([])
apply_theme(app, scheme="dim")
window = MainWindow()
window.show()
app.exec()

πŸ§ͺ Creating Test Data

# Mock data generator
from app.pages.stock import generate_rows
test_stock = generate_rows(50)  # 50 test products

πŸ”Œ Adding New Module

  1. Create page class (pages/new_module.py)
  2. Import in main.py
  3. Add button to sidebar
  4. Set up route mapping

🎨 Theme Extension

# Add new theme
SCHEMES["custom"] = {
    "PRIMARY": "#FF6B6B",
    "BG": "#2D1B69",
    "TEXT": "#FFFFFF",
    # ... other colors
}

πŸ“‹ Code Standards

  • PEP 8 compliance
  • Type hints usage
  • English docstrings
  • Modular structure

πŸ“ˆ Performance and Scalability

⚑ Optimization Features

  • Lazy loading table data
  • Pagination for large lists
  • Background processing report generation
  • Memory efficient image processing

πŸ“Š Scalability

  • Modular architecture for new features
  • Database abstraction for different DB support
  • API-ready structure (for future web version)
  • Plugin system potential

πŸ” Monitoring

  • Memory usage tracking
  • Query performance logging
  • Error handling centralized system
  • User action logging

πŸ”’ Security

πŸ›‘οΈ Current Security

  • Input validation across dialogs and fields
  • PDF generation with embedded fonts (Unicode/Turkish support)
  • Dialog-based access (no web surface)
  • In-memory data isolation

πŸ” Security Improvements

# Example: Password hashing
import bcrypt

def hash_password(password: str) -> str:
    return bcrypt.hashpw(password.encode(), bcrypt.gensalt())

def verify_password(password: str, hashed: str) -> bool:
    return bcrypt.checkpw(password.encode(), hashed.encode())

πŸ“‹ Future Security Enhancements

  • Real authentication system (replace mock UI)
  • Database encryption for data persistence
  • Audit logging for transaction tracking
  • Role-based access control
  • Automatic backups and data recovery

πŸ“– Documentation

For now, this README serves as the main guide. Additional documentation can be found in:

  • Inline docstrings in pages/*.py and dialogs.py
  • Code comments throughout the application
  • GitHub Issues for bug reports and feature requests
  • GitHub Discussions for community questions

A comprehensive developer wiki and user manual are planned for future releases.

πŸ“‹ Requirements

Python Packages

PyQt6>=6.6            # Modern GUI framework (actively maintained)
reportlab>=4.0        # PDF generation and receipts

Optional Dependencies

pillow>=9.0           # Only if you need additional image processing
bcrypt>=4.0           # For future authentication system
pandas>=1.5.0         # For advanced data analysis (planned)
openpyxl>=3.0.0       # For direct Excel file support (planned)

System Requirements

  • OS: Windows 10+, macOS 10.15+, Ubuntu 18.04+
  • Python: 3.10 - 3.12
  • RAM: 4GB minimum, 8GB recommended
  • Disk: 500MB application + data space

πŸ”§ Development Environment

# Development dependencies
pip install black flake8 mypy pytest

# Code quality control
black .                    # Code formatting
flake8 .                   # Lint checking
mypy .                     # Type checking
pytest                     # Test running

🀝 Contributing

πŸš€ How to Contribute

  1. Fork the repo: https://github.com/your-username/OrbitX_Jewelry_ERP/fork
  2. Create branch: git checkout -b feature/new-feature
  3. Make changes and commit
  4. Push: git push origin feature/new-feature
  5. Create Pull Request

πŸ“ Coding Standards

# βœ… Correct: With type hints
def calculate_total(price: float, quantity: int) -> float:
    """Calculate total amount."""
    return price * quantity

# ❌ Wrong: Without type hints
def calculate_total(price, quantity):
    return price * quantity

πŸ§ͺ Writing Tests

def test_sales_calculation():
    """Test sales total calculation."""
    price = 100.0
    quantity = 5
    vat = 20.0

    total = calculate_sales_total(price, quantity, vat)
    assert total == 600.0  # 500 + 100 VAT

πŸ“š Documentation

  • README updates
  • English docstrings
  • Explanatory code comments
  • API documentation

πŸ“„ License

This project is licensed under the MIT License.

MIT License

Copyright (c) 2025 OrbitX Jewelry ERP

This software and associated documentation files ("Software") are freely
available to any person for any purpose, and may be copied, modified, and distributed.

See LICENSE for details.


πŸ™ Acknowledgments

🀝 Contributors

  • Project Developer: [Name Surname]
  • UI/UX Design: OrbitX Design Team
  • Testing and QA: Beta users

πŸ“š Technologies Used

🌟 Inspiration Sources

  • Material Design: Modern UI principles
  • Cosmic Theme: Science fiction aesthetics
  • Turkish UX: Local user experience

OrbitX Jewelry ERP - Modern, reliable solution for jewelry businesses

⭐ If this project is helpful, don't forget to star it!

Releases

No releases published

Packages

 
 
 

Contributors

Languages