Skip to content

ChatFlowProject/chatter

Repository files navigation

Chatflow Frontend

Chatflow Thumbnail

Discord의 경험을 닮은, 실시간 협업 중심 채팅 플랫폼의 프론트엔드입니다.
채널 기반 채팅, 알림, 파일 공유, 초대 기능 등을 지원하며
React + TypeScript 기반으로 유지보수성과 퍼포먼스를 고려해 개발되었습니다.


👥 팀원

이름 역할 GitHub
최승은 프론트엔드 개발 @xeunnie
강윤지 프론트엔드 개발 @dbswl

🛠 기술 스택

클라이언트 라우팅, WebSocket 실시간 메시징, 쿠키 기반 인증 등
모던 웹 서비스 구현을 위한 기술 스택으로 구성되어 있습니다.

📦 주요 프레임워크 및 라이브러리

React TypeScript Redux React Query Framer Motion Zod

🛠 개발 도구

Webpack ESLint Jest Cypress Husky

🎨 UI/스타일링

PostCSS Tailwind CSS clsx

🔌 상태 관리 및 데이터 통신

Redux Axios WebSocket


📁 폴더 구조

chatflow/ 
├── src/ 
│ ├── app/ # 앱의 핵심 설정 파일들 
│ │ ├── App.tsx # 앱의 메인 컴포넌트 
│ │ ├── Router.tsx # 라우팅 설정 
│ │ ├── Provider.tsx # 앱의 프로바이더 설정 
│ │ └── store.ts # 리덕스 스토어 설정 
│ ├── view/ # UI 관련 파일들 
│ │ ├── components/ # 재사용 가능한 컴포넌트 
│ │ ├── layout/ # 레이아웃 컴포넌트 
│ │ ├── pages/ # 페이지 컴포넌트 
│ │ └── styles/ # 스타일 관련 파일 
│ ├── service/ # 비즈니스 로직 관련 
│ │ ├── feature/ # 기능별 서비스 로직 
│ │ │ ├── auth/ # 인증 관련 기능 
│ │ │ ├── chat/ # 채팅 관련 기능 
│ │ │ ├── noti/ # 알림 관련 기능 
│ │ │ ├── team/ # 팀 관련 기능 
│ │ │ ├── image/ # 이미지 처리 관련 기능 
│ │ │ ├── common/ # 공통 기능 
│ │ │ ├── friend/ # 친구 관련 기능 
│ │ │ ├── member/ # 멤버 관련 기능 
│ │ │ └── channel/ # 채널 관련 기능 
│ │ └── lib/ # 유틸리티 및 헬퍼 함수
│ └── main.tsx # 앱의 진입점 
├── public/ # 정적 파일 
├── docs/ # 문서 
└── node_modules/ # 패키지 의존성
  1. src/app/: 애플리케이션의 핵심 설정과 초기화를 담당하는 파일들이 위치
  2. src/view/: UI 관련된 모든 컴포넌트와 스타일이 위치
  3. src/service/: 비즈니스 로직과 기능 구현이 위치
    • auth/: 로그인, 회원가입 등 인증 관련 기능
    • chat/: 채팅 기능 관련 로직
    • noti/: 알림 시스템 관련 기능
    • team/: 팀 관리 관련 기능
    • image/: 이미지 업로드, 처리 관련 기능
    • common/: 여러 기능에서 공통으로 사용되는 기능
    • friend/: 친구 관리 관련 기능
    • member/: 사용자/멤버 관리 관련 기능
    • channel/: 채널 관리 관련 기능
  4. 루트 디렉토리에는 각종 설정 파일들 (.env, webpack.config.js, tsconfig.json 등) 위치

📌 관심사 분리(Separation of Concerns)를 기준으로 구성되어 있으며, 서비스 확장성과 유지보수 편의성을 고려해 모듈화되었습니다.

About

chatflow project's frontend repository

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 8