/Hype-note

🏆GPT, Web 검색, 퀴즈가 있는 Hyper Web Editor💡 Hype Note(한입노트) (2023.10.09~2023.11.17)

Primary LanguageJava

📝 Hype-note

CS 학습 도우미 플랫폼


📅 기간

  • 2023.10.09 ~ 2023.11.17(6주)

🔎 목차

  1. 📖 프로젝트 개요
  2. 🛠️ 기술 스택
  3. ⚙️ 아키텍처
  4. 🗂️ 프로젝트 파일 구조
  5. 🖥 서비스 구현 화면
  6. 👥 팀원 소개

📖 프로젝트 개요

목표

  • 문서 정리 + 웹 겁색 + GPT 서비스를 한 페이지에서 한번에 사용할 수 있도록 편의성 제공

  • 트리 구조로 문서를 한 눈에 확인

  • 그래프 구조를 통해 문서 간 유사도를 연결 + 공유 받은 문서와 내 문서를 연결

  • 내가 정리한 문서를 AI가 퀴즈로 만들어줘 복습을 간편하게 할 수 있도록 편의성 제공


🛠️ 기술 스택

이슈관리 형상관리 코드리뷰 커뮤니케이션 디자인 UCC
TOOL JIRA GITLAB GERRIT NOTION Figma Movavi

💻 IDE

VSCode IntelliJ


📱 Frontend

NEXT.JS React React-Query NodeJS

HTML5 JavaScript TypeScript Tailwind CSS3 ANTD

D3 Stompjs Axios eslint Jotai


💾 Backend

Java

JWT ChatGPT

SpringBoot SpringBoot

Redis MongoDB AmazonS3 mysql AmazonRDS


🔃 DevOPS

docker Jenkins nginx amazonec2


⚙️ 아키텍처

image.png


🗂️ 프로젝트 파일 구조

FrontEnd
📦src
 ┣ 📂api
 ┃ ┣ 📂instances
 ┃ ┃ ┗ 📜api.ts
 ┃ ┗ 📂service
 ┃ ┃ ┣ 📜diagram.ts
 ┃ ┃ ┣ 📜editor.ts
 ┃ ┃ ┣ 📜quiz.ts
 ┃ ┃ ┗ 📜user.ts
 ┣ 📂app
 ┃ ┣ 📂editor
 ┃ ┃ ┣ 📂[id]
 ┃ ┃ ┃ ┗ 📜page.tsx
 ┃ ┃ ┗ 📜layout.tsx
 ┃ ┣ 📂main
 ┃ ┃ ┗ 📜page.tsx
 ┃ ┣ 📂quiz
 ┃ ┃ ┣ 📂maker
 ┃ ┃ ┃ ┗ 📜page.tsx
 ┃ ┃ ┣ 📂room
 ┃ ┃ ┃ ┣ 📂[id]
 ┃ ┃ ┃ ┃ ┗ 📜page.tsx
 ┃ ┃ ┃ ┗ 📜page.tsx
 ┃ ┃ ┣ 📜layout.tsx
 ┃ ┃ ┗ 📜page.tsx
 ┃ ┣ 📂search
 ┃ ┃ ┣ 📜page.tsx
 ┃ ┃ ┗ 📜search.css
 ┃ ┣ 📂signin
 ┃ ┃ ┗ 📜page.tsx
 ┃ ┣ 📂signup
 ┃ ┃ ┗ 📜page.tsx
 ┃ ┣ 📜favicon.ico
 ┃ ┣ 📜globals.css
 ┃ ┣ 📜layout.tsx
 ┃ ┣ 📜loading.tsx
 ┃ ┣ 📜not-found.tsx
 ┃ ┣ 📜page.tsx
 ┃ ┗ 📜providers.tsx
 ┣ 📂assets
 ┃ ┗ 📜alone.gif
 ┣ 📂components
 ┃ ┣ 📂brain
 ┃ ┃ ┣ 📜backup.js
 ┃ ┃ ┣ 📜back_brain.js
 ┃ ┃ ┣ 📜back_outlines.js
 ┃ ┃ ┣ 📜Brain.js
 ┃ ┃ ┣ 📜Outlines.js
 ┃ ┃ ┣ 📜SelectShare.tsx
 ┃ ┃ ┗ 📜test.js
 ┃ ┣ 📂category
 ┃ ┃ ┗ 📜Category.tsx
 ┃ ┣ 📂darkmode
 ┃ ┃ ┗ 📜DarkmodeBtn.tsx
 ┃ ┣ 📂editor
 ┃ ┃ ┣ 📜DeleteBtn.tsx
 ┃ ┃ ┣ 📜Editor.module.css
 ┃ ┃ ┣ 📜GPT.css
 ┃ ┃ ┣ 📜GPT.tsx
 ┃ ┃ ┣ 📜Search.tsx
 ┃ ┃ ┣ 📜Search_iFrame.tsx
 ┃ ┃ ┣ 📜Search_noGPTver.tsx
 ┃ ┃ ┣ 📜SharedBtn.tsx
 ┃ ┃ ┣ 📜store.tsx
 ┃ ┃ ┣ 📜TestEditor.tsx
 ┃ ┃ ┗ 📜ToShareBtn.tsx
 ┃ ┣ 📂intro
 ┃ ┃ ┣ 📜backup.js
 ┃ ┃ ┣ 📜css backup.css
 ┃ ┃ ┣ 📜download.svg
 ┃ ┃ ┣ 📜first_note.png
 ┃ ┃ ┣ 📜Intro.css
 ┃ ┃ ┣ 📜Intro.js
 ┃ ┃ ┣ 📜intro_logo.png
 ┃ ┃ ┣ 📜line_shadow.png
 ┃ ┃ ┣ 📜signin.png
 ┃ ┃ ┗ 📜signup_hover.png
 ┃ ┣ 📂quiz
 ┃ ┃ ┣ 📜ChatRoom.tsx
 ┃ ┃ ┣ 📜QuizList.tsx
 ┃ ┃ ┣ 📜QuizMain.tsx
 ┃ ┃ ┣ 📜QuizMaker.tsx
 ┃ ┃ ┣ 📜QuizResult.tsx
 ┃ ┃ ┣ 📜QuizRoom.tsx
 ┃ ┃ ┣ 📜QuizStart.tsx
 ┃ ┃ ┗ 📜Tree.tsx
 ┃ ┣ 📂ui
 ┃ ┃ ┣ 📜Button.tsx
 ┃ ┃ ┣ 📜Card.tsx
 ┃ ┃ ┣ 📜Card2.tsx
 ┃ ┃ ┣ 📜Card3.tsx
 ┃ ┃ ┣ 📜chat.tsx
 ┃ ┃ ┣ 📜Input.tsx
 ┃ ┃ ┣ 📜Label.tsx
 ┃ ┃ ┣ 📜logout.tsx
 ┃ ┃ ┣ 📜Modal.tsx
 ┃ ┃ ┣ 📜Quiz.tsx
 ┃ ┃ ┣ 📜Rank.tsx
 ┃ ┃ ┗ 📜Timer.tsx
 ┃ ┣ 📜Loading.tsx
 ┃ ┣ 📜MySearch.tsx
 ┃ ┣ 📜MySearch_back.tsx
 ┃ ┣ 📜Navbar.tsx
 ┃ ┣ 📜Signin.tsx
 ┃ ┣ 📜Signup.tsx
 ┃ ┗ 📜ThreeScene.tsx
 ┣ 📂context
 ┃ ┣ 📜SocketEditorProvider.tsx
 ┃ ┣ 📜SocketProvider.tsx
 ┃ ┗ 📜SubscribeProvider.tsx
 ┣ 📂hooks
 ┃ ┣ 📜useAllDiagram.ts
 ┃ ┣ 📜useConnectSocket.ts
 ┃ ┣ 📜useCreateChildNote.ts
 ┃ ┣ 📜useCreateNote.ts
 ┃ ┣ 📜useCreateRoom.ts
 ┃ ┣ 📜useCreateSingleRoom.ts
 ┃ ┣ 📜useDeleteNote.ts
 ┃ ┣ 📜useGetNote.ts
 ┃ ┣ 📜useGetQuizHistory.ts
 ┃ ┣ 📜useGetSearchMyNote.ts
 ┃ ┣ 📜useGetSearchResult.ts
 ┃ ┣ 📜useGetSharedMember.ts
 ┃ ┣ 📜useGetShareUserList.ts
 ┃ ┣ 📜useGetUserInfo.ts
 ┃ ┣ 📜useGetUserInfoByNickName.ts
 ┃ ┣ 📜useGetUserNoteList.ts
 ┃ ┣ 📜useGPT.ts
 ┃ ┣ 📜useImageUpload.ts
 ┃ ┣ 📜useLinkNote.ts
 ┃ ┣ 📜useLoading.ts
 ┃ ┣ 📜useNoteList.ts
 ┃ ┣ 📜useReissue.ts
 ┃ ┣ 📜useSendQuizAnswer.ts
 ┃ ┣ 📜useShareDiagram.ts
 ┃ ┣ 📜useSharedNote.ts
 ┃ ┣ 📜useSiginin.ts
 ┃ ┣ 📜useSignup.ts
 ┃ ┣ 📜useUpdateNote.ts
 ┃ ┗ 📜useUsersFindByPkList.ts
 ┣ 📂store
 ┃ ┣ 📜documentsAtom.ts
 ┃ ┣ 📜isSolo.ts
 ┃ ┣ 📜mynoteResults.ts
 ┃ ┣ 📜searchOpen.ts
 ┃ ┗ 📜theme.ts
 ┗ 📂types
 ┃ ┣ 📜diagram.ts
 ┃ ┣ 📜ediotr.ts
 ┃ ┣ 📜quiz.ts
 ┃ ┗ 📜user.ts
Backend
📂config
📂gateway
📂discovery
 📂auth
  📂diagram
  📂editor
  📂gpt
  📂quiz
  📂search

🖥️ 서비스 구현 화면

1. 랜딩 페이지 로그인

1.1 랜딩 페이지

랜딩.gif

  • 전체적인 서비스 내용을 한 눈에 보는 랜딩페이지

1.2 로그인

로그인.gif


2. 다이어그램

2.1 내 뇌 보기

내 뇌.gif

  • 나의 문서들을 한눈에 볼 수 있는 페이지

  • 노드들을 직접 움직이면서 사용자와 상호작용 및 인터랙티브한 경험 제공


2.2 공유 뇌 보기

친구 뇌 받기.gif

  • 공유 받은 문서들과 내 문서들의 유사도를 통해 노드들이 연결
  • 한 눈에 연관된 문서들을 확인

3. Editor

3.1 작성, 수정, 삭제

글쓰기.gif

  • 마크다운 문법 사용 가능

  • 글 작성시 바로 navbar에 연결


3.2 공유

문서공유.gif

  • 문서를 공유하고 싶은 사람들 선택 후 공유 가능

  • 문서 하나 공유 시, 해당 자식 노드들 다 공유


3.3 동시 작성

동시작업.gif

  • 공유받은 사람들 간의 동시 작성 가능

4. GPT

GPT.gif

  • 문서 작성 페이지 내에서 GPT 검색 가능
  • 탭 전환 필요 없이 사용 가능하여 사용자의 편의성 향상

5. Search

서치.gif

  • CS와 관련된 검색 결과 제공

6. Quiz

6.1 혼자풀기

6.1.1 방만들기

혼자풀기1.gif

  • 나의 문서들을 선택하여 퀴즈 범위 설정

6.1.2 퀴즈풀기 + 퀴즈 결과

혼자풀기2.gif

  • 퀴즈 결과와 오답과 해설을 한번에 제공

6.2 같이풀기

6.2.1 방만들기

둘이풀기 방만들기.gif


6.2.2 대기실 : 레디 및 채팅

퀴즈 대기방.gif


6.2.3 퀴즈 풀기

퀴즈결과&오답노트 (1).gif


6.2.4 퀴즈 결과 : 랭킹 및 오답노트

퀴즈결과&오답노트 (1).gif


7. 다크모드 구현

다크모드.gif

  • tailwind를 활용해 한번에 다크모드 전환

👥 팀원 소개

Name 권인식 심규렬 윤자현 이가영 이세울 최상익
Profile image image image image image image
Position Leader(PM)
Backend
Backend Frontend Frontend Frontend Backend
Position Infra
MSA 설계
Auth/Member Server
Gpt Server
Editor Server
Search Server
Auth
Quiz
WebSocket
UX/UI
Interactive Web
Diagram
GPT
Search
UX/UI
Editor
Tip Tab
WebSocket
UX/UI
Diagram Server
Quiz Server
Git GitHub GitHub GitHub GitHub GitHub GitHub

참고

SSAFY 9기 2학기 자율 프로젝트 - 한입 노트 (Hype Note)

🎬UCC 보러가기
📚Notion 보러가기