Clone Project: Slack

 

 

프로젝트: 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 사용시 내용 전체가 없어졌다. 

→ 삭제가 아닌 선택한 내용을 제외한 나머지 내용으로만 업데이트할 수 있게 수정되었다.

 

 

 

 

 

+ Recent posts