Skip to content

🌳 온라인 학습지 통합 관리 서비스 - 🏆 SSAFY 자율프로젝트 최우수상

Notifications You must be signed in to change notification settings

EDU-Forest/FOREST

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🥇 SSAFY 자율 프로젝트 최우수상

🥇 SSAFY 자율 프로젝트 결선 입상

🎞 SSAFY 자율 프로젝트 UCC 특별상


🌳 Forest - 온라인 학습지 통합 관리 서비스 🌲

포레스트_썸네일

🌳 프로젝트 일정

📅 2023-04-10(월) ~ 2023-05-19(금) (6주)

🌳 소개

캡처_2023_05_17_13_03_04_157

캡처_2023_05_17_13_03_10_297

캡처_2023_05_17_13_03_25_173

캡처_2023_05_18_23_51_52_952

현대 교육은 디지털 기술의 발전과 함께 많은 변화를 겪고 있습니다.

특히, 온라인 학습은 교육의 패러다임을 바꾸며 학습 방식과 환경을 혁신하고 있습니다.

이에 따라 학생과 선생님 모두에게 효과적인 학습 도구와 플랫폼이 필요하게 되었습니다.

Forest는 이러한 변화에 발맞춰 개발된 온라인 학습 플랫폼입니다.

학생들이 온라인 상에서 학습을 진행하고 성적을 분석하여 개인의 학습 상태를 파악할 수 있는 기능을 제공합니다.

또한, 선생님들은 커스텀 학습지를 만들고 배포하여 학생들의 학습을 관리할 수 있습니다.

온라인 학습지 Forest로 더 효과적인 학습을 경험해 보세요!

🎁 기대효과

캡처_2023_05_17_13_07_07_653

🌳 Forest 기능

Forest는 온라인 학습을 보다 효과적으로 진행할 수 있는 다양한 기능들을 제공합니다.

지금 Forest와 함께 학습의 경험을 한 단계 높여보세요!

👩‍🏫 선생님 👨‍🏫

  • 나만의 커스텀 학습지를 만들 수 있습니다.
  • 클래스 내 학생들을 위해 학습지를 배포하고 관리할 수 있습니다.
  • 학습에 응시한 학생들의 결과표를 분석하고 시각화하여 보여줍니다.
  • 내가 갖고 있는 기존 학습지 PDF를 Forest에 넣고 싶다면? OCR을 이용해 보세요.

👩‍💻 학생 👨‍💻

  • 배포된 학습지를 이용하여 시험에 응시 가능합니다.
  • 시험을 보면서 실시간으로 필기 가능한 캔버스 기능을 제공합니다.
  • 시험 종료 시 자동 채점이 이루어 집니다.
  • 나의 학습 결과 분석표를 확인해 보세요!

🌳 사용 기술

캡처_2023_05_18_23_51_10_440

캡처_2023_05_18_23_51_14_426

캡처_2023_05_18_23_51_21_631

캡처_2023_05_18_23_51_24_841

캡처_2023_05_18_23_51_27_949

캡처_2023_05_18_23_51_30_554

🌳 개발 환경

🤖 프론트엔드

  • Next.js 13.3.0
  • React 18.2.0
  • React-query 3.39.3
  • Redux 4.2.1
  • Styled-components 5.3.9
  • TypeScript 5.0.4

🍭 백엔드

  • openJDK 11.0.18
  • SpringBoot 2.7.10
  • Spring Swagger: 2.9.2
  • queryDSL: 5.0.0
  • Flask 2.3.2
  • Werkzeug 2.3.3

💽 DB

  • MySQL: 8.0.31
  • Mongodb : 4.4

🚋인프라

  • Ubuntu 20.04
  • docker 23.0.1
  • docker-compose 1.29.2
  • Jenkins 2.387.1
  • AWS EC2
  • AWS EKS
  • AWS ECR
  • AWS ROUTE53
  • ArgoCD

🌳 산출물

CI/CD

cicd

아키텍처

architecture

와이어프레임

선생님 PNG

학생 PNG

ERD

캡처_2023_05_19_00_04_12_637

기능 명세서

캡처_2023_05_19_00_04_16_465

API 명세서

캡처_2023_05_19_00_04_21_199

📁 프로젝트 구조

🌳 Backend

Forest-Auth, Workbook, Study

📦forest-auth
 ┣ 📂.gradle
 ┣ 📂.idea
 ┣ 📂gradle
 ┣ 📂src
 ┃ ┣ 📂main
 ┃ ┃ ┣ 📂java
 ┃ ┃ ┃ ┗ 📂com
 ┃ ┃ ┃ ┃ ┗ 📂ssafy
 ┃ ┃ ┃ ┃ ┃ ┗ 📂forestauth
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂auth
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂jwt
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂config
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂controller
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂dto
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂classes
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂common
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂response
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂memo
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂msg
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂user
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂entity
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂enumeration
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂response
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂repository
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂service
 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂util
 ┃ ┃ ┗ 📂resources
 ┣ 📜.gitignore
 ┣ 📜build.gradle
 ┣ 📜docker-compose.yml
 ┣ 📜Dockerfile
 ┣ 📜gradlew
 ┣ 📜gradlew.bat
 ┗ 📜settings.gradle

Flask

📦forest-flask
 ┣ 📂.idea
 ┃ ┣ 📂inspectionProfiles
 ┣ 📂venv
 ┃ ┣ 📂Lib
 ┃ ┣ 📂Scripts
 ┣ 📜app.py
 ┣ 📜docker-compose.yml
 ┣ 📜Dockerfile
 ┗ 📜requirements.txt

🌳 Frontend

📦forest-front
 ┣ 📂public
 ┃ ┣ 📂fonts
 ┃ ┣ 📂icons
 ┃ ┣ 📂images
 ┃ ┣ 📂lottieJson
 ┣ 📂src
 ┃ ┣ 📂apis
 ┃ ┃ ┣ 📂auth
 ┃ ┃ ┣ 📂canvas
 ┃ ┃ ┣ 📂class
 ┃ ┃ ┃ ┣ 📂analysis
 ┃ ┃ ┃ ┣ 📂student
 ┃ ┃ ┃ ┣ 📂teacher
 ┃ ┃ ┣ 📂dashboard
 ┃ ┃ ┣ 📂editor
 ┃ ┃ ┣ 📂search
 ┃ ┃ ┣ 📂study
 ┃ ┃ ┣ 📂workbook
 ┃ ┃ ┗ 📂workbookDetail
 ┃ ┣ 📂assets
 ┃ ┣ 📂components
 ┃ ┃ ┣ 📂Arrow
 ┃ ┃ ┣ 📂Button
 ┃ ┃ ┣ 📂Card
 ┃ ┃ ┣ 📂HashTag
 ┃ ┃ ┣ 📂Input
 ┃ ┃ ┣ 📂Label
 ┃ ┃ ┣ 📂Loading
 ┃ ┃ ┣ 📂Modal
 ┃ ┃ ┣ 📂Nav
 ┃ ┃ ┣ 📂Question
 ┃ ┃ ┣ 📂Spinner
 ┃ ┃ ┣ 📂Status
 ┃ ┃ ┣ 📂Tab
 ┃ ┃ ┣ 📂Toast
 ┃ ┃ ┗ 📂Workbook
 ┃ ┣ 📂constants
 ┃ ┣ 📂enum
 ┃ ┣ 📂features
 ┃ ┃ ┣ 📂canvas
 ┃ ┃ ┣ 📂class
 ┃ ┃ ┃ ┣ 📂analysis
 ┃ ┃ ┃ ┣ 📂student
 ┃ ┃ ┃ ┣ 📂teacher
 ┃ ┃ ┣ 📂dashboard
 ┃ ┃ ┃ ┣ 📂student
 ┃ ┃ ┃ ┣ 📂teacher
 ┃ ┃ ┣ 📂editor
 ┃ ┃ ┣ 📂home
 ┃ ┃ ┣ 📂login
 ┃ ┃ ┣ 📂mobile
 ┃ ┃ ┣ 📂modal
 ┃ ┃ ┣ 📂search
 ┃ ┃ ┣ 📂signup
 ┃ ┃ ┣ 📂test
 ┃ ┃ ┃ ┣ 📂common
 ┃ ┃ ┃ ┣ 📂index
 ┃ ┃ ┃ ┣ 📂info
 ┃ ┃ ┃ ┗ 📂result
 ┃ ┃ ┣ 📂workbook
 ┃ ┃ ┗ 📂workbookDetail
 ┃ ┣ 📂hooks
 ┃ ┃ ┣ 📂editor
 ┃ ┣ 📂lib
 ┃ ┣ 📂pages
 ┃ ┃ ┣ 📂editor
 ┃ ┃ ┣ 📂login
 ┃ ┃ ┣ 📂mobile
 ┃ ┃ ┣ 📂search
 ┃ ┃ ┣ 📂signup
 ┃ ┃ ┃ ┣ 📂more-info
 ┃ ┃ ┣ 📂student
 ┃ ┃ ┃ ┣ 📂class
 ┃ ┃ ┃ ┗ 📂dashboard
 ┃ ┃ ┣ 📂teacher
 ┃ ┃ ┃ ┣ 📂class
 ┃ ┃ ┃ ┃ ┣ 📂study
 ┃ ┃ ┃ ┃ ┃ ┗ 📂[id]
 ┃ ┃ ┃ ┗ 📂dashboard
 ┃ ┃ ┣ 📂test
 ┃ ┃ ┃ ┗ 📂[studyId]
 ┃ ┃ ┣ 📂workbook
 ┃ ┣ 📂stores
 ┃ ┃ ┣ 📂class
 ┃ ┃ ┣ 📂editor
 ┃ ┃ ┣ 📂exam
 ┃ ┃ ┣ 📂user
 ┃ ┃ ┣ 📂workbookDetail
 ┃ ┣ 📂styles
 ┃ ┣ 📂types
 ┃ ┗ 📂utils
 ┃ ┃ ┣ 📂auth
 ┃ ┃ ┣ 📂customAxios
 ┣ 📜.babelrc
 ┣ 📜.eslintrc.json
 ┣ 📜.gitignore
 ┣ 📜.prettierrc.json
 ┣ 📜Dockerfile
 ┣ 📜Jenkinsfile
 ┣ 📜next.config.js
 ┣ 📜package-lock.json
 ┣ 📜package.json
 ┣ 📜README.md
 ┣ 📜server.js
 ┗ 📜tsconfig.json

🌳 협업 환경

  • Gitlab

    • 원격 저장소
    • 코드 버전 관리
  • Mattermost

    • Mattermost를 이용하여 error log관리

    • 팀원 모두가 편하게 에러 체크 가능

      Untitled_(7)

  • JIRA

    • Epic, Story 지정해서 매주 Sprint 진행
  • 회의

    • 매주 일요일 오후 9시 Discord 팀 회의 진행
    • 필요 시 프론트, 백엔드 회의 진행
    • 매일 아침 팀 전체 데일리스크럼 진행 (당일 목표 작업 브리핑)
    • 파트 별 코드 리뷰 진행 (플립 이용)
  • Notion

    Untitled 1

🌳 팀 소개

team

🌳 서비스 화면

대시보드

학생 대시보드
선생님 대시보드

클래스

선생님 클래스
클래스 생성 및 학생 초대
학생 클래스

탐색

탐색 페이지

에디터

문제집 전환 및 추가
객관식 생성
OX 선택 생성
단답식 생성
서술형 생성
PDF 및 이미지 문제 전체 영역 변환
PDF 및 이미지 문제 일부 영역 변환
이미지 삽입
지문 삽입

문제

문제 순서 수정, 삭제
PDF 다운로드
문제집 출제
문제집 배포
문제집 사본 생성

분석

학생 문제 풀이 및 결과 확인
선생님 시험 종료 및 결과 확인

About

🌳 온라인 학습지 통합 관리 서비스 - 🏆 SSAFY 자율프로젝트 최우수상

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages