스파르타코딩클럽/내일배움캠프

[내일배움캠프 AI] B5팀 - "Instagram 클론코딩" 프로젝트 S.A.

이모냥냥 2022. 9. 29. 17:38
반응형
🔥 Intro: “본격적인 팀 프로젝트 시작합시다!”

 

"Instagram 클론 코딩" 프로젝트 S.A.(Starting Assignment)

B5팀 - OB

⭐팀장⭐ : 이현지

⭐팀원⭐ : 손상훈 , 유승주, 조인걸, 주세민

 

역할 분담

  1. 프로젝트 초기 베이스 작업은 다 같이 진행
    - 베이스 내용에 대해 하나씩 같이 작업하여 틀에 대한 개념을 익히기 위함
    - 추후 개별 작업 진행 후 푸시할 때 오류 확률이 낮아질 것으로 기대

  2. 베이스 작업 완료 후 개별 기능들은 인원수에 맞게 나누어 배정
    - 개별 기능은 파트를 나누어 진행하기로 의견을 조율
  3. 본인에게 할당된 기능 부분 작업 완료 후 다른 인원 백업
    - 본인 할당량이 끝나는데에서 마치지 않고 팀 프로젝트의 목표에 맞게 도움이 필요한 인원을 이끌어주는 형태로 진행 예정

 

와이어 프레임

피그마 👉 https://www.figma.com/file/ETabN1ZkTs9j803V7D9D6y/Untitled?node-id=0%3A1

 

  1. 로그인 페이지(로그인 기능 구현)
  2. 회원가입 페이지(회원가입 기능 구현)
  3. 메인 화면
    • 홈버튼
    • 검색
    • 게시물 작성
    • 좋아요
    • 프로필

 

노란색 필수 구현사항

연두색 추가 구현사항

 

화면 구성

로그인/회원가입 화면

메인화면

게시글작성 / 게시글상세페이지

프로필 / 프로필 - 좋아요목록

팔로우 목록

프로필 편집

 

 

 

DB설계

USER

인스타 로그인 기능 구현을 위해 총 8가지의 정보를 받아 DB에 저장한다.

  • 아이디(Username) : PK
  • 이메일(Email)
  • 성명(Fullname)
  • 패스워드(Password)
  • 바이오(bio)
  • 전화번호(phone)
  • 프로필이미지(profile_image))

 

POST

게시글 기능 구현을 위해 총 5가지의 정보를 받아 DB에 저장한다.

게시글번호 를 기본키로 갖고, USER모델의 아이디를 외래키로 갖는다.

  • 게시글번호(id) : PK
  • 내용(content)
  • 생성일자(created_at)
  • 수정일자(updated_at)
  • 유저아이디(username)  : User모델의 FK

 

COMMENT

댓글 기능 구현을 위해 총 5가지의 정보를 받아 DB에 저장한다.

댓글번호를 기본키로 갖고, USER모델의 아이디, POST모델의 게시글번호를 외래키로 갖는다.

  • 댓글번호(id) 
  • 내용(content)
  • 생성일자(created_at)
  • 게시글번호(post_id) : POST 모델의 FK
  • 유저아이디(username)  : User모델의 FK

 

LIKE

좋아요 기능 구현을 위해 총 3가지의 정보를 받아 DB에 저장한다.

좋아요를 기본키로 갖고, USER모델의 아이디, POST모델의 게시글번호를 외래키로 갖는다.

  • 좋아요ID(id) : PK
  • 아이디(username) : User모델의 FK
  • 게시글번호(post_id) : POST 모델의 FK

 

FOLLOW

팔로우 기능 구현을 위해 총 3가지의 정보를 받아 DB에 저장한다.

팔로우를 기본키로 갖고, USER모델의 아이디들을 외래키로 갖는다.

  • 팔로우id(id) : PK
  • 아이디(Username) : User모델의 FK
  • 아이디(Username2) : User모델의 FK

 

API 설계

기능 메소드 URL request response
로그인 POST /users/sign-in {‘username’ : username,
‘pw’ : pw}
redirect(“/”)
회원가입 POST /users/sign-up {‘username’ : username,
‘pw’ : pw,
‘pw-valid’ : pw-valid,
‘email’: email,
‘fullname’ : fullname}
redirect(“/sign-in”)
프로필 수정 POST /users/update/<username> {‘username’ : username,
‘email’: email,
‘fullname’ : fullname,
‘website’: website,
‘bio’:bio,
‘phone’:phone,
‘profile_image’:profile_image}
redirect(“/users/edit”)
비밀번호 변경 POST /users/password/<username> {‘username’:username
‘current-pw’: current-pw
‘pw’ : pw,
‘pw-valid’ : pw-valid}
 
         
전체게시글 조회 GET /post   PostModel
내 게시글 조회 GET /post/<username> {‘username’:username} PostModel
게시글 작성 POST /post {‘content : content}  
게시글 수정 POST /post/update/<id> {‘id’ : id,
‘content : content}
 
게시글 삭제 GET /post/delete/<id> {‘id’ : id}  
         
댓글 조회 GET /comment/<post_id> {‘post_id’:post_id} CommentModel
댓글 작성 POST /comment/create/<id> {comment : “댓글 내용”}  
댓글 삭제 GET /comment/delete/<id> {‘id’ : id}  
         
좋아요 목록 GET /like/ {‘username’:username} LikeModel
좋아요 추가 POST /like/<post_id> {‘username’:username,
‘post_id’,post_id}
 
좋아요 취소 GET /like/delete/<id> {‘id’ : id}  
         
팔로우 목록 GET /follow/followee   FollowModel
팔로우 추가 POST /follow {}  
팔로우 취소 GET /follow/delete/<id> {id : id}  

 

반응형