Giter VIP home page Giter VIP logo

ottogi's Introduction

👩‍💻스마일게이트 윈터 개발 캠프 2기 - Ottogi

Discord Clone을 목표로 개발을 진행한 Team Ottogi 입니다.


image


팀원 역할 설명
김현우 FRONT-END
허다은 FRONT-END
김수찬 BACK-END WebRTC, 시그널링
박규현 BACK-END 커뮤니티, 상태관리
백종인 BACK-END API Gateway, 유저, 채팅



Architecture 🚧

image

개발은 MSA 구조를 기반으로 진행되었으며 Spring Cloud와 Eureka를 활용하여 진행하였습니다.

Server List

  • Spring Cloud Gateway → API Gateway 및 JWT 인증 진행

  • 유저(인증) 서버 → 유저 관련 로직 및 검증 진행

  • 채팅 서버 → 클라이언트와 WebSocket으로 연결 및 채팅 발행을 담당

  • 커뮤니티 서버 → 커뮤니티 및 커뮤니티 하위의 작업들에 대한 로직을 담당

  • 상태관리 서버 → 유저들의 여러 상태를 관리하는 서버

  • 미디어 서버 및 시그널링 서버 → WebRTC의 화상 기능을 활용하기 위한 서버



기술 스택 🎮

FRONT END 🔮

  • TypeScript
  • React
  • Zustand
  • React Query
  • Story Book

BACK END ♟️

  • JAVA
  • Spring FrameWork (JPA, Security, Cloud ..)
  • Java Script
  • Node JS

ETC 💽

  • MySQL
  • Redis
  • STOMP, WebSocket
  • RabbitMQ
  • AWS S3

주요 기능 🚀

  • 회원가입 및 로그인

  • 회원정보 변경

  • 친구 추가 및 삭제

  • 커뮤니티 생성 및 삭제

  • 커뮤니티 정보 변경

  • 친구간 1:1 DM 채팅

  • 커뮤니티내 채널에서 단체 채팅


실행 화면 👨‍💻

영상 링크 : VIDEO


  • 회원가입 및 로그인

    • Google SMTP를 활용한 메일인증을 통하여 회원가입 진행

1  회원가입 및 로그인


  • 프로필 확인 및 변경

    • 프로필 사진, 이름, 비밀번호, 자기소개 변경 가능

2  프로필 변경


  • 친구추가 기능 및 1:1 DM

    • 메일을 통한 친구추가 가능
    • 친구 수락 및 삭제 가능
    • 친구 온/오프라인 여부 확인 가능
    • 친구간 1:1 채팅 (DM) 가능

3  친구 추가 및 채팅


  • 커뮤니티 생성

    • 사진 및 이름 설정하여 커뮤니티 생성 가능

4  커뮤니티 생성


  • 커뮤니티 초대 및 채팅

    • 친구 목록에서 커뮤니티 초대 가능
    • 채팅 메세지로 오는 초대로 가입 가능
    • 커뮤니티 가입시 웰컴 메세지 전송
    • 커뮤니티 멤버간 1:N 채팅 가능

5  커뮤니티 초대 및 채팅


ottogi's People

Contributors

nno3onn avatar kimsc9976 avatar jacky0831 avatar whipbaek avatar freemoon99 avatar krokerdile avatar sgdevcamp avatar

Stargazers

Kobe avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

ottogi's Issues

FE + BE Cors 문제

프론트 서버에서 백엔드 서버로 접근하는데 cors 문제가 발생했다.

spring cloud gateway를 거쳐 서비스를 요청하는 로직이므로, gateway쪽에 설정을 해주어서 해결하였다

cloud:
  gateway:
    globalcors:
      cors-configurations:
        '[/**]':
          allowedOrigins: 'http://localhost:3000'
          allow-credentials: true
          allowedHeaders: '*'
          allowedMethods:
          - PUT
          - GET
          - POST
          - DELETE
          - OPTIONS
       default-filters:
        - DedupeResponseHeader=Access-Control-Allow-Origin Access-Control-Allow-Credentials

Signaling Server 문제 사항

  1. 에러 이후 server복구가 안 됨
    -> 에러 발생사항 확인 중 및 Try Catch로 코드 작업 바람
  2. Edge로 들어가면 접근이 안 됨 -> Mediasoup Handler와 관련이 있음
  3. 여러 User가 Publish를 연속적 빠르게 하면, Consumer 화면이 검은색 화면으로 출력됨 -> await 추가 바람

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.