Store Management System, Spring Boot kullanılarak geliştirilmiş bir e-ticaret platformudur. Bu proje, müşterilerin ürünleri görüntüleyebileceği, sepete ekleyebileceği, sipariş verebileceği ve sipariş geçmişini görüntüleyebileceği bir platform sağlar.
Proje dosyalarını bilgisayarınıza klonlayın:
git clone https://github.com/kullanici_adi/proje-adı.git
Bu projeyi çalıştırmak için aşağıdaki gereksinimlere ihtiyacınız olacak:
- Java JDK 8 veya üstü
- Maven
- PostgreSQL veritabanı
- Uygulamayı çalıştırın:
./mvnw spring-boot:run
Şimdi uygulamanız http://localhost:8080 adresinde çalışıyor olmalıdır.
- Spring Boot
- PostgreSQL
- Docker
- Flyway
Projeyi Docker kullanarak çalıştırmak için aşağıdaki adımları izleyin.
-
Docker üzerinde PostgreSQL başlatın:
docker run --name postgres -e POSTGRES_PASSWORD=yourpassword -d -p 5432:5432 postgres
-
Uygulamayı Docker içinde çalıştırın:
docker build -t store-management-system . docker run -p 8080:8080 --name store-management-system --link postgres:postgres -d store-management-system
Proje, veritabanı yönetimi için Flyway kullanmaktadır. Yapılan değişiklikler otomatik olarak uygulanır ve geri alınabilir. Flyway, veritabanı şemasının sürüm kontrolünü sağlar ve uygulamanın veritabanı versiyonunu güncel tutar.
> mvn flyway:migrate -Dflyway.url=... -Dflyway.user=... -Dflyway.password=...
Proje, aşağıdaki tabloları içeren bir PostgreSQL veritabanı kullanır:
Sütun Adı | Veri Tipi | Özellikler |
---|---|---|
id | bigserial | Primary key |
name | varchar(250) | Not null |
varchar(200) | Unique, Not null | |
address | varchar(300) | Not null |
password | varchar(300) | Not null |
created_at | timestamp(0) | Not null |
updated_at | timestamp(0) | |
deleted_at | timestamp(0) |
Sütun Adı | Veri Tipi | Özellikler |
---|---|---|
id | bigserial | Primary key |
name | varchar(300) | Not null |
price | numeric(50,3) | Not null |
stock_quantity | bigserial | Not null |
created_at | timestamp(0) | Not null |
updated_at | timestamp(0) | |
deleted_at | timestamp(0) |
Sütun Adı | Veri Tipi | Özellikler |
---|---|---|
id | bigserial | Primary key |
customer_id | bigserial | Foreign key, references sm_customer |
total_price | numeric(50,3) | Not null |
created_at | timestamp(0) | Not null |
updated_at | timestamp(0) | |
deleted_at | timestamp(0) |
Sütun Adı | Veri Tipi | Özellikler |
---|---|---|
id | bigserial | Primary key |
cart_id | bigserial | Foreign key, references sm_cart |
product_id | bigserial | Foreign key, references sm_product |
quantity | bigserial | Not null |
created_at | timestamp(0) | Not null |
updated_at | timestamp(0) | |
deleted_at | timestamp(0) |
Sütun Adı | Veri Tipi | Özellikler |
---|---|---|
id | bigserial | Primary key |
customer_id | bigserial | Foreign key, references sm_customer |
total_price | numeric(50,3) | Not null |
created_at | timestamp(0) | Not null |
updated_at | timestamp(0) | |
deleted_at | timestamp(0) |
Sütun Adı | Veri Tipi | Özellikler |
---|---|---|
id | bigserial | Primary key |
order_id | bigserial | Foreign key, references sm_cart |
product_id | bigserial | Foreign key, references sm_product |
quantity | bigserial | Not null |
unit_price | numeric(50,3) | Not null |
created_at | timestamp(0) | Not null |
updated_at | timestamp(0) | |
deleted_at | timestamp(0) |
Sütun Adı | Veri Tipi | Özellikler |
---|---|---|
id | bigserial | Primary key |
product_id | bigserial | Foreign key, references sm_product |
old_price | numeric(50,3) | Not null |
new_price | numeric(50,3) | Not null |
created_at | timestamp(0) | Not null |
updated_at | timestamp(0) | |
deleted_at | timestamp(0) |
Projede JUnit ve Mockito kullanılarak birim testleri bulunmaktadır. Testleri çalıştırmak için aşağıdaki komutu kullanabilirsiniz:
./mvnw test
Projeyi test etmek için Postman API koleksiyonunu kullanabilirsiniz. Aşağıdaki adımları izleyerek Postman koleksiyonunu indirebilirsiniz:
- Postman API Koleksiyonu bağlantısını tıklayarak koleksiyon dosyasını indirin.
- Postman uygulamasını açın.
- Sol üst köşedeki "Import" düğmesine tıklayın.
- "Import From Link" seçeneğini seçin ve indirdiğiniz koleksiyon bağlantısını yapıştırın.
- "Import" düğmesine tıklayarak koleksiyonu içe aktarın.
- Artık Postman'de çeşitli istekleri göndererek API'yi test edebilirsiniz. Postman API Koleksiyonu