Bu proje, modern iş süreçlerini dijitalleştiren, kullanıcı dostu bir deneyim sunan ve güçlü bir altyapıya sahip bir ERP çözümü olarak tarafımdan tasarlanmış ve geliştirilmiştir. Backend tarafında Java kullanılırken, frontend kısmı Angular ile modern web standartlarına uygun bir şekilde oluşturulmuştur. Projenin tüm modülleri, ihtiyaçlara göre özelleştirilmiş ve genişletilebilir bir yapıya sahiptir.
Backend ve proje altyapısında kullandığım başlıca teknolojiler ve kütüphaneler şunlardır:
- Java (Benim sevgilim. Java, ERP projemde güçlü, taşınabilir ve ölçeklenebilir bir altyapı sunarak, sistemin verimli çalışmasını sağlıyor. Ayrıca, geniş kütüphane desteği ve sağlam framework'leri ile projemde hızlı geliştirme ve sürdürülebilir kod yapısı oluşturuyorum).
- Spring Security (ERP projemde Crypto modülünü, kullanıcı şifrelerini güvenli bir şekilde şifrelemek için kullanıyorum. Bu modül, veri güvenliğini artırarak kullanıcı bilgilerini korumama yardımcı oluyor. SQL Injection gibi saldıralar olurda veritabanı okunursa okunan şifrelerin hash'li ve salt'lı olmasını sağlıyor böylelikle ele geçen şifreler işe yaramaz)
- Jersey (ERP projemde Jersey, RESTful web servisleri oluşturmak ve dış sistemlerle veri alışverişi sağlamak için kullanıyorum. Jersey, hızlı ve ölçeklenebilir bir servis yapısı sunarak API geliştirme sürecini kolaylaştırıyor).
- Gson (JSON işlemleri için Entity'den JSON'a JSON'dan Entity'e dönüşüm için).
- Maven bağımlılık yönetimi, proje standartizasyonu ve paketleme için.
- JavaMail (ERP projemde JavaMail'i, kullanıcı kayıt onayı ve şifre sıfırlama gibi e-posta bildirimlerini göndermek için kullanıyorum. Ayrıca, sistemdeki önemli işlemlerle ilgili yöneticilere otomatik bildirimler göndermek amacıyla da entegre ettim. JavaMail, e-posta iletişimini güvenli ve verimli bir şekilde yönetmeme yardımcı oluyor).
- CORS Filter (Cross-Origin kaynak paylaşımı yönetimi istemci sunucu arası istek iletimi).
- JAXB (XML işlemleri için, Java POJO'ları ile XML'leri birbirine bağlayabilmek adına).
- HttpClient ve HttpMime (ERP projemde HttpClient'i, dış servislerle API iletişimini sağlamak için kullanıyorum. HttpMime ise dosya yükleme ve indirme işlemlerini yönetmek için projemde yer alıyor).
- MySQL (Projemde MySQL'i kullanma amacım, veritabanı yönetimi için güçlü, güvenilir ve açık kaynaklı bir çözüm sunmaktı. MySQL'in verimli sorgulama yapısı, büyük veri setlerini hızla işleme ve analiz etme imkanı sundu, bu da ERP sistemimin performansını artırdı. Ayrıca, SQL dilinin yaygın kullanımı sayesinde veritabanı sorguları yazmak ve yönetmek oldukça kolay hale geldi. MySQL'in ölçeklenebilir yapısı, işletmemin büyümesiyle birlikte veritabanımın da sorunsuz bir şekilde büyümesine olanak tanıdı).
Kullanıcı yönetimi sistemin temel taşıdır. Kullanıcıların sisteme kayıt olabilmeleri, güvenli bir şekilde giriş yapabilmeleri için gereken tüm süreçleri baştan sona geliştirdim.
Kullanıcılar, ad, soyad, e-posta ve şifre gibi bilgilerle sisteme kayıt olurlar. Kayıt işlemi sırasında şifreler Spring Security kullanılarak hash edilir ve güvenli bir şekilde veritabanında saklanır.
Kullanıcı kaydının tamamlanabilmesi için e-posta adresine onay bağlantısı gönderilir. Bu işlemde JavaMail API'sini kullandım.
Kullanıcılar e-posta ve şifreleriyle giriş yapabilir, şifrelerini unuttuklarında şifre sıfırlama bağlantısı alabilirler.
Sistemin kullanımıyla ilgili özet bilgilerin görselleştirildiği bir modül geliştirdim.
Ana sayfa, toplam kullanıcı, aktif işlemler, aylık satış miktarı gibi bilgileri bar grafikler ve tablolarla görselleştirir.
Backend’den Angular’a veri aktarmak için REST API kullandım.
Müşteri ve tedarikçi ilişkilerini yönetmek için kapsamlı bir modül geliştirdim.
Yeni müşteri ve tedarikçiler eklenebilir.
Alacak ve borç bakiyeleri detaylı olarak takip edilebilir.
Veriler, tarihe ve işlem türüne göre filtrelenebilir.
Finansal hareketlerin merkezi olan kasa yönetimi modülünü geliştirdim.
Kasa hesapları ayrı ayrı takip edilebilir. Ayrıca masraf kalemleri oluşturularak detaylı raporlar hazırlanabilir.
Gelir-gider işlemleri eklenebilir, düzenlenebilir ve silinebilir.
Stok yönetimi, ürün ve depo düzenlemelerini içeren kapsamlı bir modül geliştirdim.
Birden fazla depo oluşturulabilir ve ürünler bu depolar arasında aktarılabilir.
Ürünler kategorilere göre sınıflandırılabilir ve stok seviyeleri güncellenebilir.
Satış ve alış süreçlerini kolaylaştırmak için bir fatura yönetimi modülü geliştirdim.
Faturalar, detaylı ürün bilgileri ve toplam tutar hesaplamalarıyla oluşturulur.
Faturalar, müşteri veya tedarikçilere gönderilmek üzere PDF formatında indirilebilir.
Kullanıcılar, profillerini özelleştirebilir ve kişisel bilgilerini güncelleyebilir.
Kullanıcı adı, e-posta gibi bilgileri düzenleme imkanı sundum ve kritik işlemler için kullanıcı seviyesinde yetkilendirme geliştirdim.
Kullanıcılar, mevcut şifrelerini doğruladıktan sonra yeni bir şifre belirleyebilir.
Yönetici, kullanıcı gibi roller atanabilir ve yetkiler dinamik olarak belirlenebilir.
Sistem içi bildirimlerin e-posta ile kullanıcıya iletildiği bir modül oluşturdum.
Belirli işlemler tamamlandığında bildirimler otomatik olarak e-posta ile gönderilir.
JavaMail ile SMTP ayarlarını özelleştirilebilir bir şekilde yapılandırdım.
MySQL, ERP projemde veritabanı yönetimini sağlamak için güvenilir, ölçeklenebilir ve hızlı sorgulama özellikleri sunarak verilerin düzenli bir şekilde depolanmasına olanak tanıyor.
ERP projem modern iş süreçlerini dijitalleştiren ve kolaylaştıran güçlü bir ERP çözümüdür.
ERP, yani Kurumsal Kaynak Planlama, bir işletmenin tüm süreçlerini tek bir sistem altında toplayarak daha düzenli, kontrollü ve verimli bir şekilde yönetmesini sağlayan bir yazılım çözümüdür. Örneğin, bir şirketi düşünelim; satış, stok yönetimi, muhasebe, insan kaynakları gibi farklı departmanlar var ve bu departmanların hepsi birbirine bağlı çalışmak zorunda. Eğer bu süreçler ayrı sistemlerle yönetilirse bilgi kaybı, iletişim kopukluğu ya da verimsizlik yaşanabilir. İşte ERP, tüm bu sorunları ortadan kaldırıyor. Şirketin satış yaptığı bir ürünün stok bilgisi, faturası ve ödemesi anlık olarak herkesin erişebileceği şekilde güncelleniyor. Böylece işler hem daha hızlı hem de daha doğru bir şekilde ilerliyor. ERP, adeta bir şirketin sinir sistemi gibi çalışıyor ve tüm departmanların aynı platformda birbirine bağlı olmasını sağlıyor. Özellikle büyümek isteyen ya da karmaşık süreçleri olan firmalar için bu sistem vazgeçilmez bir araç.