Skip to content
/ Redo Public

본 프로젝트는 GPT에게 기록한 메모를 복습하고 정리할 수 있는 서비스입니다. 오랫동안 기록하고 쌓인 메모를 보면 어떤 메모가 어떤 개념을 다루는 지 한 눈에 보기 어려워지는데 이를 ‘Redo’와 함께 라면 문제없이 모든 기록을 복습 받을 수 있습니다. 이 ‘Redo’ 서비스는 Computer Science에 특화되어 있으며 관련 학문을 학습하는 이들에게 큰 도움이 될 것입니다.

License

Notifications You must be signed in to change notification settings

dzcoffee/Redo

Repository files navigation

Redo

본 프로젝트는 GPT에게 기록한 메모를 복습하고 정리할 수 있는 서비스입니다. 오랫동안 기록해 메모가 쌓이면 특정 개념을 어디에 기록했는지 찾기 어려워집니다.

‘Redo’가 제공하는 퀴즈와 함께하면 문제없이 모든 기록을 복습 받을 수 있습니다. 이 ‘Redo’ 서비스는 Computer Science에 특화되어 있으며 관련 학문을 학습하는 이들에게 큰 도움이 될 것입니다.

주요 특징:

전반적인 시스템 Diagram

image

  • 크게 메모/퀴즈생성/ 퀴즈 정답 검증 3단계로 구분됩니다.
  • 각각의 세부적인 Logic에 대한 설명은 최종발표 자료 영상 6:35 구간부터 설명되어 있습니다.

1) 메모 카테고리 추천 기능

메모 카테고리 추천 기능 Image

image

  • 사용자가 작성한 내용을 바탕으로 카테고리를 추천 받을 수 있습니다.
  • GPT Embedding API를 이용한 카테고리 추천 Model로 사용자에게 메모 내용과 가장 유사한 3가지 카테고리를 추천해줍니다.
  • 여기서 정해진 카테고리는 퀴즈생성 기능에서 중요한 역할을 합니다.

2) 퀴즈 생성 기능

퀴즈 생성 기능 Image

image image

  • GPT ChatCompletion api를 이용한 퀴즈 생성 기능입니다.
  • 프롬프트 엔지니어링을 통해 UI에서 선택한 옵션들을 적용시켜 문제를 생성해줍니다.
  • 문제 난이도는 '입문자/전공 대학생/취업준비생' 이라는 페르소나로 나누어 구분된 문제의 난이도를 제공합니다.
  • 어려움 난이도 같은 경우에는 Markdown으로 작성된 Table이나 Code Sample이 문제에 포함될 수 있습니다.
  • 메모 등록 시, 이미 Moderation으로 검증된 메모만 퀴즈 생성에 사용할 수 있습니다.
  • 문제 개수 옵션에 따라 Embedding 문제 모델에 저장된 문제도 GPT가 생성한 문제와 같이 풀 수 있습니다.
  • 문제 생성 시 GPT 생성 문제는 질문 아래의 유사도를 기반이 된 메모 내용과 메모 카테고리 Label에 해당하는 Embedding 문제 모델과의 Cosine 유사도를 측정해 문제에 대한 검증 지표로 이용할 수 있습니다.
  • 여기서 새롭게 GPT가 생성해준 문제는 사용자의 판단에 따라 재사용될 수도 있습니다.

3) 퀴즈 문제 풀이 및 Feedback 기능

퀴즈 문제 풀이 및 Feedback 기능

image image

  • 문제에 대한 답을 작성하고 정답보기 버튼을 클릭하시면 내부 로직에 따라 객관식은 자체적으로 정답 검증 후 풀이를 제공하고 단답식/주관식은 질문과 유저의 답변을 ChatCompletion api에 넣어 답변 검증과 풀이 생성해 제공합니다.
  • 사용자가 풀이를 보고 문제에 대한 피드백을 점수로 남기면 이 점수에 따라서 GPT가 생성해준 문제를 재사용 여부를 결정하게 됩니다.
  • 단답식/주관식 유저 답변에도 Moderation이 적용되어 있습니다.

사용설명 :

주의사항

  • 배포 과정에서 다소 delay가 있을 수 있습니다. 만약 사용하기 너무 힘들 정도로 delay가 있을 경우 답변 남겨주세요.
  • 메모 내용은 3000자 까지로 제한하는 것을 권장 드립니다. (그 이상도 가능은 하나 사용성이 떨어질 수 있습니다.)
  • 퀴즈 생성 후에는 피드백을 제출하는 것을 권장 드립니다.
  • 권장 드리는 카테고리는 운영체제, 설계패턴, 데이터베이스, 네트워크 순입니다.
  • 퀴즈 생성하시기 전에 옵션 한 번씩 꼭 확인해주시길 바랍니다!

로그인/회원가입

로그인/회원가입 Image

로그인

image

회원가입

image

  • 회원가입 및 로그인을 통해 서비스를 이용하실 수 있습니다.
  • 모든 로그인 과정은 JWT 발급 방식으로 처리되어 안전하게 이용하실 수 있습니다.
  • 로그인 후 각 User마다 구분된 서비스를 이용하실 수 있습니다.

메모 등록/수정/삭제

메모 등록/수정/삭제 Image

메모 등록

image

메모 수정/삭제

image

  • 메모를 등록하고 수정하고 삭제하실 수 있습니다.
  • 메모를 등록하고 수정할 때(즉, 서버에 저장될 때)는 Moderation 검증 과정을 거쳐 안전한 정보만으로 서비스를 이용하실 수 있습니다.
  • Moderation 검증에 번역하는 과정이 있기 때문에 메모 내용 길이에 따라 시간이 걸릴 수 있습니다.
  • Moderation은 메모 등록, 수정 기능 모두 적용되어 있습니다.

메모 카테고리 선택

메모 카테고리 선택 Image

메모 카테고리 추천

image

메모 직접 선택

image

  • 메모 내용과 관련 있는 카테고리를 선택해주시길 바랍니다. (퀴즈 생성에 영향을 줄 수 있습니다.)
  • 카테고리는 메모 당 하나만 고를 수 있습니다.

퀴즈 생성

퀴즈 생성 Image

image

  • 작성하신 메모를 선택해서 해당 메모 내용 기반으로 문제를 생성할 수 있습니다.
  • 문제 갯수는 1~5개로 선택가능하며, 2개 이상이면 Embedding Model의 문제 또한 이용하실 수 있습니다. (메모 내용에 따라 유사한 문제가 없을 시 오로지 GPT문제로만 생성될 수 있음)
  • 문제 형식에는 객관식/단답식/주관식이 있습니다.
  • 문제 난이도는 쉬움/중간/어려움으로 어려움을 선택할 시 Code Sample이나 Table이 포함된 문제를 푸실 수도 있습니다. (내용에 따라 포함되지 않을 수도 있음)

퀴즈 풀기

퀴즈 풀기 Image

image image

  • 퀴즈가 생성되었다면 이제 퀴즈를 푸시면 됩니다!
  • 퀴즈를 다 푸셨다면 정답보기 버튼을 눌러주세요

퀴즈 풀이

퀴즈 풀이 Image

image

  • 객관식의 경우 서버의 처리만 끝나면 바로 해설을 보실 수 있습니다.
  • 단답식/ 주관식의 경우 GPT API의 요청에 응답하면 해설을 보실 수 있습니다.

피드백

피드백 Image

image

  • 문제를 풀고 피드백 점수를 매겨주세요!
  • 피드백 점수가 높으면 다른 사람들과 함께 해당 문제를 재활용할 수 있도록 설계되어 있습니다!

Contributor

윤도경 (@dzcoffee) 한신(@Urchinode) 박민영(@meanyong) 이혜희(@Hyehee-Lee)


커밋 규칙

커밋 주제 내용
feat 새로운 기능 구현 EX: 로그인 페이지, CRUD 기능
update 기존 기능 업데이트 EX: UI 변경, gpt 프롬프트 수정
fix 버그 수정
refactor 프로젝트 폴더 구조 정리 및 코드 개선(가독성, 유지보수)
chore 불필요한 파일 삭제, 폴더 구조 재배치, 임시 기능 구현
docs 문서화
config 패키지 관리, 설정 파일, 기술 연동(DB 등)

다음 형식의 커밋 메시지를 권장드립니다.

[분야] 커밋 주제: 내용


EX)
[client] feat: 로그인 페이지 UI
[client] fix: 로그아웃 시 토큰 초기화
[server] feat: 메모 CRUD
[server] config: DB 관련 패키지 추가
[project] docs: README 수정

분야는 간단하게 프론트(client), 서버(server), 프로젝트 전체(project)로 구분하고자 합니다.

브랜치 규칙

종류 용도
main 배포용 - 배포 툴이 이 브랜치의 커밋 변경 상태를 감지해 자동 배포할 수 있게합니다.
dev 코드 통합 - 프론트와 서버 기능을 취합할 브랜치입니다.
feature/기능 이름 기능 개발 - 각자가 맡은 기능을 개발할 브랜치입니다. 추후, dev에 merge하고 삭제하는 방식으로 사용하고자 합니다.

개발 과정

개발 사이클

1. feature 브랜치 생성

git checkout -b feature/[기능 이름]

EX:
git checkout -b feature/login-ui
git checkout -b feature/memo-crud

git checkout -b 로 원하는 이름의 브랜치를 만든 후 이동합니다.

2. 개발

로컬에서 기능을 구현합니다.

❗위의 커밋 규칙에 맞는 커밋 메시지를 따라주시면 감사하겠습니다.

하나의 커밋에 너무 많은 기능이 구성되지 않도록 적절히 나누어 커밋하는 것을 권장합니다.

3. Pull Request 생성

Github 페이지에 들어와 Pull Request를 생성합니다.

만약, 브랜치 충돌이 발생한다면 해결한 후 커밋합니다.

❗현재 작업하는 브랜치의 커밋이 최신이 되도록 Pull, Push를 잊지 말아주세요!

4. Merge 진행(dev, main)

feature 브랜치는 dev에 merge합니다.

dev 브랜치에서 기능 상 문제가 없다면 main에 merge합니다.

5. Pull 진행

로컬에서도 merge된 결과를 Pull해줍니다.

git pull origin main

1 ~ 5 반복하며 진행

About

본 프로젝트는 GPT에게 기록한 메모를 복습하고 정리할 수 있는 서비스입니다. 오랫동안 기록하고 쌓인 메모를 보면 어떤 메모가 어떤 개념을 다루는 지 한 눈에 보기 어려워지는데 이를 ‘Redo’와 함께 라면 문제없이 모든 기록을 복습 받을 수 있습니다. 이 ‘Redo’ 서비스는 Computer Science에 특화되어 있으며 관련 학문을 학습하는 이들에게 큰 도움이 될 것입니다.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •