NEXORA ERP, insbesondere für Toptan Gıda ve Dağıtım Şirketleri operasyonlarını uçtan uca yönetmek üzere geliştirilmiş, tam kapsamlı, kurumsal seviyede bir Full-Stack ERP ve Dağıtım Yönetim Sistemi web uygulamasıdır.
Sistem sadece basit bir CRUD paneli veya taslak arayüz değil; Kullanıcı Yetkilendirme (RBAC), Stok, Depo, Satın Alma, Satış, Müşteri, Tedarikçi, Sipariş, Sevkiyat, Faturalama, Cari Hesap, Finans, Raporlama ve Audit Logging süreçlerini birbirine bağlı ve gerçek zamanlı iş kurallarıyla (Business Logic) yöneten profesyonel bir yazılım ürünüdür.
- Werkzeug Password Hashing: Şifreler güvenli hash formatında saklanır.
- Flask-Login Session Yönetimi: Oturum ve beni hatırla mekanizması.
- 5 Hazır Sistem Rolü:
Admin: Tüm modüllere ve ayarlar/işlem loglarına tam erişim.Yönetici: Dashboard, raporlar, satış, satın alma, stok ve finans erişimi.Satış Personeli: Müşteriler, teklifler, satış siparişleri.Depo Personeli: Ürünler, stok hareketleri, depolar arası transfer, lot/SKT takibi, sevkiyat.Muhasebe: Faturalar, cari hesaplar, tahsilat, ödeme ve finans raporları.
- Backend seviyesinde yetkilendirme (
@role_requiredve@permission_requireddekoratörleri).
- Gerçek Zamanlı KPI Kartları: Toplam Satış, Bugünkü Satış, Bekleyen Sipariş, Kritik Stok, Bekleyen Tahsilat ve Bu Ayki Ciro.
- Chart.js Entegrasyonu:
- Aylık Satış Trend Grafiği (Çizgi Grafik)
- En Çok Satan Ürünler (Çubuk Grafik)
- Kategori Bazlı Satış Dağılımı (Halka Grafik)
- Depo Stok Dağılımı (Pasta Grafik)
- Her ürünün Parti (LOT) numarası, Üretim Tarihi ve Son Kullanma Tarihi (SKT) takip edilir.
- Otomatik SKT Uyarı Sistemi: SKT'si 30 gün içinde dolacak ürünler dashboard ve üst bildirim çubuğunda uyarı olarak gösterilir.
- Birden fazla fiziksel depo (Örn: Merkez Depo - İstanbul, Ankara Lojistik Deposu, İzmir Bölge Deposu).
- Depolar arası stok transfer süreci.
- Akış:
Teklif→Sipariş→Sevkiyat→Fatura→Tahsilat. - Otomatik Stok Kontrolü: Sipariş oluşturulurken depodaki stok miktarları kontrol edilir, yetersiz stok durumunda uyarı verir.
- Tekliflerin tek tıkla satış siparişine dönüştürülmesi.
- Akış:
Talep→Satın Alma Siparişi→Mal Kabul→Stok Girişi & LOT Tanımı. - Mal kabulü yapıldığında ilgili depodaki stok otomatik artar ve lot/SKT kayıtları oluşturulur.
- Dağıtım filosu araçları (Frigo soğutuculu kamyon, kamyonet, tır) ve şoför atamaları.
- Sevkiyat durumları:
Hazırlanıyor→Yolda→Teslim Edildi. - Teslim edildiğinde stok çıkışı otomatik gerçekleşir.
- Satış ve Alış Faturaları: Fatura kesildiğinde ilgili müşterinin/tedarikçinin Cari Hesabına (Ledger) Borç/Alacak otomatik işlenir.
- Tahsilat ve Ödemeler: Nakit, Banka Havalesi/EFT, Kredi Kartı veya Çek yöntemleri. Tahsilat veya ödeme yapıldığında Kasa/Banka bakiyesi ve cari bakiye anında güncellenir.
- Profesyonel Fatura Çıktısı: Resmi fatura belgeleri için yazdırılabilir/PDF uyumlu görünüm.
- Satış Raporu: Tarih, müşteri ve ürün bazlı filtreler.
- Stok Değerleme Raporu: Envanter maliyeti ve stok durumu.
- Finans ve Nakit Akışı: Gelir/Gider ve tahsilat/ödeme dengesi.
- Kârlılık Raporu: Ürün bazında Alış Fiyatı → Satış Fiyatı → Kâr ve Kâr Oranı (%) hesabı.
- Kullanıcıların gerçekleştirdiği kritik ekleme, güncelleme, silme ve giriş/çıkış işlemleri tarih, modül, kullanıcı ve IP adresi ile loglanır.
- Backend: Python 3.14, Flask 3.1, Flask-SQLAlchemy, Flask-Login, Werkzeug, python-dotenv
- Database: MySQL / SQLite (PyMySQL & SQLAlchemy ORM)
- Frontend: HTML5, CSS3 (Custom Dark/Light Theme), Bootstrap 5.3, Bootstrap Icons, Chart.js
- Mimari: Modular Blueprint MVC Architecture & Service Layer Pattern
git clone https://github.com/username/NEXORAERP.git
cd NEXORAERP# Windows
python -m venv venv
venv\Scripts\activate
# Linux / macOS
python3 -m venv venv
source venv/bin/activatepip install -r requirements.txtKök dizinde .env dosyası oluşturun (örnek .env.example dosyasında verilmiştir):
FLASK_APP=run.py
FLASK_ENV=development
SECRET_KEY=nexora-erp-super-secret-key-2026-production
# MySQL Bağlantısı Örneği:
# DATABASE_URL=mysql+pymysql://root:password@localhost:3306/nexora_erp
# SQLite Otomatik Fallback (Varsayılan):
DATABASE_URL=sqlite:///nexora_erp.dbUygulama ilk çalıştırıldığında veritabanı tablolarını otomatik oluşturur ve demo verilerini yükler. Dilerseniz manuel seed komutunu çalıştırabilirsiniz:
python seed_cli.pypython run.pyTarayıcınızdan http://127.0.0.1:5000 adresine gidin.
| Rol | Kullanıcı Adı | E-Posta | Şifre |
|---|---|---|---|
| Admin | admin |
admin@nexoraerp.com |
Nexora123! |
| Yönetici | yonetici |
yonetici@nexoraerp.com |
Nexora123! |
| Satış Personeli | satis |
satis@nexoraerp.com |
Nexora123! |
| Depo Personeli | depo |
depo@nexoraerp.com |
Nexora123! |
| Muhasebe | muhasebe |
muhasebe@nexoraerp.com |
Nexora123! |
NEXORAERP/
├── app/
│ ├── __init__.py # Flask App Factory & extension init
│ ├── config.py # Uygulama konfigürasyonu (.env entegrasyonu)
│ ├── models/ # İlişkisel SQLAlchemy Veritabanı Modelleri
│ │ ├── user.py # User, Role, Permission, AuditLog
│ │ ├── party.py # Customer, Supplier
│ │ ├── product.py # Category, Brand, Unit, Product, StockLot
│ │ ├── warehouse.py # Warehouse, WarehouseStock, StockMovement
│ │ ├── sales.py # SalesQuote, SalesOrder
│ │ ├── purchase.py # PurchaseRequest, PurchaseOrder
│ │ ├── logistics.py # Vehicle, Driver, Shipment
│ │ ├── finance.py # Invoice, CurrentAccount, Collection, Payment
│ │ └── notification.py # Notification
│ ├── services/ # İş Mantığı Katmanı (Business Logic Services)
│ │ ├── stock_service.py # Stok düşümü, transfer, lot yönetimi
│ │ ├── sales_service.py # Sipariş dönüştürme ve stok kontrolü
│ │ ├── purchase_service.py # Mal kabul ve stok girişi
│ │ ├── finance_service.py # Fatura kesme, cari ekstre ve kasa hareketi
│ │ └── report_service.py # Raporlama hesaplamaları
│ ├── routes/ # Flask Blueprints
│ │ ├── auth.py, dashboard.py, customers.py, suppliers.py, products.py
│ │ ├── warehouses.py, inventory.py, sales.py, purchases.py, logistics.py
│ │ └── finance.py, reports.py, admin.py, api.py
│ ├── static/
│ │ ├── css/style.css # Özel kurumsal Dark/Light CSS teması
│ │ ├── js/main.js # Tema değiştirici, sidebar, toast bildirimleri
│ │ └── js/dashboard.js # Chart.js canlı grafik yükleyici
│ └── templates/ # Jinja2 HTML5 Şablonları
├── seed_cli.py # Demo veri yükleme CLI aracı
├── run.py # Uygulama ana başlatıcı
├── requirements.txt # Python paket bağımlılıkları
└── README.md
- Şifreler hiçbir zaman düz metin olarak kaydedilmez (
werkzeug.security). - Hassas bilgiler
.envdosyasında tutulur ve.gitignoreile kaynak koddan hariç tutulur. - SQL Injection ve XSS saldırılarına karşı SQLAlchemy ORM ve Jinja2 escaping koruması mevcuttur.
Bu proje MIT Lisansı ile lisanslanmıştır.