총 백엔드 3명 프론트 3명으로 구성되었고
백엔드는 일단 모델링 부터 구성하였다.
필수 구현사항 이었던
그외 추가사항으로는 마이페이지(회원페이지), admin페이지, 상품 리뷰, 주문
이렇게 정했다.
그중에서 나는 장바구니를 맡았고 빨리 끝나게되면 주문내역을 할것이다.
먼저 모델링
from django.db import models
from core.models import TimeStampModel
class User(TimeStampModel):
name = models.CharField(max_length=50)
username = models.CharField(max_length=50, unique=True)
password = models.CharField(max_length=250)
mobile_number = models.CharField(max_length=200)
birth_day = models.DateField()
class Meta:
db_table = 'users'
Users의 모델링이다. 멘토님과 대화를 해봤는데 굳이 기능적으로 도움이 되는것이 아니라면 하드코딩적 요소는 다뺴다보니 정말 딱 필요 한 것만 넣게되었다.
from django.db import models
from categories.models import SecondCategory
from core.models import TimeStampModel
class Type(models.Model):
name = models.CharField(max_length=45)
class Meta:
db_table = 'types'
class Product(TimeStampModel):
title = models.CharField(max_length=45)
description = models.TextField()
second_category = models.ForeignKey(SecondCategory, on_delete=models.CASCADE)
price = models.DecimalField(decimal_places=3, max_digits=10)
stock = models.IntegerField()
discount = models.DecimalField(null=True, decimal_places=0, max_digits=3)
types = models.ManyToManyField('Type')
class Meta:
db_table = 'products'
class ThumbnailImage(models.Model):
url = models.URLField()
product = models.ForeignKey(Product, on_delete=models.CASCADE, related_name='thumbnail_images')
class Meta:
db_table = 'thumbnail_images'
class DetailImage(models.Model):
url = models.URLField()
product = models.ForeignKey(Product, on_delete=models.CASCADE, related_name='detail_images')
class Meta:
db_table = 'detail_images'
상품 구성 모델링이 상당히 어려웠다.
타입을 구성하고 상품상세페이지를 고려하여 구성하였고
실제 오설록과 거의 비슷하게 만드려고 최대한 노력했다.
썸네일 이미지를 따로만든 이유는 이미지가 2장씩들어가기때매 상세페이지랑은
완전히 분리가 필요하다라고 생각해서 저렇게 만들었다.
2차에 계속...