Skip to content
Eren Gaygusuz

Marketivo

Farklı kategorilerde ürünlerin satışının yapıldığı modern, kullanıcı dostu arayüze sahip bir e-ticaret platformu. Platform ile kullanıcılar her e-ticaret sisteminde satışta olan ürünlerin satın alınması sürecini...

Projects
Marketivo project preview
personal web MySQL Java Spring Boot 3 Spring Security Spring Data JPA Multi Language Support REST API Lombok Spring Data Rest Repository Pattern

Farklı kategorilerde ürünlerin satışının yapıldığı modern, kullanıcı dostu arayüze sahip bir e-ticaret platformu. Platform ile kullanıcılar her e-ticaret sisteminde satışta olan ürünlerin satın alınması sürecini…

Proje Bilgisi

Kapsam

Farklı kategorilerde ürünlerin satışının yapıldığı modern, kullanıcı dostu arayüze sahip bir e-ticaret platformu. Platform ile kullanıcılar her e-ticaret sisteminde satışta olan ürünlerin satın alınması sürecini deneyimleyebiliyor.

Mimari ve Sistem Tasarımı

Proje mimari olarak birkaç katman içeriyor. Bunlar; frontend uygulaması, backend uygulaması ve veritabanı olarak ifade edilebilir. Frontend uygulaması kendi içerisinde yapısı gereği component based bir mimariye sahip. Framework olarak Angular kullanıldı. Ayrıca burada state yönetimi için NgRx var. Yine Store’a bağımlılığı azaltmak için facade tasarımı deseni ile bu yapı kapsüllendi. Proje uzun zaman kullanıma ve genişlemeye direnmeyecek bir mimariye sahip şu an. Backend uygulaması ise Spring Boot frameworkü kullanılarak hazırlandı. Spring Boot’un sunmuş olduğu paketler yardımıyla kolaylıkla tasarlandı. Burası da aynı şekilde genişlemeye müsait. Geliştiriciye zorluk çıkarmayacak şekilde okunabilirlik sağlıyor. Burası da kendi içinde bazı katmanlara sahip. dao, service vb. katmanlarla modüllerin birbirine olan bağımlılığını en az seviyede tutmayı hedefledim. Veritabanı katmanı ise backend’in beslendiği veritabanını ifade ediyor. Burada MySQL’i kullandım. Kendi sunucumda dockerize edilmiş bir MySQL sunucumu aynı docker ağında bulunan backend uygulaması tüketebiliyor. Ayrıca veri tabanının dışarıdan geliştirici ortamda yönetimi için de bir ssh tunnel oluşturdum. Oluşturulan private ve public key’ler ile güvenli bir şekilde sunucuya erişim sağlanıyor.

Öne Çıkan Teknik Detaylar

Kişisel Katkılar

Yayın / Deployment

Projeyi dockerize ettiğim için docker hub hesabımda image’ları bulunuyor. Projeyi git ile versiyonluyorum. Kaynak kodlar herkese açık biçimde GitHub’da bulunuyor. Yayınlama işlemini evimde bulunan fiziksel sunucumdan günün belirli saatlerinde yapıyorum. Yine uygulamanın ihtiyaç duyduğu domain ve dns yönetimini cloudflare ile sağlıyorum. Gerektiğinde lets encrypt ile ssl sertifikası sağlıyorum. Proje ile ilgili linkler aşağıda bulunuyor. Kaynak Kodlar: https://github.com/erengaygusuz/marketivo-frontend https://github.com/erengaygusuz/marketivo-backend Docker Image’ları: https://hub.docker.com/r/erengaygusuz/marketivo-frontend https://hub.docker.com/r/erengaygusuz/marketivo-backend Production Ortamı: https://marketivo.erengaygusuz.com.tr