프로젝트: Slack (클론 프로젝트)
설명: Socket 기능구현을 위해 Slack을 클론코딩하였습니다.
제작: 2022.04.15~2022.04.21
시연영상: https://www.youtube.com/watch?v=nZWXoWw93bg&t=1s
깃허브: Frontend Github / Backen Github
노션: https://zircon-dolphin-2d9.notion.site/7cf89428eab0438abb8e85dab3e734b0
사용기술
- Server: AWS EC2 (Ubuntu 18.04 LTS)
- Framework: Express (Node.js)
- Database: MongoDB (Mongoose)
- JWT (Json Web Token)
- Joi
- Bcrypt
- CORS
- Multer
- Front-end: React
핵심기능
- 로그인페이지
- 아이디, 패스워드 입력 가능
- 로그인 시, 토큰전달 (모든페이지에서 해당 토큰확인)
- 이메일 형식 확인 가능
- 아이디/닉네임 중복검사 가능
- 비밀번호 재확인 일치하는지 확인 가능
- 채널페이지
- 채널 조회, 생성, 수정, 삭제 가능
- 채널 내 내용 조회, 생성, 수정, 삭제 가능 (수정시, 편집됨 표시)
- 내용 내 코멘트 조회, 생성, 삭제 가능
- 다이렉트메시지 페이지
- 친구들과 실시간 채팅 가능
Trouble Shooting
▶몽구스의 contentId 생서시, Math.random()을 사용했으나 몽구스에 숫작가 온전히 저장되지 않아 해당 데이터를 찾을 수가 없었다.
→ Math.random()에 나타난 난수를 글자로 바꾸어 짧은 id를 만들었다.
Math.random().toString(36).substr(3)
▶채널 내 ContentList에서 선택된 content만 삭제하려고 했지만 Delete 사용시 내용 전체가 없어졌다.
→ 삭제가 아닌 선택한 내용을 제외한 나머지 내용으로만 업데이트할 수 있게 수정되었다.
'개발 이야기 > Projects' 카테고리의 다른 글
[항해99] 실전프로젝트: N빵 (0) | 2022.06.05 |
---|---|
[항해99] 미니 프로젝트: Social Study Network (SSN: 쓴) (0) | 2022.04.17 |
[항해99] 개인 프로젝트2: 로그인/회원가입페이지 (0) | 2022.04.06 |
[항해99] 개인 프로젝트1 : 게시글 페이지 (0) | 2022.03.24 |
[항해99] 미니 프로젝트: 오늘의 계절, 오늘의 노래 (0) | 2022.03.13 |