codestates-seb / seb43_main_016

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

EduSync

스터디 모집 & 관리 플랫폼
프론트엔드 배포 주소 : https://www.edusync.site/
백엔드 배포 주소 : https://wish17.store/

프로젝트 기간 및 소개

프로젝트 기간 : 2023.04.28 ~ 2023.05.25

프로젝트 소개 Edusync는 자신이 원하는 IT 분야의 스터디 그룹을 찾고, 스터디 그룹원의 모집 / 구성 / 관리를 돕는 플랫폼입니다.

팀원 소개

  • 이미지 누르면 GitHub 주소로 연결됩니다.
  • 이름을 누르면 블로그 주소로 연결됩니다.
BE(팀장) BE BE FE(팀장) FE FE
정동우 위원종 양도열 송하은 강하성 이승현
정동우 위원종 양도열 송하은 강하성 이승현

Project Diagram & Stack

✨Project Diagram✨ diagram ✨Backend✨

✨Frontend✨


화면구성

스터디 그룹 탐색 스터디 그룹 생성
main-pre-1 main-pre-2
스터디 그룹 관리 스터디 스케줄 & 개인 스케줄
main-pre-6 main-pre-4

주요 기능

👩‍💻 회원가입 & 로그인

  • Form 회원가입 및 로그인을 지원합니다.
  • 소셜 회원가입 및 로그인을 지원합니다.

👩 마이페이지

  • 회원탈퇴를 할 수 있습니다.
  • 소셜 회원의 경우 로그인 정보 수정이 불가합니다.
  • 자기소개 항목을 통해 자신에 대해 소개하는 글을 작성할 수 있습니다.
  • 자신이 원하는 스터디원의 특징을 작성할 수 있습니다.

📖 스터디 조회, 등록, 수정, 삭제

  • 자신만의 스터디를 조회 / 등록 / 수정 / 삭제를 할 수 있습니다.
  • 타 회원이 등록한 스터디를 조회 / 가입 신청 / 탈퇴를 할 수 있습니다.
  • 타 회원이 등록한 모집 글에 댓글로 의견을 남길 수 있습니다.
  • 스터디 목록을 자신이 원하는 필터에 따라 재정렬할 수 있습니다.

👑 권한에 따른 예외처리

  • 스터디장은 스터디 대기 인원 승인, 스터디원 강제 탈퇴 등의 권한을 갖고 있습니다.
  • 스터디장은 스터디 그룹원에게 자신의 권한은 위임할 수 있습니다.
  • 스터디장은 스터디를 해체할 수 있으며, 스터디장은 스스로 스터디 탈퇴가 불가능합니다.

🗓️ 캘린더

  • 자신이 속한 스터디의 일정을 조회할 수 있습니다.
  • 자신만의 스터디 일정을 추가할 수 있습니다.

디렉토리 구조

├── README.md
├── .gitignore
├── LICENSE
├── client : 프론트엔드 디렉토리
│   ├── public
│   ├── src
│   │   ├── apis : 서버 통신을 담당하는 함수들을 별도로 관리
│   │   ├── assets
│   │   ├── compoenets : 기능 단위 컴포넌트
│   │   ├── hooks : recoil을 활용한 전역 상태 관리
│   │   ├── mocks : msw 제어
│   │   ├── pages : 최종 렌더링 페이지 관리
│   │   ├── recoil : 전역 상태 관리
│   │   ├── App.css
│   │   ├── App.tsx
│   │   ├── GlobalStyle.css
│   │   ├── ckeditor.d.ts
│   │   ├── index.css
│   │   ├── main.tsx
│   │   └── vite-env.d.ts
│   ├── index.html
│   ├── package-lock.json
│   ├── package.json
│   ├── tsconfig.json
│   ├── tsconfig.node.json
│   └── vite.config.ts
└── server : 백엔드 디렉토리
    ├── edusync
        ├── gradle/wrapper
        └── src
            ├── docs.asciidoc
            ├── main
            │   ├── java/com/codestates/edusync
            │   │   ├── config
            │   │   ├── exception
            │   │   ├── filter
            │   │   ├── handler
            │   │   ├── model
            │   │   ├── security/auth
            │   │   └── EdusyncApplication.java
            │   └── resources
            │       ├── db/migration
            │       ├── application-server.yml
            │       └── application.yml
            ├── test/java/com/codestates/edusync
            │       ├── config
            │       ├── member
            │       ├── model/study/studygroup
            │       └── EdusyncApplicationTests.java
            ├── .gitignore
            ├── background_run_app.sh
            ├── build.gradle
            ├── gradlew
            ├── gradlew.bat
            ├── run_app.sh
            ├── settings.gradle
            └── stop8080.sh

시작 가이드

required

Backend

$ cd server
// 시작
$ ./run_app_log.sh
// 종료
$ ./stop8080.sh

Frontend

$ cd client
$ npm install
$ npm run dev
$ npm run preview

Git Convention

Commit Message

Message 설명
[feat] 새로운 기능을 추가할 경우
[fix] 버그를 고친 경우
[design] CSS 등 사용자 UI 디자인 변경
[style] 코드 포맷변경, 세미콜론 누락, 코드수정이 없는 경우.
[refactor] 프로덕션 코드 리펙토링할 경우
[comment] 필요한 주석 추가 및 변경
[docs] 문서를 수정한 경우
[test] 테스트 코드 작업을할 경우
[chore] 빌드 테스트 업데이트, 패키지 매니저를 설정하는 경우
[rename] 파일 혹은 폴더명을 수정하거나 옮기는 작업만 하는 경우
[remove] 삭제하는 작업만 수행한 경우
[init] 브랜치 초기화 및 초기셋팅 관련된 설정일 경우

About

License:Apache License 2.0


Languages

Language:Java 58.7%Language:TypeScript 39.0%Language:JavaScript 1.9%Language:CSS 0.2%Language:Shell 0.2%Language:HTML 0.1%