Skip to content
SmashStudyPublic

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

529 Commits

Folders and files

Repository files navigation

ESquad Back-end

이 프로젝트는 실시간 커뮤니케이션 기반 스터디 플랫폼 "ESquad"의 백엔드 서버입니다.

Info

ESquad는 팀 스터디 활동을 기록, 소통, 공유하여 팀 단위와 개인의 학습을 향상시키는 플랫폼입니다.

이를 통해 다음과 같은 목표를 달성하고자 합니다.

팀원 간 실시간 소통을 통해 지식을 공유하고 토론을 활성화하여, 학습 효과를 극대화합니다.

브레인스토밍 및 지식 공유 공간을 제공하여 학습 과정에서의 아이디어를 기록하고, 이를 팀 내에서 활용할 수 있도록 지원합니다.

팀 단위 및 개인 학습 성과를 기록하여 장기적인 학습 관리와 성취도를 추적할 수 있는 시스템을 구현합니다.

주요 기능​은 다음과 같습니다.

  • 실시간 스트리밍 (화면 공유 및 화상 대화)
  • 스터디 페이지별 스토리지 제공
  • 팀 스페이스내 채팅
  • 팀 스페이스 (팀 단위 학습 공간)
  • 커뮤니티
  • 각종 알림
  • 도서 검색
  • 유저 관리

Settings

application.yml

프로젝트를 실행하기 전에 src/main/resources 디렉토리에 application.yml 파일을 생성하고 아래와 같은 내용을 작성해주세요.

spring:
  datasource:
    url: [데이터베이스 url]
    driver-class-name: com.mysql.cj.jdbc.Driver
    username: [ID]
    password: [PW]
    
  data:
    redis:
      host: [호스트]
      port: [포트]
      lettuce:
        pool:
          min-idle: 0
          max-idle: 8
          max-active: 8
          
  jpa:
    hibernate:
      ddl-auto: update
    properties:
      hibernate:
        format_sql: true
    database-platform: org.hibernate.dialect.MySQL8Dialect

  servlet: # 멀티파트
    multipart:
      max-file-size: 100MB
      max-request-size: 300MB

  web:
    resources:
      static-locations: file:/{fe경로}/dist
      
  mail:
    host: smtp.gmail.com
    port: 587
    username: [메일 발신할 email(gmail) ex) rudals1888@gmail.com]
    password: [비밀번호]
    properties:
      mail.smtp.auth: true
      mail.smtp.starttls.enable: true

logging:
  level:
    org:
      springframework: INFO

cloud:
  aws:
    s3:
      bucket: [s3 버킷명]
    stack:
      auto: false
    region:
      static: [버킷이 위치한 리전]
    credentials:
      access-key: [IAM 액세스 키]
      secret-key: [IAM 시크릿 키]

springdoc:
  swagger-ui:
    path: /swagger.html
    tags-sorter: alpha
    operations-sorter: alpha
  api-docs:
    path: /api-docs
    version: openapi_3_0
  default-consumes-media-type: application/json;charset=UTF-8
  default-produces-media-type: application/json;charset=UTF-8

naver:
  client:
    id: [naver api id]
    secret: [secret]

firebase:
  type: service_account
  project_id: [서비스 ID]
  private_key_id: [private key id]
  private_key: [private key]

  client_email: [클라이언트 email]
  client_id: [클라이언트 id]

  auth_uri: https://accounts.google.com/o/oauth2/auth
  token_uri: https://oauth2.googleapis.com/token
  auth_provider_x509_cert_url: https://www.googleapis.com/oauth2/v1/certs
  client_x509_cert_url: [client cert url]
  universe_domain: googleapis.com
  database_url: [파이어베이스 DB url]

jwt:
  secret: [설정한 secret]

redis 설치

windows

참고

macOS

brew install redis

로그인 후

redis cli 접속 redis-cli -h 127.0.0.1 -p 6379

키 값이 들어갔는지 확인 KEYS refreshToken:* 후 아래 처럼 뜨면 세팅이 정상적으로 완료된 것입니다.

�keys-cli 스크린샷

스트리밍 Openvidu 컨테이너

image 이미지 파일들은 Packages에 있습니다.

Tech Stack

개발환경
운영체제 Windows10, 11 64bit / macOS Sequoia 15.0.1​
개발언어 Java(Correto 17), JavaScript​
개발도구 IntelliJ, gradle, PUTTY, DBeaver, DataGrip, PostMan
프레임워크 Spring boot 3.3.2, JPA
데이터베이스 MySQL, Redis, Firebase Realtime DB
AWS S3, EC2, Route53, ACM​
버전 관리 시스템 Git
라이브러리 (build.gradle안의 디펜던시들)
오픈소스 (API류)
설정 파일 확장자 yml

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages