Skip to content

Hun425/StudyCow-Spring

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📖 공부 했소?

로고

🏆수상

SSAFY 공통 프로젝트 우수상(2등)


프로젝트 기획 배경

  • 코로나19 팬데믹으로 인해 온라인 학습이 일상화 되었지만 이러한 온라인 학습에는 여러가지 문제점이 있습니다.

  • 자기주도적 학습의 어려움

    • 온라인 환경에서 혼자 공부하는 학생들은 자기통제와 시간관리에 많은 어려움을 겪고있습니다.
  • 학습 동기부여의 부재

    • 혼자 공부하는 환경의 서비스들은 지속적인 동기부여가 부족해 학습 의욕을 유지하기 어렵습니다.
  • 이러한 문제인식으로 출발해, Studycow를 기획하게 되었습니다.

이전 시도 및 개선점

  • 통합화된 서비스의 부재

    • 과거에도 다양한 온라인 스터디 서비스가 있었지만, 하나로 통합 관리하는 서비스는 찾기 어려웠습니다.
  • 공부 효율성 유지

    • 집에서 혼자 공부를 하더라도, 그룹 스터디 서비스로 밖에서 공부하는 것과 같은 효과를 얻을 수 있습니다.
  • 게이미피케이션

    • 사용자의 동기부여를 위한 주요 기능들과 게이미피케이션 서비스를 결합했습니다.
  • AI 기반 맞춤형 학습 지원

    • 개인화된 학습 플래너: 사용자의 성적 및 오답 유형을 분석하여 AI가 최적화된 학습 계획을 자동으로 생성합니다.
    • AI 조언 시스템: 최근 성적 추이를 기반으로 개인별 맞춤 학습 조언을 제공합니다.
    • AI 손 인식 기반 집중도 관리: 그룹 화상 스터디에서 AI가 사용자의 손 동작을 감지하여 자동으로 집중 시간을 측정합니다.

Studycow는 여러 서비스를 찾아다닐 필요 없이, 하나의 서비스 안에서 통합 및 자동화 기능들을 제공합니다.


프로젝트 소개

  • 성적 관리동기 부여가 필요한 학생을 위한 통합 서비스
  • 온라인 그룹 스터디를 위한 캠 스터디 및 손 감지 타이머 기능
  • 자율 학습 관리를 위한 플래너 및 성적 기반 자동 생성 기능
  • 학생 동기부여를 위한 성적관리 및 게이미피케이션 & 랭킹 기능
  • 개인 맞춤형 학습 플랜 추천 기능

팀원 구성

채기훈 박동민 윤성준 김정환 박봉균 노명환

@Hun425

@박동민

@윤성준

@김정환

@박봉균

@노명환

1. 개발 환경 및 요구사항 명세

Front

Back-end

버전 및 이슈관리

협업 툴

인프라

성능 관리 및 모니터링

디자인

Figma


요구사항 명세
C202_기획_-_요구사항_분석.pdf

요구사항 명세 요약

  • 캠 스터디 방: 사용자들이 화면을 공유하며 함께 공부할 수 있는 온라인 스터디 룸 생성 및 관리
  • 스터디 플래너: 개인 및 그룹 학습 계획 수립, 성적 기반 AI학습 전략 추천
  • 성적 관리: 성적 입력, 분석 및 조언
  • 타임 트래킹: AI 손 인식 기반 공부 시간 측정 및 랭킹 시스템
  • 사용자 관리: 회원가입, 로그인, 프로필 관리
  • 커뮤니티 기능: 친구 추가, 친구 대시보드 확인

2. 채택한 개발 기술과 브랜치 전략

Spring

  • 향후 서비스 확장시 유연하게 대처하기 위한 Java 기반 Spring Framework

JDK17

  • record 기능을 사용한 Dto 및 instancof 패턴 매칭을 위한 JDK17버전 채택

React

  • Vue.js 보다 자유로운 편집 및 커스텀을 위한 React 선택

브랜치 전략

  • 기본적인 역할분담은 Jira 및 WBS를 통해 세분화
  • 각 세분화된 기능들을 branch로 생성해 main에 merge 하는 방식으로 협업을 진행
  • dev 와 master branch를 분리하고, master는 자동 배포용 dev는 개발용으로 branch를 분리

3. 기획 과정

요구사항 분석
C202 기획 - 요구사항 분석 최종.pdf
기능 정의서 + IA
C202 기획 - 기능 정의.pdf

4. DB 설계 & 객체 다이어그램

ERD
공부했소
객체 다이어그램
특화_C202_설계-객체_다이어그램_예시 drawio

4. 일정 관리

WBS
C202 기획 - WBS.pdf

5. 역할 분담

👻채기훈 (조장)

  • 역할

    • 역할배분 및 일정관리 / 백엔드,인프라 담당
  • 구현 기능

    • 인프라 CI/CD 자동화, 회원 API, 실시간 채팅 API, 신체 인식 AI, 플래너 API, Custom 예외처리 구현, 서버 모니터링
  • 세부 기술 & 라이브러리



6. 개발 기간 및 작업 관리

개발 기간

  • 전체 개발 기간 : 2024-07-01 ~ 2024-08-15
  • 기획 및 설계 : 2024-07-01 ~ 2024-07-12
  • 기능 구현 : 2024-07-15 ~ 2024-08-09
  • UI 구현 : 2024-07-15 ~ 2024-08-13

작업 관리

  • Jira + WBS 를 사용하여 업무를 세부적으로 분담
  • Notion 및 Swagger를 사용하여 API 명세서를 작성
  • Gitlab branch를 사용하여 협업을 진행
  • 코드 및 커밋 컨벤션을 지정해 코드 품질 관리와 의사소통에 집중

7. 페이지별 기능 // 용량 문제로 이미지 다수 생략되었습니다.

[메인페이지]

메인페이지/비로그인
이미지 설명
  • 공부했소?의 서비스를 간단히 소개합니다.
  • Start를 누르면 회원가입으로 바로 이동합니다.
메인페이지/로그인
로그인화면2
  • 사용자의 프로필 및 활동 내역을 요약해서 보여줍니다.
  • 과목별 성적 현황 / 최근 입장한 그룹 스터디방 / 오늘의 할일 / 플래너 잔디 현황
  • 잔디의 색깔은 일일 플래너의 개수 0/2/4/5~ 별로 달라집니다.
  • 오늘의 할일은 현재 날짜 기준 등록된 플래너의 요약을 보여줍니다.

[네비게이션 바]

네비게이션 바
네비게이션바2
  • 각각의 기능을 담당하는 페이지로 이동시켜줍니다.

[로그인/회원가입 페이지]

로그인/회원가입
로그인회원가입
  • 사용자의 정보를 받고 로그인을 성공하면 메인페이지로 리다이렉트합니다.
  • 닉네임, 이메일, 비밀번호를 입력하면 회원가입을 시켜줍니다.
  • 이메일은 중복 불가능합니다.
  • 닉네임은 2~20자 사이의 단어만 가능합니다.

[캠스터디]

목록리스트
img
  • 캠스터디의 전체 방 목록을 보여줍니다.
  • 자신이 최근에 들어간 방을 보여줍니다.
  • 입장하기 버튼을 누르면 방의 상세 정보를 보여줍니다.
  • 공부의 전체 랭킹시간을 보여주고, 매일 06시에 일일 랭킹 기준으로 경험치 정산 후 초기화됩니다.

방 상세 정보
img
  • 방의 상세 정보를 표시하고, 카메라와 마이크를 테스트합니다.
  • 방의 설명을 확인하고, 방장이 정한 규칙들을 미리 확인 할 수 있습니다.
  • 입장버튼을 누르게 되면, 해당 방으로 입장합니다.

⭐ 캠스터디 내부페이지


손 감지 & 타이밍 기능
img
  • 현재 입장해 있는 유저들의 캠을 확인 할 수 있습니다.
  • 캠에 손이 검출된다면, 자동으로 타이머가 시작되고 1분단위로 랭킹이 기록됩니다.

실시간 채팅 & 랭킹 플래너
캠스터디 채팅 랭킹 플래너
  • 채팅방 아이콘을 통해 채팅에 참가한 유저들과 실시간 채팅을 할 수 있습니다.
  • 채팅방에 입장 및 퇴장시, 다른 사람들에게 알림 채팅이 나오게 됩니다.

마이크 & 스피커 설정
캠스터디 설정 BGM
  • 설정 버튼을 클릭시, 마이크와 스피커를 조절 할 수 있습니다.
  • 마이크,스피커,캠 아이콘 클릭으로 ON,OFF를 설정 할 수 있습니다.
  • 랭킹,채팅창,플래너 아이콘 클릭으로 화면에 띄울 수 있습니다.

[플래너]

플래너 메인페이지
플래너 메인페이지
  • 달력을 클릭하면 해당 날짜의 플래너를 작성 & 조회 할 수 있습니다.
  • 플래너를 과목별로 정렬해서 확인 할 수 있습니다.

플래너 생성 & 수정 & 삭제
플래너 생성 수정 삭제
  • 플래너의 과목을 정하고 세부사항과 시간을 기입하면 등록 할 수 있습니다.
  • 플래너를 수정 및 삭제 할 수 있습니다.

플래너 자동화
플래너 자동화
  • 사용자가 등록한 성적과 학습시간 기반으로 플래너를 자동 생성 해줍니다.
  • 해당 플랜을 추천해준 이유를 확인 할 수 있고, 세부 사항은 사용자가 직접 수정 후 등록 할 수 있습니다.

[성적 관리]

메인 페이지
성적 조언.gif
  • 사용자 캐릭터의 등급과 성적 현황을 보여줍니다.
  • 최근 성적의 변화와 자신의 취약점을 그래프로 확인 할 수 있습니다.
  • 공개 비공개 여부를 설정 할 수 있습니다.

조언
성적 조언.gif
  • 사용자의 최근 성적과 유형형에 기반한 조언을 해줍니다.

[마이페이지]

회원정보 수정
회원_정보_수정
  • 회원의 개인 정보(이메일, 닉네임, 썸네일 사진)를 수정 할 수 있습니다.
  • 회원 정보 변경 후 재 로그인 하도록 메인 페이지로 이동합니다.

친구 페이지
친구_관리
  • 친구 요청을 원하는 사람의 이름을 검색 할 수 있습니다.
  • 검색시에 글자를 포함하는 모든 사람의 이름을 반환합니다.
  • 친구 요청 및 거절을 할 수 있습니다.
  • 친구 요청이 수락 된 이후에 친구의 성적 관리 대시보드의 공개 여부에 따라 볼 수 있습니다.

8. 트러블 슈팅

채기훈

박봉균

노명환

윤성준

박동민

김정환


9. 개선 목표

채기훈

  • 더 자세한 테스트 코드 (단위, 통합 구분)
  • 서버 과부하 테스트 및 최적화
  • 채팅 관련 로그 Redis에서 관리

10. 프로젝트 후기

👻 채기훈

  • 백엔드와 인프라를 담당하면서, 새로운 기술들을 적용해볼 수 있어 매우 유익한 경험이었습니다. 특히 CI/CD 자동화, 실시간 채팅 API 구현, 신체 인식 AI 적용 등 다양한 기술을 실제 프로젝트에 적용해볼 수 있어 기술적으로 많은 성장을 이루었습니다.
  • 팀원들과의 협업 과정에서 의사소통의 중요성을 다시 한 번 깨달았습니다. Jira와 WBS를 활용한 업무 분담, Notion을 통한 API 명세 공유 등 체계적인 프로젝트 관리 방법을 익힐 수 있었습니다.
  • 프로젝트 진행 중 여러 기술적 난관에 부딪혔지만, 이를 해결해 나가는 과정에서 문제 해결 능력이 크게 향상되었습니다. 특히 트러블 슈팅 경험을 블로그에 정리하면서 지식을 체계화할 수 있었습니다.

About

학생을 위한 성적관리 및 동기부여 통합 서비스

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 6