Skip to content

Local to Countrywide! 지역 음성 SNS 플랫폼 Drop The Voice입니다.

Notifications You must be signed in to change notification settings

yknlwca/DropTheVoice

Repository files navigation

Drop The Voice

프로젝트 소개

Local to Countrywide! 지역 음성 SNS 플랫폼 Drop The Voice입니다.

지역 기반의 커뮤니케이션 기능을 통해 지역 커뮤니티 활성화 및 사용자 경험 증대를 기대합니다.

음성 에어드랍으로 자신만의 이야기를 근처의 사용자에게 전파합니다. 이야기를 들은 사용자가 해당 내용이 마음에 들었다면, '좋아요' 기능을 통해 이를 또 다른 사용자들에게 전파할 수 있습니다

또한 이야기를 전파하지 않고 떨어뜨려, 인근의 다른 사용자가 해당 음성을 주워서 이를 들을 수 있는 유저 간의 재미있는 상호작용이 가능합니다.

자신의 목소리를 퍼뜨리는 것이 부담이라면, 음성 변조 기능을 통해 익명성을 보장할 수 있습니다.

Drop The Voice를 통해 자신의 이야기를 전국으로 전파하세요!

개발환경

  • VS Code : 1.64.2,
  • IntelliJ : 2024.01.02
  • JVM : eclipse-temurin:21-jdk
  • Node.js : v22.4.1
  • SERVER : AWS EC2 Ubuntu 20.04.6 LTS
  • DB : MySQL:8.0, Redis:alpine

사용도구

  • 이슈 관리 :

  • 형상 관리 :

  • 커뮤니케이션 :

  • 디자인 :

  • CI/CD :

시스템 아키텍처

주요 기능

⭐️ WebRTC : 음성 전파

  • 현재 접속 중인 반경 내의 무작위 N명의 사용자에게 P2P로 음성 전파
    • 전파 받은 사용자의 브라우저 IndexedDB에 음성 저장, 서버에서 음성을 다운 받지 않아도 됨
    • 서버의 부하 최소화
  • WebSocket, Stomp.js를 활용한 Signaling 서버 구축
  • EC2 서버에 Turn 서버 구축(coturn)
  • 최초 전파, 좋아요 기능을 통해 확산

⭐️ Redis : 사용자 정보 관리

  • 접속 중인 사용자 세션 관리
  • 3초마다 사용자 위치정보 갱신
  • geospatial을 활용한 반경 내 사용자 위치 탐색
    • 동일 Key 내의 값들에 개별 TTL 부여 로직 구현
  • 떨어뜨린 음성의 생명 주기 관리

⭐️ 음성 변조 및 가공

  • Flask를 이용한 음성 변조 기능
    • Pitch를 조절하여 원하는 톤으로 음성 변조 가능
  • Lamejs, Ffmpeg를 통한 음질 개선 및 압축

화면 구성

로그인 메인화면
마이페이지 음성 상세
음성 뿌리기 녹음 (음성 두기, 전파 공통)
업로드 (음성 두기, 전파 공통) 음성 변조
업로드 완료 배지 알림
보관함 - 전파된 음성 목록 음성 줍기 - 지도
음성 줍기 - 리스트 음성 줍기 - 줍기
보관함 - 줍한 음성 목록

About

Local to Countrywide! 지역 음성 SNS 플랫폼 Drop The Voice입니다.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •