기본적인 기능은 모두 구현을 했습니다!.
한번 정리를 해보도록 합시다.
기본 조건 (Basis)
개발 문서
- ERD 작성
- 개발 전 ERD 작성하는 것을 권장
- 작성하는 Tool은 무엇이든 괜찮습니다.
- 손그림 / Figjam / etc …
- 깔끔한 작성보다 작성하는 내용에 집중합시다.
- 지난 기본 과제에서 사용했던 ERD 를 수정/보완해서 사용해보세요
SpartaMarket_DRF – FigJam (figma.com)
ERD와 와이어프레임 작성완료
- README 작성
- 프로젝트 개요 및 구현하는 기능에 대해 README를 작성해 보세요.
- 각 기능별 Postman으로 기능 점검 후 캡처
README는 차차 작성해 보도록 하겠습니다.
필수 구현 (Required)
필수 기능 - MVP(Minimum Viable Product)
- 회원가입 - (***구현완료***)
- Endpoint: /api/accounts
- Method: POST
- 조건: username, 비밀번호, 이메일, 이름, 닉네임, 생일 필수 입력하며 성별, 자기소개 생략 가능
- 검증: username과 이메일은 유일해야 하며, 이메일 중복 검증(선택 기능).
- 구현: 데이터 검증 후 저장.
- 로그인 - (***구현완료***)
- Endpoint: /api/accounts/login
- Method: POST
- 조건: 사용자명과 비밀번호 입력 필요.
- 검증: 사용자명과 비밀번호가 데이터베이스의 기록과 일치해야 함.
- 구현: 성공적인 로그인 시 토큰을 발급하고, 실패 시 적절한 에러 메시지를 반환.
- 프로필 조회 - (***구현완료***)
- Endpoint: /api/accounts/<str:username>
- Method: GET
- 조건: 로그인 상태 필요.
- 검증: 로그인 한 사용자만 프로필 조회 가능
- 구현: 로그인한 사용자의 정보를 JSON 형태로 반환.
선택 기능
- 로그아웃 - (***구현완료***)
- Endpoint: /api/accounts/logout
- Method: POST
- 조건: 로그인 상태 필요.
- 구현: 토큰 무효화 또는 다른 방법으로 로그아웃 처리 가능.
- 본인 정보 수정 - (***구현완료***)
- Endpoint: /api/accounts/<str:username>
- Method: PUT
- 조건: 이메일, 이름, 닉네임, 생일 입력 필요하며, 성별, 자기소개 생략 가능
- 검증: 로그인 한 사용자만 본인 프로필 수정 가능. 수정된 이메일은 기존 다른 사용자의 이메일과 username은 중복되면 안 됨.
- 구현: 입력된 정보를 검증 후 데이터베이스를 업데이트.
- 패스워드 변경 - (***구현완료***)
- Endpoint: /api/accounts/password
- Method: PUT
- 조건: 기존 패스워드와 변경할 패스워드는 상이해야 함
- 검증: 패스워드 규칙 검증
- 구현: 패스워드 검증 후 데이터베이스에 업데이트.
- 회원 탈퇴 - (***구현완료***)
- Endpoint: /api/accounts
- Method: DELETE
- 조건: 로그인 상태, 비밀번호 재입력 필요.
- 검증: 입력된 비밀번호가 기존 비밀번호와 일치해야 함.
- 구현: 비밀번호 확인 후 계정 삭제.
데이터베이스 관계 모델링 선택 기능
- 팔로잉 시스템 - (***구현완료***)
- Endpoint: /api/accounts/<str:username>
- Method: POST
- 사용자 간의 ManyToMany 관계를 통한 팔로잉 기능.
필수 기능 - MVP(Minimum Viable Product)
- 상품 등록 - (***구현완료***)
- Endpoint: /api/products
- Method: POST
- 조건: 로그인 상태, 제목과 내용, 상품 이미지 입력 필요. (이미지는 JSON으로 삽입하는 법을 몰라서 필수기능은 뺏다..)
- 구현: 새 게시글 생성 및 데이터베이스 저장.
- 상품 목록 조회 - (***구현완료***)
- Endpoint: /api/products
- Method: GET
- 조건: 로그인 상태 불필요.
- 구현: 모든 상품 목록 페이지네이션으로 반환.
- 상품 수정 - (***구현완료***)
- Endpoint: /api/products/<int:productId>
- Method: PUT
- 조건: 로그인 상태, 수정 권한 있는 사용자(게시글 작성자)만 가능.
- 검증: 요청자가 게시글의 작성자와 일치하는지 확인.
- 구현: 입력된 정보로 기존 상품 정보를 업데이트.
- 상품 삭제 - (***구현완료***)
- Endpoint: /api/products/<int:productId>
- Method: DELETE
- 조건: 로그인 상태, 삭제 권한 있는 사용자(게시글 작성자)만 가능.
- 검증: 요청자가 게시글의 작성자와 일치하는지 확인.
- 구현: 해당 상품을 데이터베이스에서 삭제.
선택 기능
- 페이지네이션 및 필터링(검색기능) - (***검색 기능 완료***)
- 조건: 상품 목록 조회 시 적용됩니다.
- 구현: 제목, 유저명, 내용으로 필터링이 가능하며, 결과는 페이지네이션으로 관리
- 카테고리 기능(admin page 활용) - (***카테고리 기능만 완료***)
- Endpoint: /api/products/<int:productId>
- Method: POST
- 조건: admin 계정만 카테고리 생성 가능하며, 일반/로그인 유저는 상품등록 시 카테고리를 연결할 수 있음.
- 구현: 생성 시 카테고리명은 유일해야 하며, 연결 시 상품과 카테고리 간의 관계가 데이터베이스에 저장
데이터베이스 관계 모델링 선택 기능
- 게시글 좋아요 기능 - (***구현완료***)
- 필터링 처리 추가(좋아요 순)
- 태그 기능
- 모든 태그는 Unique해야 함 - (***구현완료***)
- Apple, aPple, applE는 같은 단어로 취급하여 데이터베이스 업데이트
- 모든 태그는 Unique해야 함 - (***구현완료***)
'코딩 교육 TIL' 카테고리의 다른 글
2024-05-03 AI 코딩 TIL (0) | 2024.05.03 |
---|---|
2024-05-02 AI 코딩 TIL (1) | 2024.05.02 |
2024-04-29 AI 코딩 TIL (0) | 2024.04.29 |
2024-04-26 Ai 코딩 TIL (0) | 2024.04.27 |
2024-04-25 AI 코딩 TIL (0) | 2024.04.25 |