스파르타 AI 6기 심화 프로젝트
스파르타 뉴스 : GeekNews와 같은 레퍼런스를 토대로 뉴스 페이지를 만드는 프로젝트. article 관련 페이지와 account 관련 페이지를 django를 이용하여 만들고자 함.
- 2024.05.03 ~ 2024.05.10
- 이환희(팀장) : 댓글 CRUD 기능, 대댓글 CRUD 기능, README 작성
- 김동환(팀원) : 계정 CRUD 기능, ERD diagram 작성, 프론트엔드 구현
- 김시은(팀원) : 발표자료 및 발표
- 이혜민(팀원) : 게시글 CRUD 기능, README작성, API 작성
- Python : Django, DRF
- JavaScript : React
- DB : SQLite
- username, email, password (필수사항) / gender (선택사항)
- username, email 중복 체크
- password 암호화 (SHA-256)
- DB 값 검증
- username, password 입력 필요
- 로그인 성공 시, access, refresh 토큰 발급
- blacklist 생성을 통해 refresh 토큰 만료
- 로그인 상태 확인 > refresh 토큰값을 보유하고 있는 것을 통해 이미 로그인 상태라고 인지
- 해당 유저에 한해 회원정보 수정 가능
- username, email, gender 수정
- gender는 선택사항이나 "F", "M" 외에는 입력 불가능
- 로그인 상태에서 비밀번호 입력 시 계정탈퇴
- 전체 뉴스 목록을 조회
- 게시물의 title 부분 클릭 시 본문 내 url 주소로 이동 / 게시물의 content 부분 클릭 시 뉴스 상세 페이지로 이동
- 생성 일자를 기준 최신순으로 목록 나열
- pagination을 이용하여 5개씩 나타나도록 함
- 로그인 상태 필수
- title, content, url 입력 필요 (url은 "http://...@..." 형태로 작성)
- created_at,updated_at은 자동 생성, user_id은 로그인한 유저의 id 값이 자동으로 입력되어 따로 post할 필요 없음
- 게시물 생성 시 작성한 필드 표시
- 추가적으로 댓글 수, 댓글목록, 대댓글 목록, user_id, 좋아요 수 표시
- 작성자가 로그인된 상태여야 뉴스 수정 가능
- title, content, url 부분적으로 수정 가능
- 작성자가 로그인된 상태여야 뉴스 삭제 가능
- DB 에서 삭제
- 로그인된 상태에서 해당 유저가 특정 게시물에 좋아요 한 적이 없다면 좋아요 추가, 좋아요 한 적이 있다면 좋아요 취소
- 한 유저가 특정 게시물에 좋아요는 1번만 가능
- 댓글 조회는 로그인 상태가 아니여도 가능
- 댓글 생성, 수정, 삭제는 로그인 상태 필요
- 댓글 생성 시 로그인한 user_id 값은 자동으로 입력되어 따로 post할 필요 없음
- 댓글의 구조를 똑같이 상속받아 사용
- 대댓글 조회는 로그인 상태가 아니여도 가능
- 대댓글 생성, 수정, 삭제는 로그인 상태 필요
- 대댓글 생성 시 로그인한 user_id 값은 자동으로 입력되어 따로 post할 필요 없음
- RESTful API
- 댓글 CRUD
- 대댓글 CRUD