# errorHadDuck readMe ## 기술 스택 ### Front - HTML - React - react-router-dom - style : bootstrap4, font-awesome, font(https://fonts.google.com/?subset=korean 참고해서 정하기) ### Back - 서버 : NodeJS (AWS EC2) - 미들웨어 : Express, cors - DB : mysql (AWS RDS-mysql) - orm : sequelize - 보안 : crypto ([참고] https://www.zerocho.com/category/NodeJS/post/593a487c2ed1da0018cff95d ) ```javascript= crypto.pbkdf2('입력비밀번호', '기존salt', 100000, 64, 'sha512', (err, key) => { console.log(key.toString('base64') === '기존 비밀번호'); }); ``` :AWS COGNITO (https://docs.aws.amazon.com/ko_kr/cognito/latest/developerguide/what-is-amazon-cognito.html) - 세션검증 : cookie-parser ## 팀원정보 | 이름 | 스택 | TIL blog | github username | | ------ | --------- | --------------------------------- | --------------- | | 조아라 | front-end | https://grin-quokka.tistory.com/ | grin-quokka | | 박강호 | front-end | https://medium.com/@whatorjust/ | whatorjust | | 이해준 | back-end | https://medium.com/@0oooceanhigh/ | liftingturn | | | | | | --- # 프로젝트 기획 및 범위설정 ## bare minimum 1. 회원기능 (아이디, 비밀번호, 이메일) (node.js,로컬mysql) 2. 에러 로그 게시판 (CRUD) 3. 채팅창('꽉꽉'만 말함) 4. 배포용 서버 업로드 (EC2,RDS) 5. 서버 - router 연결 6. AWS 배포 (S3) 7. css : bootstrap4 사용 8. 보안 : crypto (세션, 해싱) ## advance 1. 회원 정보 수정 (마이페이지) 2. 비밀번호 관리 : AWS COGNITO 3. 클라우드-프론트 연동(https) 4. css : tailwind 사용 5. 개인 통계 6. 글에 태그 달아서 sorting 7. 답변 달릴 시 알림 (mailgun.com) 8. 서비스 이용 통계 (google analytics) ## nightmare 1. 회원 정보 추가 (이미지 등) 3. 챗봇 (api 활용) 4. sns 공유 기능 5. 회원들끼리 통계/랭킹 6. 다크 모드 7. 채팅 내용 저장, 다시 보기 8. 리덕스 적용 --- API 정의 --- ## 시스템 아키텍쳐 설계 (기능 Flow, 컴포넌트 구성) ### flow - 로그인 페이지 (로그인 / 회원가입) - - 회원가입 페이지 - - 기입한 정보를 보여주는 페이지 - 홈으로 이동 - - 로그인 - overview (총 문제, 해결된 문제, 미해결된 문제) - 뱃지로 갯수, 카드 형식(최근 몇개만) - nav bar - 게시글 목록 페이지(해결된 창, 미해결된 창) - 작성하는 페이지 - 수정하는 페이지 - 프로젝트 진행을 Sprint 로 구분. (각 스프린트는 하나의 일정한 기능단위 완성으로 구성되어야 합니다. ex) Sprint1 완성시 기능을 제외한 프로젝트 컴포넌트 및 영역 구분 완료) - DB 설계 - #### team rule 1. 10시에 칼퇴근 2. 10:15 ~ 10:35 스탠드 업 미팅 3. 19:10 ~ 19:40 팀 자체 코드 리뷰, merge 4. 불만사항, 건의사항 회의시간에 꼭 말하기 5. DM으로 욕하지 말기 #### 기타 rule (공부 후 논의) - MVC 구조 - 디렉토리 구조 ..? (이미지는 어디에 저장할지 등) - gitignore - eslint - prettier - 버전 (package.json) - git flow 연습용 저장소 - 기능별 branch 분리(-b) - merge, pull 연습 - 회의 / 코드리뷰 → 로그 적기 md share로 작성 - 커밋 시기 룰, 커밋 메세지 룰 (참고 : https://meetup.toast.com/posts/106) 1. 제목과 본문을 한 줄 띄워 분리하기 2. 제목은 영문 기준 50자 이내로 3. 제목 첫글자를 대문자로 4. 제목 끝에 . 금지 5. 제목은 명령조로 6. 본문은 영문 기준 72자마다 줄 바꾸기 7. 본문은 어떻게보다 무엇을, 왜에 맞춰 작성하기 - 학습할 시간도 task에 넣기 - 매일 코드리뷰 후 merge -> 시간 정하기 - 일하는 시간 정하기 ### DOC - [서버 저장소]-fork 후 업뎃 - [클라이언트 저장소]-fork 후 업뎃 - [미로](https://miro.com/app/board/o9J_kwKhf6c=/) - [노션 페이지](https://www.notion.so/6-errorHadDuck-TEAM-QUACK-61747e9aaa58486fadacb4cd54fb3c85) - [오븐 프로토타입](https://ovenapp.io/view/O87H43tYQiolsC5EubzfmMvL0ZF4oOjk/q65D8) | http method | endpoint | req(json) | res(성공/실패) | detail | usage | example | | ----------- | ---------------------- | ------------------------- | ------------------------------- | ------------------------------------------------------ | -------------------------- | ------- | | POST | /users/login | username, password | 200/204 | 로그인 | 로그인 | | | POST | /users/signup | username, email, password | 200/204 | 회원가입 제출 | 회원가입 제출 | | | GET | /posts | - | 200/204 | 모든 게시글 요청 | 모든 게시글 요청 | | | GET | /posts?iscomplete=bool | - | 200/204 | 미해결/해결 모든 글 요청 | 미해결/해결 모든 글 요청 | | | POST | /posts | 해당 페이지 모든 정보 | 200+postid/204 | 등록 이후 받은 postid 통해서 개별 글 페이지 이동 | 새 글 등록 | | | PATCH | /posts/:postid | 변경된 모든 필드 | 200+postid/204 | | | | | DELETE | /posts/:postid | - | 200/204 | 서버에서는 cascade delete등 관련된 연결,데이터 다 삭제 | 개별페이지에서 삭제 클릭시 | | | GET | /posts/:postid | - | 200+개별페이지구성 모든정보/204 | postid 1개에 해당하는 개별페이지 구성정보 전부 return | 개별 글 페이지 진입 | | | | | | | | | |