Skip to content
haeminchoi2 edited this page Nov 8, 2022 · 7 revisions

추천시스템 DRF 프로젝트 (💵 USD 팀)

1. 👏 소개

  • 프로젝트명 : Na-Dle (나랑 들을래?)
    • 'Na-Dle'은 사용자의 취향을 반영하여 취향에 맞는 음악을 추천해주고, 취향이 비슷한 다른 사용자의 플레이리스트를 보여주는 추천서비스 입니다.

2. ⏱︎ 개발기간

  • 2022.11.02 ~ 2022.11.08

3. 🦕 역할분담

  • 🖥 Frontend

    • 팀원 전체
  • ⚙ Backend

    • 박수인 : 평정, 리뷰

    • 이동영 : 유저기능

    • 이현지 : 추천시스템

    • 정현주 : 평점, 리뷰

    • 최해민 : 추천시스템

4. 📂 기능 명세서


5. 📗 DB설계

6. 📕 API명세서

구분 NAME method URL request response
회원가입 회원가입HTML GET /users/signup/   회원가입 html
  회원가입 POST /users/signup/ { ”fullname”:fullname, ”username”:username, ”password”:password } redirect(”users/signin.html/”)
로그인 로그인HTML GET /users/signin/   로그인 html
  로그인 POST /users/signin/ { ”username”:username, “password”:password } redirect(”users/first_like.html/”)
로그아웃 로그아웃 POST /users/logout/   redirect(”users/first_like.html/”)
팔로우 팔로우 POST /users/follow/int:user_id/ { “follow” }  
프로필페이지 프로필조회 GET /users/str:username/   { ”id”:id, “my_reviews”:[review Object, music Object], “follower”:[follower Object], “follow”:[follow Object], “last_login”: last_login, “username”:username, “password”:password, “fullname”:fullname, “email”:email, “profile_image”:profile_image, “is_active”:is_active, “is_admin”: is_admin }
  프로필편집 GET /users/profile/ 로그인 유저 { ”username”:username, “password”:password,”profile_image”:profile_image,”email”:email, ”fullname”:fullname }
  프로필수정 PUT /users/profile/ { ”username”:username, “password”:password,”profile_image”:profile_image,”email”:email, ”fullname”:fullname }  
첫로그인 판단 첫로그인 판단 PATCH /users/first/int:user_id/ { “is_admin” }  
메인 추천시스템 결과 GET /musics/recommend/   { "musics": [music Object] ,"recommend_musics": [music Object],"recommend_users": [User Object] }
음원 전체음원목록 GET /musics/   {"id": id, "avg_grade": avg_grade, "title": title, "image": image, "artist": artist," album": album, "track_id": track_id }
  랜덤음원목록 GET /musics/random/ {”limit”: limit} {"id": id, "avg_grade": avg_grade, "title": title, "image": image, "artist": artist," album": album, "track_id": track_id }
  음원생성 POST /musics/ {”title”:title, ”image”:image, ”artist”:artist, ”album”:album }  
  음원상세조회        
/리뷰목록 GET /musics/int:music_id/   {"id": id, "avg_grade": avg_grade, "title": title, "image": image, "artist": artist," album": album, "track_id": track_id, “reviews”:[Review Object] }  
  음원수정 PUT /musics/int:music_id/ {”title”:title, ”image”:image, ”artist”:artist, ”album”:album }  
  음원삭제 DELETE /musics/int:music_id/    
리뷰 유저리뷰목록 GET /reviews/int:user_id/   {"id": id, "user": username, "music": [music Object],
"content": content, "created_at":created_at, "updated_at": updated_at, "grade": grade }          
  리뷰생성 POST /musics/int:music_id/reviews/ { ”content”:content, ”grade”:grade } {"id": id, "user": user, "user_id": user_id "content": content, "created_at": created_at, "updated_at": updated_at, "grade": grade "music": music_id}
  리뷰수정 PUT /musics/reviews/int:review_id/ { ”content”:content, ”grade”:grade } {"content": content,"grade": grade}
  리뷰삭제 DELETE /musics/reviews/int:review_id/    

5. 🍺 이렇게 문제 해결했어요.

상세보기 이동!