MRPYWEB

Web Sitesi, Web Uygulamaları ve İş Sistemleri Geliştirme
Portföylere Geri Dön
سامانه جامع ای‌آرپی و گردش‌کار سازمانی شانی‌مو (Shanimo ERP)

Shanimo ERP – Kapsamlı Kurumsal ERP ve İş Akışı Sistemi

Bu, yöneticilerin ayrı adımlar, çeşitli alan türleri ve katmanlı erişim seviyeleri ile karmaşık formlar tanımlamasına olanak tanıyan Dinamik Bir Form Oluşturucudur (Dynamic Form Builder). İş akışları, kullanıcıların rol…

Genel Bakış

Proje Hakkında

Bu, yöneticilerin ayrı adımlar, çeşitli alan türleri ve katmanlı erişim seviyeleri ile karmaşık formlar tanımlamasına olanak tanıyan Dinamik Bir Form Oluşturucudur (Dynamic Form Builder). İş akışları, kullanıcıların rollerine göre otomatik olarak yönlendirilir ve her adımın kendi özel son tarihi vardır.

Bu sistem, farklı seviyelerde (form, adım, alan) hassas erişim kontrolü için RBAC mimarisinden yararlanır ve profesyonel çıktılar (PDF, Excel) sunarak ve Şemsi (Celali) tarihleri görüntüleyerek İran kuruluşlarının ihtiyaçlarını karşılar.

Teknik başarılar: Service Worker tabanlı bildirim sistemi, performans iyileştirme için önbellek yönetimi, koyu mod desteği ile duyarlı kullanıcı arayüzü tasarımı ve veri entegrasyonu için yönetim komut dosyalarının geliştirilmesi.

Sitenin CRM, envanter yönetimi, muhasebe ve diğerleri dahil çeşitli bölümleri şu anda tasarım ve geliştirme aşamasındadır.

Vaka Çalışması

Proje Vaka Çalışması

Zorluklar, çözümler, kazanımlar, teknik öne çıkanlar, mimari ve proje ölçeği.

⚡

Zorluklar

1-Veri Bütünlüğünü Koruyarak Dinamik Form Oluşturucu Uygulaması: Şablon formlarını, yıkıcı bağımlılıklar oluşturmadan çalışan örneklere dönüştürmek ve çalışma zamanında alanları, seçenekleri ve izinleri doğru şekilde kopyalamak.
2-Son Tarih Kontrollü Çok Adımlı İş Akışı Yönetimi: Her adımın kendi bağımsız son tarihine sahip olduğu, gecikmeleri kaydeden ve kullanıcı ilerlemesini anlık olarak gösteren bir sistem tasarlamak; ayrıca veri kaybı olmadan farklı seviyelerde (alan, adım, tüm form) reddetme ve düzeltme imkânı sağlamak.
3-Farklı Katmanlarda Kimlik Doğrulama ve Katmanlı Erişim Kontrolü (RBAC): Her kullanıcının yalnızca yetkili olduğu verileri görmesi ve doldurması için formlara, adımlara ve hatta alanlara ayrıntılı izinler uygulamak; aynı zamanda her kullanıcı için birden fazla rolün eşzamanlı yönetimini sağlamak.
4-Performans Optimizasyonu ve Bildirimler: Önbellek (LocMemCache) kullanarak sunucu isteklerini azaltmak ve gereksiz bildirimler göndermeden akıllı bildirim yönetimi (yalnızca yeni bir görev varsa), tarayıcı bildirimleri için Service Worker desteği ile birlikte.

💡

Çözümler

Dinamik Form Oluşturucu: input_type'ın doğrudan InstanceField içinde saklanması ve ana forma bağımlılığı ortadan kaldırmak için kopya form oluşturulurken meta verilerin tamamen kopyalanması.
İş Akışı ve Son Tarihler: Her adımın son tarihini ve adım geçmişini saklamak için JSONField kullanımı; hassas zamanlama ve gecikme kaydı için start_step ve complete_step metotları.
Katmanlı RBAC: Alan modelinde all, specific_role ve specific_user seçenekleriyle access_type uygulaması ve çalışma zamanında is_accessible_by metodu ile izin kontrolü.
Optimize Edilmiş Bildirim: Görev sayısını önbelleğe alma (LocMemCache) ve yalnızca yeni bir görev olduğunda bildirim göndermek için notified_task_ids karşılaştırması; eşzamanlı istekleri önlemek için istemci tarafında isFetching yönetimi.
Eski Veri Entegrasyonu: Önceki kopya formlarda input_type'ı geri kazanmak için --dry-run seçeneğine sahip fix_instance_field_input_type betiği (istenmeyen değişiklik riski olmadan).

📚

Kazanımlar

Teknik olmayan kullanıcıları güçlendirmek: Karmaşık formlar ve kurumsal iş akışları tanımlamak için tek bir satır kod bile gerektirmeyen bir platform oluşturarak teknik ekibe olan bağımlılığı en aza indirgemek.
Süreçler üzerinde şeffaflık ve tam kontrol: Üç seviyede (alan, adım ve tüm form) akıllı onay/red sistemi uygulaması, tam geçmiş kaydı ve anlık ilerleme gösterimi ile kurumsal yönetimi daha şeffaf hale getirmek.
En hassas seviyede güvenlik ve erişim yönetimi: Kullanıcı erişimini belirli bir alan seviyesine kadar kontrol eden ve veri güvenliğini garanti eden rol tabanlı kimlik doğrulama sisteminin (RBAC) başarılı bir şekilde uygulanması.
Performans optimizasyonu ile artan verimlilik: Akıllı önbellekleme ve yalnızca yeni bir görev olduğunda anlık bildirim gönderimi ile sunucu isteklerinde önemli azalma, bu da kullanıcı deneyimini daha akıcı hale getirmiştir.
İran'ın altyapısı ve kurumsal kültürü ile uyumluluk: Şemsi (Celali) tarihler için tam destek, profesyonel çıktılar (PDF, Excel) ve MySQL'e bağlanabilme imkânı, bu sistemi İran kurumları için tamamen işlevsel kılmıştır.
Tam kurumsal entegrasyona yükseltilebilirlik: Finans, envanter ve satış modüllerinin eklenmesine olanak tanıyan ve kapsamlı bir ERP altyapısı oluşturan modüler sistem tasarımı.

🔧

Teknik Öne Çıkanlar

Modüler mimari ve tam katman ayrımı: Uygulamaların dynamicform (form tanımlama), form_flow (çalıştırma ve iş akışı), form_review (onay/red), reports (raporlama) ve account (kullanıcı ve rol yönetimi) olarak ayrılması, geliştirme ve bakımı büyük ölçüde kolaylaştırmıştır.
Doğrudan meta veri depolama ile yıkıcı bağımlılıkların ortadan kaldırılması: input_type ve step_title'in FormInput'a referans vermek yerine doğrudan InstanceField içinde saklanması, kopya formların ana form değiştirildikten veya silindikten sonra bile tamamen bağımsız ve kararlı kalmasını sağlar.
JSONField ve atomik işlemlerle iş akışı yönetimi: Adım geçmişini (step_history) ve her adımın son tarihlerini (step_deadlines) saklamak için JSONField kullanımı; ayrıca veri bütünlüğünü garanti etmek için önemli görünümlerde transaction.atomic() kullanımı.
Üç seviyede dinamik kimlik doğrulama ve erişim sistemi: Alan modelinde all, specific_role ve specific_user seçenekleriyle access_type uygulaması ve çalışma zamanında izin kontrolü için is_accessible_by metodu; ayrıca her kullanıcı için birden fazla rol desteği.
Akıllı önbellekleme ve istek yönetimi ile performans optimizasyonu: Her kullanıcı için görev sayısını önbelleğe almak için LocMemCache kullanımı (timeout=5) ve eşzamanlı istekleri önlemek ve sunucu yükünü azaltmak için istemci tarafında isFetching uygulaması.
Service Worker ile gelişmiş bildirim sistemi: sw.js kaydı ve tarayıcı kapalıyken bile tarayıcı bildirimleri göndermek için Push API kullanımı; ayrıca tekrarlayan bildirimleri önlemek için notified_task_ids yönetimi.
Veri entegrasyonu için yönetim betikleri: Eski verileri istenmeyen değişiklik riski olmadan kurtarmak için --dry-run ve --instance-id seçeneklerine sahip fix_instance_field_input_type betiği.
Şemsi (Celali) tarihler ve çeşitli çıktılar için destek: Şablonlarda ve görünümlerde tarihleri Celali'ye dönüştürmek için persiantools kullanımı; ayrıca profesyonel çıktı oluşturma (PDF için reportlab, Excel için openpyxl ve xlsxwriter).
Koyu mod ile duyarlı kullanıcı arayüzü: Tüm şablonlarda koyu temayı desteklemek için özel stiller ([data-bs-theme="dark"]); ayrıca mobil kullanıcı deneyimini iyileştirmek için sayfaların alt kısmında yapışkan (sticky) düğmeler.

🏗️

Mimari

Proje mimarisi, Django tabanlı olarak modüler ve katmanlı bir yaklaşımla tasarlanmıştır. dynamicform (şablon form tanımlama), form_flow (çalıştırma ve iş akışı), form_review (onay/red), reports (raporlama) ve account (kullanıcı yönetimi ve RBAC) dahil olmak üzere bağımsız uygulamalar, geliştirme ve bakımı kolaylaştırmak için tamamen ayrılmıştır. Projenin çekirdeği, meta veri bağımlılıklarını keserek (kopya formlarda input_type ve step_title'in doğrudan saklanması) ve adım geçmişi ile son tarihleri yönetmek için JSONField kullanarak yüksek kararlılık ve esneklik elde eder. Ayrıca, kimlik doğrulama ve erişim kontrol sistemi üç seviyede (form, adım ve alan) uygulanmış olup, önbellekleme (LocMemCache) ve Service Worker kullanarak optimum performans ve kullanıcı deneyimi sunar.

📐

Proje Ölçeği

Proje, 9 ayrı uygulama, 30'dan fazla model, yaklaşık 50 view ve 40'ın üzerinde şablon içermekte olup toplamda 10.000'in üzerinde kod satırını (arka uç, ön uç ve yönetim komut dosyaları dahil) kapsamaktadır. Bu sistem, 18 alan türü desteği, ayrı son tarihlere sahip çok adımlı form yönetimi, üç seviyede onay/red sistemi ve rol tabanlı erişim kontrolü ile orta ve büyük ölçekli kuruluşlar (100 ila 500+ eşzamanlı kullanıcı) için tasarlanmış olup, finans, envanter ve satış modülleriyle tam bir ERP'ye yükseltilebilme yeteneğine sahiptir.

Teknolojiler

Teknolojiler

Bootstrap Django Django REST Framework HTML/CSS JavaScript MySQL PostgreSQL Python SQLite
Kategoriler

Kategoriler

Yönetim Paneli / Dashboard Ofis Otomasyonu CRM Sistemi ERP Sistemi Kurumsal Web Sitesi
Sektör

İş Alanı

Kurumsal Yönetim Sistemleri
Faaliyet Alanı

Faaliyet Alanı

"İş Süreçleri Yönetimi (BPM) sistemleri ve entegre Kurumsal Kaynak Planlaması (ERP) platformlarının
İstatistikler

Proje İstatistikleri

29
👁️ Görüntülenme
0
❤️ Beğeni
0
⬇️ İndirme
0
⭐ Puan
Metrikler

Özel Metrikler

Projenin temel performans göstergeleri

9 Uygulama Sayısı
+30 Model Sayısı
+50 View Sayısı
+40 Şablon Sayısı
+10.000 Kod Satırları (tahmini)
18 Desteklenen Alan Türleri
3 Geliştirilmekte Olan Modüller
+500 Önerilen Kullanıcı Kapasitesi
Ekip

Proje Ekibi

Bu projede iş birliği yapan kişiler

حسن کاظمی
Hasan Kazemi
Full Stack Geliştirici
Faydalı Bağlantılar

Faydalı Bağlantılar

Görseller

Proje Görselleri

Proje ortamının ve kullanıcı arayüzünün bölümleri

Aklınızda benzer bir proje mi var?

Bir web sitesi, CRM, ERP veya özel bir sistem geliştirmek için iş birliğine ihtiyacınız varsa, projenizi görüşmekten mutluluk duyarım.

Proje Başlat