Bu proje Trendyol back-end bootcamp bitirme projesidir.

Overview

trendyol-bootcamp-bitirme-projesi

Bu proje Trendyol back-end bootcamp bitirme projesidir.

Proje Tanımı:

Görevimiz : Trendyol Sepet Sistemini en baştan yazmak Eski sepet sistemimiz, gerekli şekilde scale edemediği için, bu sistemi yeniden yazmak ve üzerine yeni özellikler getirmek istiyoruz.

Gereksinim:

  • Sepette, bir veya birden çok ürün olabiliyor.

  • Sepete ürünleri ekleyebiliyoruz. Aynı ürünü tekrar eklersek, sepetteki, o ürün sayısı artıyor.

  • Sepetten ürün çıkartabiliyor ya da sepetteki o ürünün sayısını azaltabiliyoruz.

  • Sepetteki ürünleri dönerken, bir genel toplam bilgisi de dönüyor. Sepetteki ürünlerin sayısı ve fiyatlarına göre kullanıcıların ne kadar ödeyeceği bilgisini gösteriyor. 5 TL olan A ürününden 3, 10 TL olan B ürününden 2 tane varsa sepette, genel toplam bilgisi olarak 5 x 3 + 10 x 2 = 35 TL gösteriyor. 100 TL altındaki her sepet toplamı için de 4,99 kargo bedeli ekliyoruz. Üstteki bu sepet için 35 + 4,99 = 39,99 TL olarak genel toplamı, kargo bilgisni de ekleyerek dönmesini istiyoruz. Örnek json :

      {
      "products": [{
              "id": 1,
              "image": "imageURL",
              "title": "product1",
              "quantity": "3",
              "price": "5"
      }, {
              "id": 2,
              "image": "imageURL",
              "title": "product2",
              "quantity": "2",
              "price": "10"
      }],
      "basketInfo": {
              "Ara toplam": "35 TL",
              "Kargo": "4,99",
              "Toplam": "39,99 TL"
      }
    

Gereksinimleri karşılamak için izlenen adımlar

1) Sepete ürün eklenmesi

Trendyol uygulamasını incelediğimde "Sepete Ekle" işlemi ürün detay ekranından yapılmakta ve her seferinde 1 adet ürün eklenmekteydi. Ben de adımlarımı buna istinaden tasarladım.
Bu gereksinim için aşağıdaki mimari oluşturulmuştur. Görseli yüksek çözünürlükte incelemek için tıklayınız. sepete-urun-ekleme-diyagram Sepete ürün eklerken izlenen adımlar: Görseli yüksek çözünürlükte incelemek için tıklayınız. sepete-urun-ekleme-akis-diyagrami Test çıktıları: Görseli yüksek çözünürlükte incelemek için tıklayınız urun-ekleme-test

2) Sepetteki ürünün miktarının değiştirilmesi

Trendyol uygulamasını incelediğimde sepette var olan bir ürünün miktarını artırmak veya azaltmak için sepet ekranına geliniyor ve ilgili ürünün sayısı listeden seçiliyor veya artı eksi tuşları ile değiştiriliyordu.
Ben de ürün miktarını artıkmak ve azaltmak için ayrı ayrı metotlar yazmak yerine "miktar" parametresi alan tek bir metot yazdım. Bu gereksinim için aşağıdaki mimari oluşturulmuştur. Görseli yüksek çözünürlükte incelemek için tıklayınız. sepeteki-urun-miktarini-guncelleme-diyagram Sepeteki bir ürünün miktarını değiştirmek için izlenen adımlar: Görseli yüksek çözünürlükte incelemek için tıklayınız. sepete-urun-miktarini-guncelleme-akis-diyagrami Test çıktıları: Görseli yüksek çözünürlükte incelemek için tıklayınız urun-miktarini-gucelleme-test

3) Sepetteki belirli bir ürünün silinmesi

Bu gereksinim için aşağıdaki mimari oluşturulmuştur. Görseli yüksek çözünürlükte incelemek için tıklayınız. sepeten-urun-silme-diyagram Sepeteki bir ürünün miktarını değiştirmek için izlenen adımlar: Görseli yüksek çözünürlükte incelemek için tıklayınız. sepeten-urun-silme-akis-diyagrami

4) Belirli bir kullanıcının sepet bilgisinin getirilmesi

Bu gereksinim için aşağıdaki mimari oluşturulmuştur. Görseli yüksek çözünürlükte incelemek için tıklayınız. sepeti-goruntuleme-diyagram Sepeteki bir ürünün miktarını değiştirmek için izlenen adımlar: Görseli yüksek çözünürlükte incelemek için tıklayınız. sepet-bilgilerini-getirme-akis-diyagrami Test çıktıları: Görseli yüksek çözünürlükte incelemek için tıklayınız urun-miktarini-gucelleme-test

Veritabanı

Proje gereksimleri üzerinden çıkarılan ilk taslak ER diyagramı

Bu diyagram, projede yer alacak olan verilerin neler olduğunu belirlemek için çıkarılmıştır. taslak-er-diyagrami

Yukarıdaki ER diyagramı ve servislere istinaden veritabanı aşağıdaki şekli almıştır. Görseli yüksek çözünürlükte incelemek için tıklayınız veritabanlari

Gereksinim:

Sepetteki ürünlerin sistemdeki fiyat ve stok bilgisi doğal olarak değişiyor.

  • Sepetteki bir ürünün fiyatı; sepete eklendiği fiyattan daha aza düştüğü an, kullanıcılara sepetteki ürününün fiyatı azaldı diye email atmak istiyoruz.
  • Sepetteki bir ürünün stoğu; 3'ten az kalırsa; kullanıcılara sepetteki ürününün tükenmek üzere diye email atmak istiyoruz.
  • Sepetteki bir ürünün stoğu; 0 olursa; kullanıcılara sepetteki ürününün tükendi diye email atmak istiyoruz.

Bu gereksinimler için tasarladığım mimariler:

1) Bir ürünün fiyatının güncellenmesi

Görseli yüksek çözünürlükte incelemek için tıklayınız urunun-fiyainin-guncellenmesi

2) Bir ürünün stok bilgisinin güncellenmesi

Görseli yüksek çözünürlükte incelemek için tıklayınız urunun-fiyainin-guncellenmesi Bu mimariler için kodsal bir geliştirme yapılmamıştır.

You might also like...

E-Commerce Spring Boot Back-end

E-Commerce Technologies used in the construction of the project Spring Boot H2 Databse Hibernate Spring Data Lombok JUnit Some available services On t

Dec 24, 2022

Portal system based on front and back end separation built by ruoyi separation version

Keington-Portal-Separate English 中文 Introduction Keington Portal Separate is an official website portal system built by Keington Information Technolog

Jan 30, 2022

Cosmic Ink is a transcript application which was built with the help of Symbl AI and At Sign platform for back-end to store our data and authenticate

Cosmic-Ink Cosmic Ink is a transcript application which was built with the help of Symbl AI and At Sign platform for back-end to store our data and au

Dec 1, 2022

Colore (Back-End JAVA + Spring Boot)

Colore (Back-End JAVA + Spring Boot) A iniciativa do Projeto COLORE pretende promover igualdade e respeito, sobretudo no que tange o processo de inclu

Sep 3, 2022

Back-End da rede social AdaTech para Projeto Integrador da Generation Brasil

Back-End da rede social AdaTech para Projeto Integrador da Generation Brasil

Back-End da rede social AdaTech para Projeto Integrador da Generation Brasil

Apr 18, 2022

SCG used as as proxy to connect gRPC-Web and back end gRPC services

gRPC-Web Spring Cloud Gateway Spring Cloud Gateway 3.1.1 supports for gRPC and HTTP/2. It is possible to use Spring Cloud Gateway to connect gRPC-Web

Apr 4, 2022

Repositório destinado a criação do Checkpoint final da materia de Back End I.

PROJETO SISTEMA DE RESERVA DE CONSULTAS ### Descrição do projeto: Desenvolvimento de um sistema que permite o registro de consultas junto a entidades

Aug 30, 2022

End to End project for Kafka Streams using Spring Cloud Kafka streams

End to End project for Kafka Streams using Spring Cloud Kafka streams

Spring Kafka Streams using Spring Cloud Streams End to End example Endpoint http://localhost:8080/domain/lookup/facebook - to pull all facebook relate

Dec 20, 2022

Project on End to End CI/CD pipeline for java based application using Git,Github,Jenkins,Maven,Sonarqube,Nexus,Slack,Docker and Kuberenets with ECR as private docker registry and Zero Downtime Deployment

Project on End to End CI/CD pipeline for java based application using Git,Github,Jenkins,Maven,Sonarqube,Nexus,Slack,Docker and Kuberenets with ECR as private docker registry and Zero Downtime Deployment

Project on End to End CI/CD pipeline for java based application using Git,Github,Jenkins,Maven,Sonarqube,Nexus,Slack,Docker and Kuberenets with ECR as private docker registry and Zero Downtime Deployment.

Nov 22, 2022

📊It includes all the work done during the Java-React Bootcamp.

📊It includes all the work done during the Java-React Bootcamp.

💻 Java + React Bootcamp 💻 Part 1 - Java Part 2 - React 💻 Lecture Class: Youtube 👤 Instructor: Engin Demirog 📚 Course Materials: Kodlama.io Bootca

Jun 21, 2022

http://kodlama.io "Java & React Bootcamp" up to date Lectures and Homeworks.

Java & React Bootcamp (https://kodlama.io/) Lectures Lecture 1 intro Lecture 2 oopIntro homework Lecture 3 oopIntro2 inheritance inheritance2 homework

Dec 29, 2022

Códigos do Bootcamp Java Básico DIO

Curso Java Básico Digital Innovation One https://digitalinnovation.one Tive a honra de fazer parceria com o pessoal da Digital Innovation One, com doi

Jul 28, 2021

This repository consists of the code samples, assignments, and the curriculum for the Community Classroom complete Data Structures & Algorithms Java bootcamp.

DSA-Bootcamp-Java Subscribe to our channel Complete Playlist Syllabus Discord for discussions Telegram for announcements Connect with me     Follow Co

Jan 1, 2023

Teaching materials for Algorithm Bootcamp: Object-Oriented Programming.

Teaching materials for Algorithm Bootcamp: Object-Oriented Programming.

Object Oriented Programming Materials Materials Topics Code Introduction to Java Variables and Data Types Operators I/O Selection and Repetition 00_in

Nov 8, 2022

VnV Bootcamp for ITJuana documentation and other tools

From Zero to Hero VnV Bootcamp VnV Bootcamp for ITJuana pre-work, documentation and other tools Code created during bootcamp will be uploaded here so

Sep 6, 2021

Tech Elevator Bootcamp Exercises and Projects

TechElevatorExercises A folder for all my Tech Elevator endeavors as I learn full-stack development bootcamp-style.

Jul 24, 2022

Project developed in Block 1 through the Generation bootcamp

Project developed in Block 1 through the Generation bootcamp

PROJETO JAVA - CCHIV COMBATE CONTRA O HIV COMO SURGIU ? É um software criado para facilitar a forma de atender o público de pessoas portadoras do HIV

Jul 5, 2022

🏫 Testing Workshop for Factoria F5 Bootcamp

ms-test--factoriaf5-testing 🏫 Testing Workshop for Factoria F5 Sample used in Adevinta Spain's Factoria F5 masterclasses Develop Clone/fork this repo

Mar 2, 2022

Projetos concluídos no bootcamp JAVA GFT

GFT DIO bootcamp Este repositório contem todos os projetos criados no decorrer do bootcamp GFT. Para não criar repositórios diferentes deixei ambos os

Jul 5, 2022
Owner
Aybüke
Computer Engineer
Aybüke
Códigos do Bootcamp Java Básico DIO

Curso Java Básico Digital Innovation One https://digitalinnovation.one Tive a honra de fazer parceria com o pessoal da Digital Innovation One, com doi

Nicole Bidigaray 3 Jul 28, 2021
VnV Bootcamp for ITJuana documentation and other tools

From Zero to Hero VnV Bootcamp VnV Bootcamp for ITJuana pre-work, documentation and other tools Code created during bootcamp will be uploaded here so

null 3 Sep 6, 2021
İnnova-Patika Java Spring Bootcamp - > Bitirme Projesi -> Backend

İnnova-Patika Java Spring Bootcamp - > Bitirme Projesi -> Backend

Murat Ali KIŞTAN 6 May 1, 2022
🖥 CRUD Angular + Spring demonstrating Has-Many relationship, including tests for the back-end and front-end

REST API with Spring Boot and Angular CRUD Angular + Spring demonstrating Has-Many relationship, with tests. ?? Tecnologies Java 17 Spring Boot 3 JPA

Loiane Groner 53 Dec 28, 2022
Bilgisayar Mühendisliği Lisans Proje Ödevim

Makale Değerlendirme Sistemi Makale Değerlendirme Sistemi sisteminde yetki ve roller şu şekildedir: 1. Editör (Yönetici), sadece masa üstü uygulaması

null 6 Jan 18, 2022
Back end da plataforma KdMeuBichinho que surgiu com a missão de ajudar as pessoas que querem encontrar seu melhor amigo 🐶 🐱 🐰 que foi perdido ou encontrar alguém que está doando.

?? Kd meu bichinho? A plataforna ainda se encontra em fase de construção ✔️ ?? ?? Sobre o projeto KdMeuBichinho? - O projeto surgiu com a missão de aj

Mateus Araújo 134 Dec 2, 2022
🎉Back end module of Sonic UI automation testing platform. Sonic-UI自动化测试平台后端模块。

?? Sonic UI automation testing platform. English | 简体中文 Background What is sonic ? Nowadays, automation testing, remote control and other technologies

Eason 1.7k Jan 1, 2023
Back-End/API de uma aplicação web de agendamento desenvolvida durante o Hackaton do Programa de Formação do Grupo Fcamara

??️ Sobre o projeto ?? Agenda Laranja - é um meio prático e eficiente para programar o dia do trabalho presencial, respeitando as normas de segurança.

Lucas Gonçalves 3 Sep 17, 2021
Ghost Driver is an implementation of the Remote WebDriver Wire protocol, using PhantomJS as back-end

Ghost Driver is an implementation of the Remote WebDriver Wire protocol, using PhantomJS as back-end

Ivan De Marino 1.9k Dec 15, 2022
Repositório para desenvolvimento da camada de back-end da aplicação

Projeto Integrador - Back-end ?? Começando Essas instruções permitirão que você obtenha uma cópia do projeto em operação na sua máquina local para fin

CTD-E-Commerce 6 Jun 2, 2022