워크스페이스 및 소통 용도로 많이 쓰이는 슬랙을 클론 코딩 하였습니다. 백엔드는 django, django rest framework, django channels로 구현하였고, 프론트엔드는 restapi 및 websocket을 이용하여 react.js로 구현됐습니다.
- 프론트엔드: 3명
- 백엔드: 2명
- 팀장
- 백엔드 담당
- 워크스페이스별 채널 관리 (CRUD)
- 프로필 수정
- 채널info 수정
- 채널별 멤버 권한편집 및 수정
- 실시간 채팅
- 채팅 북마크
- 파일 업로드/다운로드
- 유저 실시간 상태 설정
- 배포 담당
백엔드 구현 중 어려웠던 것으로 실시간 채팅 및 알림, 파일 업로드&다운로드 관리가 있었습니다. 실시간 채팅 자체는 웹소켓으로 구현하면 되지만 채팅을 쳤을 때 실시간으로 알림을 보내주는 시스템 구현에 어려움이 있었고, 이용자들이 플랫폼에 파일을 업로드 했을 때 그 파일을 어디서 어떻게 관리 할 것인지, 다운로드까지의 API 설계에 있어서 고민을 많이 했습니다.
- 워크스페이스별 채널 관리 (CRUD)
- 프로필 수정
- 채널info 수정
- 채널별 멤버 권한편집 및 수정
- 멘션 닉네임 자동완성
- History
- 실시간 채팅
- 채팅 북마크
- 실시간 알림(on off)
- 실시간 채팅 리액션
- 파일 드래그 앤 드롭 & 업로드/다운로드
- 유저 실시간 상태 설정
- django
- mysqlclient
- djangorestframework
- drf-yasg[validation]
- channels
- channels_redis
- djangorestframework-simplejwt[crypto]
- dj-rest-auth[with_social]
- django-allauth
- django-storages
- django-silk
깃헙 계정으로 로그인 합니다.
- 채팅 북마크 (즐겨찾기)
- 북마크 확인하기
- 리액션 추가
- 파일 업로드 & 다운로드
- 팝업 알림
- 읽지않은 채팅 기능
- 알림 클릭 시 채널로 이동
- 알림 중지 기능
- 모달 액션으로 구현
- 자신의 정보 (이름, 전화번호, 이메일 등등)
- 지금 상태
- 수정 기능
- 알림 중지 기능 설정을 프로필에서 설정 가능함
- 더블 모달 액션으로 구현
- 상태 아이콘, 메세지, 알림 중지 기간 설정 가능