요구사항 100%!!!
1. 📌 공통
기본 요구사항
사용자는 회원가입과 로그인을 할 수 있습니다.
사용자는 채널에 올라온 글을 볼 수 있습니다.
사용자는 가입자 목록을 볼 수 있습니다.
사용자는 가입자를 이름으로 검색을 할 수 있습니다.
사용자는 가입자의 정보를 볼 수 있습니다.
사용자는 포스트 혹은 가입자를 검색할 수 있습니다.
인증된 사용자는 자신의 정보를 변경할 수 있습니다.
인증된 사용자는 채널에 올라온 글을 볼 수 있습니다.
인증된 사용자는 채널에 포스트를 남길 수 있습니다.
인증된 사용자는 포스트를 좋아요 할 수 있습니다.
인증된 사용자는 포스트에 댓글을 남길 수 있습니다.
인증된 사용자는 자신의 알림 목록을 확인 할 수 있습니다.
SPA 형태로 만들어주세요.
엉뚱한 페이지에 접속하면 404 페이지를 보여주세요.
보너스 요구사항
사용자는 현재 접속 중인 사용자를 볼 수 있습니다.
인증된 사용자는 다른 가입자에게 메시지를 보낼 수 있습니다.
인증된 사용자는 자신에게 온 메시지 목록을 확인 할 수 있습니다.
인증된 사용자는 특정 사용자와의 메시지 대화 내역을 확인 할 수 있습니다.
인증된 사용자는 프로필 이미지 변경 및 포스트를 작성할 때 이미지를 첨부할 수 있습니다. 파일 업로드를 구현해보세요.
다크 모드를 적용해보세요.
2. 📃 페이지 별 요구사항
메인
처음 메인 페이지에 접속시 올라온 순서대로 모집글을 볼 수 있습니다.
모집글을 프론트엔드, 백엔드, ios, 안드로이드, AI, 디자이너, 기타 채널별로 필터 해서 볼 수 있습니다.
포스트 제목으로 포스트를 검색한다.
글이 많을경우 페이지네이션으로 분리된다. → 더보기로 변경
로그인
로고를 클릭해 메인페이지로 이동할 수 있습니다
유효성 검사
- 사용자는 아이디와 비밀번호 둘 다 입력해야 합니다
- 입력한 아이디가 이메일 형식인지 유효성을 검사합니다.
- 아이디: 6~12자 사이의 알파벳 소문자, 숫자여야 합니다
- 비밀번호: 6~12자 사이의 알파벳 소문자, 숫자여야 합니다
로그인 완료
- 사용자는 로그인 버튼을 클릭하여 입력한 아이디와 비밀번호로 로그인을 완료할 수 있습니다.
- 사용자가 로그인을 실패할 경우
- "아이디와 비밀번호를 확인하세요"라는 문구를 확인할 수 있고 로그인페이지에서 다시 아이디, 비밀번호를 입력할 수 있습니다.
사용자는 회원가입 버튼을 클릭하여 회원가입 페이지로 이동하여 회원가입을 진행할 수 있습니다.
회원가입
모든 사용자는 회원가입 페이지에 접근할 수 있습니다.
필수 입력 정보
- email을 입력할 수 있습니다.
- password을 입력할 수 있습니다.
- name(닉네임)을 입력할 수 있습니다.
- 셋중 하나라도 미 입력 시 (A 항목) "A 항목을 입력해주세요"라는 문구를 보여줍니다. (단, A는 필수 정보 중 하나)
중복 확인 버튼 클릭 시 중복 검사
- 중복된 email → "이미 있는 email 입니다."
- 중복된 name → "이미 존재하는 name 입니다."
사용자는 Sign up버튼을 클릭해 회원가입을 요청할 수 있습니다.
사용자는 헤더에 있는 로고를 클릭해 회원가입을 취소할 수 있습니다.
로고 클릭 시 “가입을 취소하겠습니까?” 확인 메세지
회원가입이 완료되면 로그인페이지로 이동합니다. → 메인 페이지로 이동
회원 정보 검색
사용자는 가입된 사용자의 목록을 확인할 수 있습니다.
사용자는 이름으로 다른 사용자를 검색할 수 있습니다.
사용자는 다른 사용자의 프로필을 조회할 수 있습니다.
게시글 상세
사용자는 게시글의 상세 내역을 조회할 수 있습니다.
인증된 사용자와 작성자는 조회된 게시글에 대한 댓글을 작성할 수 있습니다.
인증된 사용자와 작성자는 작성한 댓글을 삭제할 수 있습니다.
- 삭제 버튼 클릭 시 “선택한 댓글을 정말로 삭제하시겠습니까?” 메시지를 출력하며 삭제를 클릭할 경우 삭제, 취소를 클릭할 경우 취소할 수 있습니다.
인증된 사용자는 조회된 게시글에 대한 “좋아요”를 클릭할 수 있습니다.
- 좋아요는 토글형식의 활성/비활성 상태입니다.
작성자는 해당 게시글을 수정 및 삭제할 수 있습니다.
- 수정 버튼 클릭 시 수정 페이지로 이동합니다.
- 삭제 버튼 클릭 시 “선택한 게시물을 정말로 삭제하시겠습니까?” 메시지를 출력하며 삭제를 클릭할 경우 삭제, 취소를 클릭할 경우 취소할 수 있습니다. 또한 게시물이 삭제되면 메인 페이지로 이동합니다.
인증된 사용자와 작성자는 다른 사용자의 프로필 이미지를 클릭하여 프로필 정보를 볼 수 있습니다.
게시글 수정 / 작성
사용자는 헤더에 접근할 수 있어야한다
사용자는 제목을 입력할 수 있다
사용자는 진행방식을 select할 수 있다
사용자는 모집분야를 선택할 수 있다
사용자는 모집 분야에 따른 모집인원과 기술스택을 선택할 수 있다
사용자는 예상 기간을 작성할 수 있다
사용자는 연락방법을 작성할 수 있다
사용자는 시작일을 작성할 수 있다
사용자는 프로젝트 소개를 작성할 수 있다
사용자는 이미지를 넣을 수 있다
유효성 검사를 한다
마이페이지
- 사용자 마이페이지
사용자는 프로필 이미지를 설정할 수 있습니다.
사용자는 커버 이미지를 설정할 수 있습니다.
사용자는 사용자가 작성한 글 목록을 확인할 수 있으며, 작성한 글의 상세 페이지로 이동할 수 있습니다.
사용자는 사용자가 좋아요 한 글 목록을 확인할 수 있으며, 좋아요 한 글의 상세 페이지로 이동할 수 있습니다.
- 다른 사용자 마이페이지
다른 사용자를 팔로우 할 수 있습니다.
다른 사용자를 팔로우 취소할 수 있습니다.
404
눈에 띄는 부분에 메인 페이지를 호출하는 버튼 혹은 이미지가 있습니다.
🥰 KEEP(현재 만족하고 있는 부분, 계속해서 이어나갔으면 하는 부분)
기획
- 2일 동안 기획한 것 치고는 퀄리티가 좋은 기획이 완성되었다?!
- 아이디어 기획, 역할 배분이 빨리 됐다
- 팀원들이 다같이 참여하여 탄탄한 기획안이 완성되었고 디자인 및 개발 작업이 원활하게 진행될 수 있었다.
프로젝트 관리 (git/github)
- gitHub의 Discussion를 통해 안건이 잘 정리 되어있어 회의 시간을 단축할 수 있었다.
- github discussion ,wiki, project 등 다양한 깃허브 기능들을 잘 활용했다
코드 리뷰
- 코드 리뷰 짝꿍이 정해지고 나서 리뷰에 대한 부담감이 줄어들고 시간을 절약할 수 있어 좋았다.
- 코드리뷰할 때 영상이나 사진을 첨부하는 점이 좋았다
- 생각지못한 부분에서 고쳐야하거나 개선되면 좋을 부분들을 많이 리뷰 받을 수 있어서 좋았습니다.
팀 문화
- 구성원들 모두 프로젝트에 대한 열정이 있어서 좋았습니다.
팀 평가 ? 자기 평가 ?
- 팀워크는 짱짱이었다고 생각한다. 다른 팀에 비해 디코에 접속해 있는 시간이 길었던게 비결이 아닌지
- 맞는 것 같다
- 프로젝트 기간 동안 팀원들 모두 디코에 접속해 있는 시간이 길어져서 언제든 의견을 나눌 수 있어 좋았고, 같이 하고 있다는 것이 느껴져 좋았다. (그런데 다들 건강은 괜찮은지..)
개발
- 일 배분은 기획이 끝나고 공통 컴포넌트와 페이지로 나눈 후에 각자 할 일이 끝나면 알아서 남은 일을 처리하는 모습이 좋았다.
프로젝트 문서화
- 프로젝트를 진행하다 문서화의 필요성을 느끼고 나서 깃허브 디스커션을 적극적으로 활용한 점이 좋았다.
- 동의함. 매일 안건을 미리 정리할 수 있어서 좋았습니다
🙄 PROBLEM(개선이 필요하다고 생각하는 부분, 잠재적인 문제) + TRY(Problem에 대한 해결책) + 🧐 TRY(Problem에 대한 해결책)
기획
- 차별점에 대한 기획을 완성도있게 했더라면 포기하지 않았을 것 같다. 진행 중에 기획을 하려니 계속 미뤄졌다. 프로젝트가 끝나고 나니 어떻게든 시간을 할애해서 기획하고 구현할 걸하고 미련이 남는다.
- 해결책: 기본 기능과 차별점을 우선순위에 두고 해당 기능들을 먼저 구현하는 방향으로 가야할 것 같다.
- 스타일에대한 컨벤션도 미리 정해뒀으면 좋았을 것 같다. 그런부분에 대해 고려되지 못하고 디자인이 들어가서 중간에 이에대한 언급이 몇번 되었다.
- 해결책 : 스타일에대한 컨벤션도 미리 정해뒀으면 좋았을 것 같다.
- 기획에서 좀 더 꼼꼼히 API를 확인해봤으면 좋았을 것 같다. 후반에 이때문에 겪은 문제들이 좀 있었다.
- 해결책: 기획 전 API 테스트(요청값, 응답값 확인) 다같이 해보기
프로젝트 관리 (git/github)
- wiki와 discussion 완벽한 구분을 못 한게 아쉬웠다. 어떤 부분을 어디에서 다룰 지 먼저 적었어도 좋았을 거 같다.
- 해결책 : 각 페이지의 역할을 먼저 확실히 구분해놓는게 좋은 거 같다 !
- 브랜치 전략이나 컨벤션을 정할 때 조금 더 자세한 것까지 알아보고 정했으면 프로젝트 도중 정하는 일이 많이 줄어들었을 것 같다!
- 해결책 : 다음에는 이번 프로젝트 경험을 되짚어 보면서 브랜치 컨벤션, 깃 커밋 타입 컨벤션 등등 엄격하게(?) 규칙을 잡고 가야할 것 같다
- 커밋메시지를 좀더 많이 세분화하고 좀더 명확한 목적을 적어놨으면 좋았을 것 같다.
- 깃허브 project를 잘 활용하지 못 한 탓에 현재 팀원이 어느 작업을 하고 있는지, 어느 정도 했는지와 프로젝트의 진척도를 한 눈에 파악하기가 어려웠던 것 같다.
- 해결책: 프로젝트 기능 명세서를 살펴보면서, 스크럼 때 자신이 오늘 할 일과 예상 기간까지 생각하여 말하면 프로젝트의 진척도나 자신의 개발 속도를 알 수 있을 것 같다.
코드 리뷰
- 자기 파트 구현 때문에 다른 팀원 리뷰를 많이 못한 것 같아 아쉽다. 짝꿍 제도나 좀더 의무적인 부분을 초반에 도입해도 좋았을 것 같다. 2명의 approve 받는 부분이 좋았다.
팀 문화
- 개인적으로 팀 갈등이 많이 없어서 아쉬웠다. 그냥 싸우는게 아니라 좀더 좋은 개발을 위한 투쟁 ㅋㅋ
- 어떤 갈등을 원했는지 궁금하군요..
- 아이디어 회의나 결정을 내리는 일에서 팀원 전부의 의견이 반영된 것이 아닌 몇몇의 의견만 반영되는 것 같아 아쉬웠다.
- 다들 새벽까지 열심히하는건 보기 좋았으나 뒤로갈수록 다들 너무 힘들어하는게 보였다.
- 해결책 : 프로젝트가 더 길었으면 이에대한 이야기를 해보는 것도 좋을 것 같았다. 예를 들면 다 같이 휴식을 갖는 시간을 만들던가~~
- 공감합니다 ..
팀 평가
- 팀워크나 분위기는 매우 좋았다고 생각한다. 아쉬운 부분은 팀장의 부담이나 역할이 너무 많지 않았나..? 전체적인 흐름을 어떻게 다같이 챙길 수 있을지는 고민이 됐다
- 동감합니다. 선장님의 하드캐리였습니다.👍👍
개발
- 기획에서 우선순위가 좀더 들어갔으면 좋았을 것 같기도 하다. 예를 들면 기본 기능을 포기하더라도 이 기능은 살려야 한다 같은 것? 물론 기본 기능도 중요하지만 차별점을 위해서는 새로운 시도도 필요했을 것 같다.
- 사용자 검색 API를 제대로 확인 못하여 개발 시간이 지체되는 일이 있었다.
- 다음부터는 API를 좀 더 자세히 읽어봐야겠다.
- storybook을 사용했으나 잦은 코드변경이 이루어지면서 이에대해 storybook엔 반영이 안되서 나중에는 볼 수 없었다.
프로젝트 문서화
- discussion에 비해 wiki를 잘 활용하지 못했다는 생각이 들었다.
- 해결책 : wiki에서 공유되는 내용에 대한 확실한 가이드라인을 정하면 좋을 것 같다.
- 어떤 결과물, 누구에게 보이고 싶은가?에 대한 고민을 못해본게 아쉽다.
- 해결책: 처음 기획단계에서부터 뭘 챙겨가야하는지 정했으면 더 챙기기 수월하지 않았을까
- 회의 시간 외에 결정되는 사항들은 문서화를 하지 못 한 것 같아 아쉽고 항상 팀원들에게 그 때 어떻게 정해졌었죠?라고 물어봤던 것 같다.
- 해결책: 안건이 있을 경우 discussion에 안건을 명시하고 안건에 대해 결정이 나면 wiki에 문서화를 해두자
- 모든 결정을 다같이 해야하는지?
- 해결책: 급하면 일단 결정을 하고 다음날 모두에게 공유!