Skip to content
Junho Choi edited this page Dec 14, 2022 · 17 revisions

FITogether

Welcome to the swppfall2022-team4 wiki!

Summarized Features

Main Page, Header

  • 로그인시 유저는 메인 페이지에서 '이번 달 칼로리 차트', '오늘의 운동 기록', '인기 게시글', '최근 생성된 그룹' 등을 볼 수 있습니다.
  • 헤더의 탭을 눌러 아래의 기능들을 사용할 수 있습니다.

Workout Routine

  • Workout Page
    • 날짜 별 운동 기록을 입력할 수 있습니다. 태그에 존재하는 운동 종류들로 입력할 수 있고 새로운 운동 종류를 입력하고 싶은 경우, 커뮤니티에서 태그를 생성할 수 있습니다. 또, 운동종류 간의 순서를 바꾸고 싶으면 드래그 앤 드롭을 하면 됩니다.
    • 달력에서 날짜를 클릭하면 해당 날짜의 운동 기록을 조회할 수 있고 날짜에 마우스를 가져다 대면 수행한 운동 종류들과 칼로리를 미리 볼 수 있습니다.
    • 운동 기록 목록을 복사해서 붙여넣을 수 있습니다. 내보내기를 클릭하면 복사가 되고 불러오기를 클릭하면 붙여넣을 수 있습니다. 같은 날에는 불러올 수 없도록 막아두었습니다.
    • 날짜 별로 사진을 3장씩 업로드할 수 있고 메모(Notes)를 추가할 수 있습니다.
    • 운동 기록 가장 하단에 계산된 칼로리 수를 보여주며 메인 페이지에서 이번 달의 칼로리 추이를 확인할 수 있습니다.
    • 일정 날짜의 운동 기록을 보관하고 싶은 경우 루틴추가 버튼을 클릭하며 루틴으로 추가할 수 있습니다.
    • 루틴 버튼을 클릭하면 Routine Page로 이동합니다.
  • Routine Page
    • 달력으로 돌아가기 텍스트를 클릭하면 Workout Page로 이동합니다.
    • 저장한 루틴들의 이름 목록을 볼 수 있고 특정 이름을 클릭할 경우, 루틴에 기록된 운동들을 확인할 수 있습니다.
    • 수정 버튼을 눌러 루틴의 이름을 변경할 수 있습니다.
    • 복사 버튼을 눌러 해당 루틴의 운동기록들을 복사할 수 있습니다. 달력으로 돌아가기를 클릭하면 복사 내역이 유지되며 원하는 날짜에 불러올 수 있습니다.

Group

  • Group List Page
    • 지금까지 생성된 그룹을 볼 수 있습니다.
    • 최신순, 오래된순, 가까운 순, 나의 그룹으로 정렬/필터링하여 그룹들을 볼 수 있습니다.
    • keyword로 그룹을 검색할 수 있습니다.
  • Group Create Page
    • 그룹명, 그룹설명, 목표, 자유가입 여부, 장소를 설정하여 그룹을 생성할 수 있습니다.
  • Group Detail Page
    • 그룹의 상세 페이지입니다.
    • 멤버의 상태에 따라 옵션이 다르게 보입니다.
    • 그룹의 주인은 그룹 멤버 보기, 그룹 멤버 요청, 그룹 채팅, 그룸 커뮤니티, 그룹 삭제를 할 수 있습니다.
    • 그룹의 멤버는 그룹 멤버 보기, 그룹 채팅, 그룸 커뮤니티, 그룹 나가기를 할 수 있습니다.
    • 그룹의 멤버가 아닌 유저는 그룹에 조인하기를 할 수 있습니다.
  • Group Certificate Page
    • 그룹에서 정한 운동 목표를 날짜별로 인증할 수 있습니다.
    • 그룹의 n개의 운동 목표를 모두 달성하면 하나의 인증으로 카운트됩니다.
    • 멤버별 인증 개수는 그룹 멤버 보기에서 확인할 수 있습니다.
  • Group Member Page
    • 그룹 멤버들을 확인할 수 있고 그룹장을 넘겨줄 수 있습니다.
    • 자유가입이 아닌 그룹의 경우 멤버 요청 페이지에서 그룹 조인 요청을 볼 수 있고 승인 또는 삭제할 수 있습니다.
  • Group Posts Page
    • 그룹의 멤버라면 '커뮤니티' 버튼을 눌러 그룹 멤버만 접근 가능한 그룹 커뮤니티로 이동할 수 있습니다.
    • 이곳에서 가능한 활동은 기본적으로 '커뮤니티' 탭에서 할 수 있는 활동과 거의 동일하나, 그 게시글들의 공개 범위가 그룹 멤버로 제한된다는 점이 다릅니다.
  • Group Chat
    • '그룹 채팅' 버튼을 눌러 그룹의 멤버끼리만 사용할 수 있는 그룹 채팅방 페이지로 이동할 수 있습니다.

Community(Posts)

  • Post Main Page
    • 게시글을 조회할 수 있습니다(Paginated).
    • Tag, Keyword로 검색이 가능합니다.
    • 최근 댓글이 달린 글로 이동할 수 있습니다.
    • 태그 목록을 '자세히보기'를 눌러 확인할 수 있습니다. 이렇게 열린 팝업에서는 태그 카테고리 또는 태그를 생성할 수도 있습니다. 인기 있는 태그도 볼 수 있습니다.
    • '글 쓰기'를 눌러 글을 작성할 수 있습니다.
  • Post Create & Edit Page
    • 글의 제목, 내용은 기본적으로 Plain Text입니다. Image, Routine, Group을 첨부할 수 있고, 태그 및 대표 태그도 설정할 수 있습니다.
    • 글자수제한이 기본적으로 적용되며, Image는 5장 첨부할 수 있고, Routine, Group은 각각 최대 1개 첨부할 수 있습니다.
  • Post Detail Page
    • 글에 이미지가 첨부되어 있다면 그를 눌러 이미지를 자세히 볼 수 있습니다.
    • 글의 작성자라면 글을 편집하거나 삭제할 수 있습니다.
    • 글(혹은 댓글)의 작성자 아바타를 누르면 그 유저에 대한 간단한 정보를 볼 수 있으며, 프로필 or 채팅 페이지로 이동할 수 있습니다.
    • 글에 좋아요, 싫어요, 스크랩이 가능합니다.
    • 댓글 및 답글을 작성할 수 있습니다. 답글에 대한 답글은 불가능합니다.
    • 댓글에도 좋아요, 싫어요가 가능합니다.
    • 댓글의 작성자라면 댓글을 편집하거나 삭제할 수 있습니다.

Information

  • Information Lobby Page
    • 운동 태그 카테고리에 대한 태그가 생성되면 자동으로 Information Detail Page도 생성됩니다.
    • Information Lobby Page에서는 운동 카테고리 종류별로 구분된 태그들을 조회하고, 이를 눌러 Information Detail Page로 이동할 수 있습니다.
    • 키워드로 검색할 수 있습니다.
  • Information Detail Page
    • 그 해당 태그를 가진 그룹과 게시글을 보여줍니다(누르면 그 해당 Detail Page로 이동합니다).
    • 그 태그의 이름을 기준으로 유튜브 영상을 Crawling해옵니다.

User, Chatting, Notification

  • Mypage
    • 마이페이지에서는 유저의 아이디, 닉네임, 레벨 등의 정보를 볼 수 있습니다.
    • 유저가 작성한 글과 댓글 목록을 볼 수 있으며, 스크랩한 글과 팔로우/팔로잉 목록도 볼 수 있습니다.
    • 본인의 마이페이지에서 정보 수정 버튼을 누르면 개인정보나 프로필 사진을 수정할 수 있습니다.
    • 본인의 마이페이지에서 회원 탈퇴를 할 수 있습니다.
    • 다른 사람의 마이페이지에서는 팔로우/언팔로우를 할 수 있고, 그 유저와의 채팅방으로 이동할 수도 있습니다.
  • Chatting
    • 채팅 페이지의 좌측에는 다른 유저와의 1:1 채팅방 목록을 볼 수 있습니다.
    • 채팅방 중 하나를 클릭하면 그동안 주고받은 메시지를 볼 수 있으며, 아래쪽의 입력창을 사용하여 새 메시지를 보낼 수 있습니다.
    • 다른 채팅방에 새로운 메시지가 도착하면 그 채팅방은 목록의 상단으로 올라가며, 새 메시지가 도착했다는 표시가 생깁니다. 이 표시는 메시지를 읽으면 사라집니다.
  • Notification
    • 헤더의 알림 아이콘을 누르면 최근 도착한 알림을 보여주는 작은 창을 띄울 수 있습니다.
    • 알림 더 보기를 눌러 알림 페이지로 이동하면, 확인하지 않은 모든 알림 목록을 볼 수 있습니다.
    • 각각의 알림을 클릭하여 그에 연결된 페이지로 이동할 수 있고, 'X' 표시를 눌러 삭제할 수도 있습니다.
    • 알림 페이지에서 전체 삭제 버튼을 누르면 모든 알림을 삭제할 수 있습니다.

Backend Commands

Create

  • python manage.py seed_users -n [#Users]
    • 임의의 유저 데이터를 생성합니다.
  • python manage.py seed_chatrooms
    • 존재하는 유저들 사이에 채팅방을 생성합니다.
  • python manage.py seed_messages -n [#Messages]
    • 존재하는 채팅방 및 그룹 채팅방에 메시지를 생성합니다.
  • python manage.py prepare_tags
    • 사전에 설정된 기본 태그 클래스 및 그 태그들을 생성(준비)합니다.
    • 운동 태그들의 경우 대응되는 information 객체들도 생성합니다.
  • python manage.py seed_logs -n [#WorkoutLogs]
    • workout log를 생성합니다.
  • python manage.py seed_log_oneday -n [#WorkoutLogs] -i [#UserId] -d [#Date(ex. 2022-12-03)]
    • 특정 일자와 특정 유저에 대해 workout log를 생성합니다.
    • 유저 ID를 지정하지 않을 경우, 1로 지정됩니다.
    • 날짜를 지정하지 않을 경우, 오늘 날짜로 지정됩니다.
  • python manage.py seed_groups -n [#Groups]
    • Group을 생성합니다. 멤버 요청과 그룹 인증도 함께 생성됩니다.
  • python manage.py seed_posts -n [#Posts]
    • 게시글을 생성합니다.
  • python manage.py seed_comments -n [#Comments]
    • 댓글을 생성합니다. 기존 댓글이 있다면 확률적으로 이들을 parent_comment로 하는 답글을 생성합니다.

Delete

  • python manage.py delete_tags
    • 태그, 태그 클래스를 모두 삭제합니다.
  • python manage.py delete_posts
    • 현재 존재하는 모든 게시글을 삭제합니다.
  • python manage.py delete_comments
    • 현재 존재하는 모든 댓글 및 답글을 삭제합니다.
  • python manage.py delete_groups
    • 현재 존재하는 모든 그룹을 삭제합니다.

Clone this wiki locally