Balance + Learn
Balearn은 Balance와 Learn을 합친 단어로, 스터디 그룹을 통해 균형있는 학습을 돕는 서비스입니다.
💵 기간
2024.12.26 ~ 진행중
💵 팀원 소개
황민우 | 이재인 |
💡 기획 배경
스터디 모임은 보통 정해진 날짜에 온라인 또는 오프라인으로 만나 진행하는 형태가 일반적입니다. 하지만, 기존 스터디 방식에는 효율적인 일정 관리와 지속적인 참여 유도를 위한 시스템이 부족합니다.
🔹 기존 스터디 모임의 한계
- 일정 관리의 어려움 – 매일 정해진 일정이 있어도 잊어버리기 쉬움
- 강제성 부족 – 자율적인 참여 방식이지만, 참여율이 점점 낮아지는 문제 발생
- 비효율적인 자료 공유 – 카카오톡, 슬랙 등 여러 플랫폼을 통해 자료를 공유하면 찾기 번거로움
🚀 스터디 관리 서비스 기획
이러한 문제를 해결하기 위해, 스터디원들이 보다 체계적으로 학습하고 지속적으로 참여할 수 있도록 스터디 일정 관리 서비스를 개발했습니다.
✔ 주간 일정 & 오늘의 미션 – 캘린더를 활용해 스터디 일정을 등록하고, 한눈에 확인
✔ 미션 완료 시스템 – 오늘의 미션을 완료하면 점수가 반영되며, 이벤트성 요소를 통해 참여 유도
✔ 통합 자료 관리 – 한 곳에서 자료를 공유 및 관리하여 찾기 쉽고 활용도 증가
스터디를 더 체계적이고, 즐겁게! 이제, 스터디를 보다 효율적으로 운영하고, 참여율을 높이며, 학습 성과를 극대화할 수 있는 서비스를 경험해보세요!
💵 공통 컴포넌트 주요 기능
-
사이드 바
- 각 페이지 라우팅 기능
- 나의 모임 리스트 확인
- 모임 생성하기
- 모임 가입하기
-
헤더
- 팀 프로필 정보
- 로그아웃
💵 페이지별 주요 기능
-
소셜 로그인
- 카카오 , 구글 로그인 기능
-
대시보드
- 공지 확인
- 스터디 목표 확인
- 스터디 멤버 확인
- 주간 일정 확인
-
캘린더
- 일정 등록 , 수정 , 삭제 기능
- 캘린더를 활용한 일정 시각화
- 주간 , 월별 캘린더 확인
-
채팅
- 1:N 채팅 기능 제공
-
파일
- 최근 열어본 파일 목록 확인
- drag & drop 파일 업로드 기능
- 파일 리스트 확인
-
설정
- 모임 수정
- 회원 관리(회원 권한 수정 , 회원 탈퇴)
- 초대 링크 공유
- 공지 페이지(공지 CRUD)
-
리더보드
- 1 ~ 3등 랭킹 확인
- 모임 전체 랭킹 , 점수 확인
- 오늘의 미션 확인 및 등록
Balearn은, 스터디그룹 관리 서비스입니다.
(사용자)
- 사용자는 모임을 먼저 생성합니다.
- 모임 이미지 , 모임 명을 입력합니다.
- 만들어진 모임을 대시보드에서 확인합니다.
- 설정 페이지의 회원 관리에서 초대 코드를 생성한 뒤 공유합니다.
- 초대 코드를 받은 인원은 사이드 바의 '모임 가입하기'를 눌러 코드를 입력하고 가입합니다.
- 캘린더 페이지에서 스터디의 일정을 등록합니다.
- 공유할 파일은 파일 페이지에서 업로드를 합니다.
- 오늘 에정된 미션을 클리어하면 점수가 올라갑니다.
- 리더보드 페이지에서 미션을 클리어할 수 있습니다.
- 팀원과 공유할 내용을 채팅 페이지에 올립니다.
api 명세서
ERD
ERDcloud
백엔드 프로젝트 구조
├── Dockerfile
├── HELP.md
├── Makefile
├── build.gradle.kts
├── docker-compose.yml
├── gradlew
├── gradlew.bat
├── logstash
│ └── logstash.conf
├── nginx
│ └── config
│ ├── blue.conf
│ └── green.conf
├── settings.gradle.kts
└── src
└── main
├── kotlin
│ └── com
│ └── jipsa
│ └── balearn
│ ├── BalearnApplication.kt
│ ├── api
│ │ ├── chat
│ │ ├── global
│ │ ├── learning_file
│ │ ├── mission
│ │ ├── mission_clear
│ │ ├── notice
│ │ ├── schedule
│ │ ├── team
│ │ ├── team_goal
│ │ ├── team_user
│ │ └── user
│ ├── common
│ │ ├── api
│ │ ├── constants
│ │ ├── dto
│ │ ├── exception
│ │ ├── jackson
│ │ ├── scheduling
│ │ ├── security
│ │ └── util
│ ├── database
│ │ ├── chat
│ │ ├── config
│ │ ├── global
│ │ ├── learning_file
│ │ ├── mission
│ │ ├── mission_clear
│ │ ├── notice
│ │ ├── schedule
│ │ ├── team
│ │ ├── team_goal
│ │ ├── team_user
│ │ └── user
│ ├── domain
│ │ ├── chat
│ │ ├── global
│ │ ├── learning_file
│ │ ├── mission
│ │ ├── mission_clear
│ │ ├── notice
│ │ ├── schedule
│ │ ├── team
│ │ ├── team_goal
│ │ ├── team_user
│ │ └── user
│ └── infra
│ ├── elasticsearch
│ ├── gcs
│ ├── jwt
│ ├── oauth2
│ ├── redis
│ └── websocket
└── resources
├── application-dev.yml
├── application-local.yml
├── application.yml
├── elasticsearch
│ ├── chat-mappings.json
│ └── chat-settings.json
├── static
└── templates











<컨벤션> : <설명>
컨벤션 | 설명 |
---|---|
feat | 새로운 기능과 관련된 것을 의미한다. |
fix | 오류와 같은 것을 수정했을 때 사용한다. |
docs | 문서와 관련하여 수정한 부분이 있을 때 사용한다. |
style | 코드의 변화와 관련없는 포맷이나 세미콜론을 놓친 것과 같은 부분들을 의미한다. |
refactor | 코드의 리팩토링을 의미한다. |
test | test를 추가하거나 수정했을 때를 의미한다. |
chore | build와 관련된 부분, 패키지 매니저 설정 등 여러가지 production code와 무관한 부분 들을 의미한다. 말 그대로 자질구레한 일들이다. |
add | 이미지 등의 정적 자원 추가를 의미한다. |
init | 초기 설정 세팅을 의미한다. |
rename | 파일 혹은 폴더 명을 수정하거나 옮기는 작업을 의미한다. |