Balearn
Balearn 바로 가기
📅 프로젝트 개요
Balance + Learn
Balearn은 Balance와 Learn을 합친 단어로, 스터디 그룹을 통해 균형있는 학습을 돕는 서비스입니다.

💵 기간
2024.12.26 ~ 진행중
💵 팀원 소개
💡 기획 배경
스터디 모임은 보통 정해진 날짜에 온라인 또는 오프라인으로 만나 진행하는 형태가 일반적입니다. 하지만, 기존 스터디 방식에는 효율적인 일정 관리와 지속적인 참여 유도를 위한 시스템이 부족합니다.
🔹 기존 스터디 모임의 한계
- 일정 관리의 어려움 – 매일 정해진 일정이 있어도 잊어버리기 쉬움
- 강제성 부족 – 자율적인 참여 방식이지만, 참여율이 점점 낮아지는 문제 발생
- 비효율적인 자료 공유 – 카카오톡, 슬랙 등 여러 플랫폼을 통해 자료를 공유하면 찾기 번거로움
🚀 스터디 관리 서비스 기획
이러한 문제를 해결하기 위해, 스터디원들이 보다 체계적으로 학습하고 지속적으로 참여할 수 있도록 스터디 일정 관리 서비스를 개발했습니다.
✔ 주간 일정 & 오늘의 미션 – 캘린더를 활용해 스터디 일정을 등록하고, 한눈에 확인
✔ 미션 완료 시스템 – 오늘의 미션을 완료하면 점수가 반영되며, 이벤트성 요소를 통해 참여 유도
✔ 통합 자료 관리 – 한 곳에서 자료를 공유 및 관리하여 찾기 쉽고 활용도 증가
스터디를 더 체계적이고, 즐겁게! 이제, 스터디를 보다 효율적으로 운영하고, 참여율을 높이며, 학습 성과를 극대화할 수 있는 서비스를 경험해보세요!
💵 공통 컴포넌트 주요 기능
-
사이드 바
- 각 페이지 라우팅 기능
- 나의 모임 리스트 확인
- 모임 생성하기
- 모임 가입하기
-
헤더
- 팀 프로필 정보
- 로그아웃
💵 페이지별 주요 기능
-
소셜 로그인
- 카카오 , 구글 로그인 기능
-
대시보드
- 공지 확인
- 스터디 목표 확인
- 스터디 멤버 확인
- 주간 일정 확인
-
캘린더
- 일정 등록 , 수정 , 삭제 기능
- 캘린더를 활용한 일정 시각화
- 주간 , 월별 캘린더 확인
-
채팅
- 1:N 채팅 기능 제공
-
파일
- 최근 열어본 파일 목록 확인
- drag & drop 파일 업로드 기능
- 파일 리스트 확인
-
설정
- 모임 수정
- 회원 관리(회원 권한 수정 , 회원 탈퇴)
- 초대 링크 공유
- 공지 페이지(공지 CRUD)
-
리더보드
- 1 ~ 3등 랭킹 확인
- 모임 전체 랭킹 , 점수 확인
- 오늘의 미션 확인 및 등록
💵 데이터 활용
💡서비스 소개
Balearn
Balearn은, 스터디그룹 관리 서비스입니다.
(사용자)
- 사용자는 모임을 먼저 생성합니다.
- 모임 이미지 , 모임 명을 입력합니다.
- 만들어진 모임을 대시보드에서 확인합니다.
- 설정 페이지의 회원 관리에서 초대 코드를 생성한 뒤 공유합니다.
- 초대 코드를 받은 인원은 사이드 바의 '모임 가입하기'를 눌러 코드를 입력하고 가입합니다.
- 캘린더 페이지에서 스터디의 일정을 등록합니다.
- 공유할 파일은 파일 페이지에서 업로드를 합니다.
- 오늘 에정된 미션을 클리어하면 점수가 올라갑니다.
- 리더보드 페이지에서 미션을 클리어할 수 있습니다.
- 팀원과 공유할 내용을 채팅 페이지에 올립니다.
⚙️ 기술 스택
프론트엔드
백엔드
인프라
협업툴
📂ERD 및 시스템 아키텍처
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
🖼 주요 화면
💵 로그인 페이지
💵 대시보드 페이지
💵 캘린더 페이지
💵 채팅 페이지
💵 파일 페이지
💵 설정 페이지
💵 리더보드 페이지
컨벤션
📍 Git 컨벤션
| 컨벤션 | 설명 |
|---|---|
| feat | 새로운 기능과 관련된 것을 의미한다. |
| fix | 오류와 같은 것을 수정했을 때 사용한다. |
| docs | 문서와 관련하여 수정한 부분이 있을 때 사용한다. |
| style | 코드의 변화와 관련없는 포맷이나 세미콜론을 놓친 것과 같은 부분들을 의미한다. |
| refactor | 코드의 리팩토링을 의미한다. |
| test | test를 추가하거나 수정했을 때를 의미한다. |
| chore | build와 관련된 부분, 패키지 매니저 설정 등 여러가지 production code와 무관한 부분 들을 의미한다. 말 그대로 자질구레한 일들이다. |
| add | 이미지 등의 정적 자원 추가를 의미한다. |
| init | 초기 설정 세팅을 의미한다. |
| rename | 파일 혹은 폴더 명을 수정하거나 옮기는 작업을 의미한다. |
