Skip to content

Developer-Groo/Sparta-Store

Repository files navigation

๐Ÿ’ป Sparta Store

Sparta Store ๋Š” ์ž์‚ฌ๋ชฐ ํ”Œ๋žซํผ์œผ๋กœ, ์ƒํ’ˆ ํŒ๋งค ๋ฐ ์ฃผ๋ฌธ, ๋ฆฌ๋ทฐ ๊ด€๋ฆฌ, ์‚ฌ์šฉ์ž ๋งž์ถคํ˜• ์•Œ๋ฆผ ์„œ๋น„์Šค ๋“ฑ์˜ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ๋ฐฑ์—”๋“œ ํ”„๋กœ์ ํŠธ์ž…๋‹ˆ๋‹ค

โ˜‘๏ธ Index


๐Ÿ Team

์šฐํ˜„ ์ฃผ์˜ ์ˆ˜์—ฐ ์ง„ํ™ ํ˜„์šฐ
GitHub GitHub GitHub GitHub GitHub

๐Ÿ”น Leader: ๊น€์šฐํ˜„
โ€ข Spring Boot, JPA ๊ธฐ๋ฐ˜์œผ๋กœ ์ƒํ’ˆ ๋ฐ ๋ฆฌ๋ทฐ ๊ด€๋ฆฌ, ์นดํ…Œ๊ณ ๋ฆฌ ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ
โ€ข ํ’ˆ์ ˆ ์ƒํ’ˆ ์žฌ์ž…๊ณ  ์‹œ ์•Œ๋ฆผ ๊ธฐ๋Šฅ ๊ตฌํ˜„
โ€ข Redis Distributed Lock์„ ํ™œ์šฉํ•ด ๋™์‹œ์„ฑ ์ด์Šˆ ํ•ด๊ฒฐ ๋ฐ ๋ฐ์ดํ„ฐ ์ •ํ•ฉ์„ฑ ์œ ์ง€
โ€ข GitHub Actions๋ฅผ ํ™œ์šฉํ•ด ์ž๋™ํ™”๋œ ๋นŒ๋“œ, ํ…Œ์ŠคํŠธ, ๋ฐฐํฌ ํŒŒ์ดํ”„๋ผ์ธ ๊ตฌ์ถ•
โ€ข Docker Compose๋กœ ์ผ๊ด€๋œ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์ œ๊ณต ๋ฐ ๋ฐฐํฌ ํšจ์œจ์„ฑ ํ–ฅ์ƒ
โ€ข Grafana & Prometheus๋ฅผ ์‚ฌ์šฉํ•ด ์„œ๋ฒ„ ์ƒํƒœ ๋ฐ ์‘๋‹ต ์‹œ๊ฐ„ ์‹ค์‹œ๊ฐ„ ๋ชจ๋‹ˆํ„ฐ๋ง
โ€ข ELK Stack (Elasticsearch, Logstash, Kibana) ๊ธฐ๋ฐ˜ ๋กœ๊ทธ ์ˆ˜์ง‘ ๋ฐ ์‹œ๊ฐํ™”
โ€ข Prometheus AlertManager๋ฅผ ํ†ตํ•ด ์„œ๋ฒ„ ์˜ค๋ฅ˜ ๋ฐ ์‘๋‹ต ์‹œ๊ฐ„ ์ดˆ๊ณผ ์‹œ Slack ์•Œ๋ฆผ ์ „์†ก

๐Ÿ”น Sub-Leader: ์ฃผ์˜ โ€ข ์žฅ๋ฐ”๊ตฌ๋‹ˆ, ์ฐœ ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ

๐Ÿ”น Member: ์ˆ˜์—ฐ โ€ข ์ฃผ๋ฌธ ๋ฐ ๊ฒฐ์ œ ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ

๐Ÿ”น Member: ์ง„ํ™ โ€ข ํšŒ์›๊ฐ€์ž…, ๋กœ๊ทธ์ธ, ๊ถŒํ•œ ๊ด€๋ฆฌ ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ

๐Ÿ”น Member: ํ˜„์šฐ โ€ข ์‚ฌ์šฉ์ž ๊ด€๋ฆฌ ๋ฐ ๊ธฐ์ค€๋ณ„ ์ธ๊ธฐ ์ƒํ’ˆ ์กฐํšŒ ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ


๐Ÿค” Notion Document

  • Team Notion ๋ณด๋Ÿฌ๊ฐ€๊ธฐ ๐Ÿ‘‰ Team Notion

๐Ÿ“‘ Commit Convention

feat : ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ์ถ”๊ฐ€

fix : bug fix

docs : ๋ฌธ์„œ ์ˆ˜์ •

style : ์„ธ๋ฏธ์ฝœ๋ก  ๊ฐ™์€ ์ฝ”๋“œ์˜ ์‚ฌ์†Œํ•œ ์Šคํƒ€์ผ ๋ณ€ํ™”.

refactor : ๋ณ€์ˆ˜๋ช… ์ˆ˜์ •๊ฐ™์€ ๋ฆฌํŒฉํ„ฐ๋ง

test : ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ถ”๊ฐ€ & ์ˆ˜์ •

chore : ์ค‘์š”ํ•˜์ง€ ์•Š์€ ์ผ


๐Ÿ›  Technology

๋ถ„์•ผ ๊ธฐ์ˆ 
Backend Java 17, Spring Boot 3.x, JPA, QueryDSL
DB MySQL 8.0
Cache Spring Cache, Redis Cache
Concurrency Control Redis Lock
Testing JUnit5, MockMvc
DevOps Docker

๐ŸŽฏ Features


๐Ÿ”— ERD

erDiagram
    User {
        Long id PK
        String name
        String email
        String password
        Address address
        tinyint is_deleted
        LocalDateTime created_at
        LocalDateTime updated_at
    }

    Item {
        Long id PK
        String name
        String img_url
        Integer price
        String description
        Integer stockQuantity
        Category category
        LocalDateTime created_at
        LocalDateTime updated_at
    }

    Orders {
        Long id PK
        User user_id FK
        OrderStatus status
        Integer totalPrice
        LocalDateTime created_at
        LocalDateTime updated_at
    }

    OrderItem {
        Long id PK
        Orders order_id FK 
        Item item_id FK
        Integer orderPrice
        Integer quantity
        LocalDateTime created_at
        LocalDateTime updated_at
    }

    Address {
        String city
        String street
        String zipcode
    }
    
    CartItem {
		    Long id PK
        Cart cart_id FK
        Item item_id FK
        Integer quantity
        LocalDateTime created_at
        LocalDateTime updated_at
    }
    
    Cart {
        Long id PK
        User user_id FK
        LocalDateTime created_at
        LocalDateTime updated_at
    }
    
    REVIEW {
        Long id PK
        User user_id FK
        Item item_id FK
        String content
        String img_url
        int rating
        LocalDateTime created_at
        LocalDateTime updated_at
    }
    
    Category {
		    Long category_id PK
        String name 
        Category parent_id FK "Parent Category"
    }
    
    Likes {
	    Long id PK
	    User user_id FK
	    Item item_id FK
	    LocalDateTime created_at
      LocalDateTime updated_at
    }
    
    SalesSummary {
	    Long id pk
	    Item item_id FK
	    int totalSales
	    LocalDateTime created_at
      LocalDateTime updated_at
    }

    User ||--o{ Orders : "has many"
    User ||--|| Cart : "has one"
    Cart ||--o{ CartItem : "contains"
    Item ||--o{ CartItem : "is in"
    Orders ||--o{ OrderItem : "has many"
    Item ||--o{ OrderItem : "has many"
    User }|..|{ Address : "embedded"
    REVIEW }o--|| User : "has many"
    REVIEW }o--|| Item : "has many"
    Category ||--o| Category : "parent"
    Category ||--|{ Category : "children"
    Category ||--|{ Item : "has"
    User ||--o{ Likes : "likes"
    Item ||--o{ Likes : "liked by"
    SalesSummary ||--|| Item : "has one" 
Loading

๐Ÿšจ Trouble Shooting

โœ… solution

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •