Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/connect-foundation/2019-08
✉실시간 그룹 채팅 서비스 ✉
https://github.com/connect-foundation/2019-08
express filesharing react realtime-chat typescript websocket
Last synced: 11 days ago
JSON representation
✉실시간 그룹 채팅 서비스 ✉
- Host: GitHub
- URL: https://github.com/connect-foundation/2019-08
- Owner: connect-foundation
- License: mit
- Created: 2019-11-01T09:09:27.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2023-03-03T09:17:59.000Z (over 1 year ago)
- Last Synced: 2023-04-03T10:13:05.852Z (over 1 year ago)
- Topics: express, filesharing, react, realtime-chat, typescript, websocket
- Language: TypeScript
- Homepage:
- Size: 6.82 MB
- Stars: 9
- Watchers: 5
- Forks: 3
- Open Issues: 62
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
🏠 Snug Demo | 📖 WIKI | 🗃 스너그 사용 설명서 | 💽 프로젝트 시작하기 | 🤺개발자## 주요 동기
## 주요 기능
#### 1. 실시간 채팅과 메시지에 댓글(thread)
![](https://i.imgur.com/XBO24mt.gif)
#### 2. 무한 스크롤링
![](https://i.imgur.com/koIyz5S.gif)
#### 3. 파일 공유
![](https://i.imgur.com/z0UO54I.gif)
#### 4. 워크스페이스마다 프로필 설정
![](https://i.imgur.com/kgm6I5k.gif)
#### 5. 사용자 초대
![](https://i.imgur.com/OJtcqMZ.gif)
#### 6. 공개/비밀 채널
![](https://i.imgur.com/SGfuMfU.gif)
## 프로젝트 구조
### Workflow
![](https://i.imgur.com/Ua1UNv9.png)
### 알림 구조
![](https://i.imgur.com/cvXOo6D.png)
### Clean Architecture
![](https://i.imgur.com/B4j7S9Q.png)
## ERD
![](https://i.imgur.com/4pH0XZL.png)
## 프로젝트 시작하기 (Getting Started)
### 준비
> MySql Version 8+
### 개발
> .env.local 환경변수 설정해야 합니다.```shell=bash
cd /client && npm install && npm start
cd /server && npm install && npm start
```### 배포
> .env.production 환경변수 설정해야 합니다.```shell=bash
sh deploy/deploy.sh
```## 타임라인
![](https://i.imgur.com/DtgiOyn.png)
## 주요 기술
- Bcrypt
- Infinite Scrolling
- JWT
- MySql
- NodeMailer
- Object Storage
- SocketIO
- Typescript
- TypeOrm## 참여 개발자
### 고승빈 @raccoonback
#### 주 역할
- 프론트엔드에서 비즈니스 로직 개발
- Snug 팀원들이 인정한 Super Code Reviewer
- 객체 지향적인 코드를 고민하는 개발자
- 유의미한 테스트 코드를 작성하고자 노력
- 프론트엔드에서 데이터 흐름 고민
- TypeOrm 기반의 Model 추상화
- 알람 구조 설계 및 개발
- Web Socket Event 문서화 추진 및 정리
- "Post ID", "최신날짜" 기준 전략에 따른 페이지네이션 구현
- Token 발급 기능에 Template Method 패턴 적용
- HTTPS 적용### 김경래 @kyungrae
#### 주 역할
- 효과적인 백엔드 구조를 고민
- Web socket을 이용하여 multiplexing과 demultiplexing을 구현
- 재사용 가능한 파일 업로드 객체 구현 및 object storage 연결
- ERD 설계 및 typeorm entity 정의
- 클라이언트에서 workspace 접근 권한 구현
- 매일 적어도 1%씩 성장하는 개발자
- 프로 지식 공유러### 김기표 @GiPyoo
#### 주 역할
- Snug 프로젝트를 진행하는 MC, 항상 프로젝트에 장작을 넣어주는 나무꾼
- 질문하는 개발자
- 팀원들이 인정한 생산성 좋은 개발자
- 프론트엔드 비즈니스 로직 개발
- React를 활용한 Component 기반 프론트엔드 개발
- React Hook과 Context API를 통한 데이터 흐름관리
- Typescript를 이용하여 Clean 아키텍쳐 적용
- Client에서 Socket을 통한 통신 모듈 구현
- 디자인과 UI interaction 개발
- token을 활용한 사용자 인증관리(프론트, 백)### 이상원 @sangwon21
#### 주 역할
- 프론트엔드에서 재사용 가능한 Component를 고민
- 프론트엔드에서 데이터 흐름에 대하여 고민
- 프론트엔드에서 비즈니스 로직 개발
- 프론트엔드에서 효과적인 Web Socket 활용 방법에 대하여 고민
- TypeOrm Migration 이용한 Entity Versioning
- API 및 Entity 문서화 작업 추진 및 진행