Giter Club home page Giter Club logo

vakifbankfinalcase's Introduction

Bayi Yönetim ve Sipariş Sistemi

Tanıtım Linki: https://www.youtube.com/watch?v=U6LO1-F6rqE

App Screenshot

Bu sistem, bayilerin siparişlerini yönetmelerine, ürün stok durumlarını ve onlara özel fiyatları görüntülemelerine ve ödemelerini gerçekleştirmelerine olanak tanıyan tam entegre bir çözümdür. B2B (Bussiness-to-Bussiness) olarak bilinen bu sistem şirketten şirkete e-ticaret sistemi sunar. Şirket (admin) sisteme ürünlerini ekledikten sonra bayilere özel fiyatlar oluşturmak için ilk olarak fiyat listesi oluşturur ardından bu fiyat listesi üzerinden bayiyle ilişki kurar ve bayi ona özel fiyatlar ile ürün alışverişi yapar.

Başlangıç

Ön Koşullar

  • .NET 6.0
  • Angular 16.2.0
  • MSSQL veritabanı

Kurulum

  1. Projeyi klonlayın:
    git clone https://github.com/frknertnt/VakifBankFinalCase.git
    
  2. Database backup ve script dosyalarını veritabanınıza yükleyin.
  3. API için gerekli NuGet paketlerini yükleyin:
  4. Angular uygulaması için gerekli npm paketlerini yükleyin
  5. Angular uygulamalarını başlatırken önce AdminFrontEnd (localhost:4200 olarak) sonra UIFrontEnd uygulamasını çalıştırın(Görsellerin yüklenmesi için URL yapısı doğru şekilde olmalı)

BackEnd Proje Altyapısı

Proje altyapısı Visual Studio'da extension olarak indirilip kurgulandı. Mevcut 5 katmandan oluşan monolitik mimaride Bussiness, Core, DataAccess, Entity ve WebApi katmanları kullanılıyor. Entity katmanına eklenen sınıflar ile altyapının sağlamış olduğu CodeGenerator yardımıyla ilgili katmanlarda servisler ve diğer kod yapıları sistem tarafından oluşturuluyor.

App Screenshot

  • Bussiness: Bu katman uygulamanın veri yönetimi, güvenlik politikaları ve yardımcı işlevler gibi çeşitli işlevsel ihtiyaçlarını karşılayacak şekilde düzenlendi. Listeleme işlemlerinde Cache kullanıldı.

  • Core: Bu katman, uygulamanın kritik işlevselliklerini yöneten, genişletilebilirliği ve yeniden kullanılabilirliği destekleyen, genel amaçlı programlama bileşenlerinin ve servislerinin merkezi noktasıdır.

  • DataAccess: Bu katman, veritabanı işlemleri için özelleşmiş sınıflar barındıran ve Entity Framework üzerinden veri modelleri ile LINQ kullanarak etkileşimi sağlayan, uygulamanın veri yönetim merkezidir.

  • Entities: Bu katman, uygulamanın veritabanı tablolarını temsil eden somut sınıflarını ve veri transfer objelerini (DTO'lar) içeren veri modelleme merkezidir. Model ve ilişkileri görselde olduğu gibidir

  • WebApi: Bu katman, uygulamanın HTTP üzerinden dış dünya ile veri alışverişini sağlayan kontrolleri, yapılandırmaları ve modelleri barındıran sunum katmanıdır.

FrontEnd Proje Altyapısı

Burada Angular'ın modüler yapısının gücünden faydalanarak bir altyapı kurgulandı. Her işlevsel alan (örneğin banka hesapları, müşteriler, siparişler), kendi bileşenleri, servisleri ve modelleri ile kendi modülüne ayrılmış şekilde oluşturuldu. Componentleri besleyecek olan data akışları için servisler yazıldı. App-Routing-Module ile endpoint yönetimi sağlandı.

Admin ve bayi için iki ayrı ön yüz proje oluşturuldu. Kullanıcıların deneyimini artırmak için hazır şablonlar kullanıldı ve bootstrap ile tasarım güçlendirildi.

Database Altyapısı

Burada MSSQL'de Database Diagrams'ın gücünden yararlanıldı. Tablolar diagram ile oluşturulup gerekli Foreign Key ilişkileri kuruldu. Stok kontrolü için bir trigger tasarlandı ve durumu 'Sevke Hazır' olan siparişlerde otomatik stok düşme gerçekleştirildi

Kullanım

Sistemde admin kullanıcı oluşturmak için Swagger arayüzünde Auth ile oluşturabilirsiniz. Kolay kullanıcı oluşturmak için bazı validasyonlar yorum satırı halinde bırakıldı.

Admin oluşturduktan sonra admin ara yüze giriş yapın ve ürünleri ve bayileri ekleyin. Bayilerle bağlantı ayarlamadan önce fiyat listesi tanımlayın (haftalık, aylık, yıllık olabilir) ve o liste için ürünlerinizden seçim yapın. Ürünleri ekledikten sonra bayiler kısmında özel iskonto oranını girin.

Bayi bağlantısı oluştuktan sonra UI arayüzüne geçin ve oluşturduğunuz müşteri bilgileri giriş yapın. Özel fiyatlı ürünleri sepete ekleyip sipariş talebinde bulunduktan sonra admin tarafında sipariş yönetimi sağlayın.

İşleme alınan siparişler müşteriye gösterilir ve ödeme gerçekleştirmesi için bir buton gözükür. Müşteri banka hesabındaki kayıtlı bilgileri ile ödeme yapabilir.

  • Bayiler:

    • Admin tarafından sağlanan indirimli fiyatlar ile sipariş oluşturabilir ve yönetebilir.
    • Şirkete mesaj gönderebilir.
    • Ödeme işlemlerini yönetebilir.
    • Sepete eklediği ürünü stok durumuna göre artırıp azaltabilir.
  • Admin:

    • Tüm kullanıcı işlemlerini yönetir. (Bayi şifre güncelleme dahil)
    • Sipariş onayı ve reddi verebilir.
    • Raporları görüntüleyebilir ve indirebilir.
    • Mesajlaşma modülü üzerinden iletişim kurabilir.
    • Banka hesaplarını yönetebilir.

    App Screenshot

Anlık Mesajlaşma

Şirket ve bayi arasında anlık iletişimi sağlayan mesajlaşma sistemi bulunmaktadır

App Screenshot

Ürün Ana Resim Seçimi

Ürün fotoğrafları üzerinden ana resim seçimi yapılabilir

App Screenshot

API Endpoints

  • Login yönetimi: GET, POST /api/auth
  • Admin yönetimi: GET, POST /api/users
  • Bayi yönetimi: GET, POST /api/customers
  • Ürün yönetimi: GET, POST /api/products
  • Sipariş yönetimi: GET, POST /api/orders
  • Sepet yönetimi: GET, POST /api/baskets
  • Ödeme işlemleri: POST /api/accounttransactions
  • Mesajlaşma: GET, POST /api/messages

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.