Skip to content

23-Capstone/pang

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

50 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Pang! Project

image

자동으로 카테고리별로 정리해주는 마인드맵 형식의 메모 웹애플리케이션 서비스입니다.

  • 노트를 재활용하기 어렵거나, 메모 찾는 것에 어려움을 겪거나, 정리하는데 오랜 시간을 겪었던 사용자들을 위해 메모를 작성하면 자동으로 카테고리별로 분류되고, 직관적인 UI로 표시됩니다.

  • 맡은 역할: 프로젝트 기획, 데이터 수집 및 라벨링, 템플릿 기반 클라이언트, django 서버

    • 1,239개의 메모 데이터를 수집하고 3,952개의 단어로 정리한 후, 12개의 카테고리로 데이터를 분류하는 데이터 라벨링 수행
    • 풀스택 프레임워크인 Django를 이용하여 백엔드와 프론트엔드 구현
    • 상위 카테고리, 하위 카테고리, 메모 내용이 구성될 수 있도록 총 3개의 테이블 설계
    • NLP 모델을 연결하여, 반환값을 가져올 수 있도록 함수로 구현
    • Django 템플릿을 사용하여 데이터를 동적으로 출력할 수 있도록 프론트엔드 구성. 마인드맵 방사형 형식으로 메모가 보여질 수 있도록 구현
  • 프로젝트를 진행하며 경험한 부분

    • 마인드맵을 효과적으로 구성하기 위해 데이터베이스 구조를 설정하고, 데이터를 라벨링하면서 카테고리를 최적화했습니다.
    • 단순히 자바스크립트를 조작하는 것은 익숙하지 않았기에 마인드맵 형태로 뻗어나가는 일은 상당한 도전이었습니다. 하지만 이러한 도전과제를 해결하기 위해 중심좌표와 지름을 구해 마인드맵 형태로 표현하고, 줌인 줌 아웃 기능을 추가하여 프로젝트를 성공적으로 마무리했습니다.

프로토타입

전체 구현된 모습 영상

Pang_simulation.mp4

메모 남기기

pang-question.2024.mp4

질문 내용

  • '폼클렌징 사기' -> 결과: [🔮위시리스트] - [🛒쇼핑리스트] 안에 '폼클렌징 사기'가 저장된 것을 확인할 수 있다.
  • '송도공원' -> 결과: [🤓정보] - [🚩핫플레이스] 안에 '송도공원'이 저장된 것을 확인할 수 있다.
  • '월요일까지 최종 보고서 제출하기' -> 결과: [✅할 일] - [📔학교] 안에'월요일까지 최종 보고서 제출하기'가 저장된 것을 확인할 수 있다.

전체 모습 이미지

PANG_2-2

각 카테고리별로 확대한 모습

PANG_3-2 PANG_3 PANG3-3

실행방법

사전 준비 Python version: 3.x

프로젝트 설정

1단계: 저장소 클론

먼저, git을 사용하여 저장소를 로컬 컴퓨터에 클론합니다.

git clone https://github.com/Mingguriguri/capstone-Pang.git
cd capstone-Pang

또는 저장소를 fork 한 후, 개인 저장소에서 클론합니다.

2단계: 가상 환경 생성 (선택 사항)

종속성을 관리하고 다른 프로젝트와의 충돌을 피하기 위해 가상 환경을 생성하는 것을 권장합니다.

  • Windows:
python -m venv venv
venv\Scripts\activate
  • macOS/Linux:
python -m venv venv
source venv/bin/activate

3단계: 종속성 설치

가상 환경을 활성화한 후, requirements.txt 파일에 나열된 종속성을 설치합니다.

pip install -r requirements.txt

4단계: 프로젝트 실행

프로젝트가 잘 실행되는지 확인해보세요!

python manage.py runserver

잘 실행된다면 프로젝트에 기여해주시면 됩니다 :D

가상환경 비활성화

deactivate

Service Architecture

스크린샷 2024-07-01 오후 8 52 12

사용기술:

  • Frontend: Html, CSS, Javascript
  • Backend: Django
  • Data Storage: SQLite
  • AI: FastText, KoNLPy

AI

Model

  • FastText Model: Text classification
  • Tokenizer: konlpy

Dataset

  • 데이터 총 개수: 1,239개

  • → 총 단어 개수: 3,952개

  • → label 개수: 24개

  • 데이터 수집 방법: 팀원들이 직접 지인들로부터 수집

  • 데이터 라벨링 방식: “__label__ __label__ 형태소로 분류된 텍스트”

__label__1.할일    __label__주문    __label__음식    슈크림 빵 구매 하 기
__label__2.아이디어    __label__의료    약 알러지 있 는 사람 기록 , 이쪽저쪽 병원 다 지니 지 않 고 병력 사항 을 모두 조회 가능 하 도록
__label__1.할일    __label__학교    __label__프로그래밍    padding 어떻 ㄹ 때 하 는지 얼만큼 하 는지 꼭 물어보 기
__label__4.기타    __label__가고싶은곳    __label__대구    오랜지 막창
__label__1.할일    __label__학교    취업 상담 신청 하 지
  • 데이터 카테고리
    level_dict = {"💡아이디어":{"💻프로그래밍":0,"📖소재":1,"🧶잡생각":2},
                "☑️할일":{"📔학교":0,"🏠집":1,"🔥대외활동":2,"👞회사&알바":3},
                "🤓정보":{"🍽️맛집":0,"🍯꿀팁":1,"🚩핫플레이스":2,"🎫문화생활":3},
                "📌기억할것":{"❗피드백":0,"🎯추천리스트":1,"😎임무":2,"📢중요":3},
                "🔮위시리스트":{"🎥미디어":0,"🍔먹킷리스트":1,"🛒쇼핑리스트":2,"📝버킷리스트":3}}

Backend

  • python version: 3.9
  • framework: Django 4

MTV Pattern

스크린샷 2024-07-01 오후 8 56 14

Database, Model

스크린샷 2024-07-01 오후 9 56 36

admin page 스크린샷 2024-07-01 오후 9 57 04

URL pattern

스크린샷 2024-07-01 오후 9 57 17

View

스크린샷 2024-07-01 오후 9 57 30 스크린샷 2024-07-01 오후 9 58 01

Frontend (Template)

스크린샷 2024-07-01 오후 9 58 27 스크린샷 2024-07-01 오후 9 58 36 스크린샷 2024-07-01 오후 9 58 45 스크린샷 2024-07-01 오후 9 58 53 스크린샷 2024-07-01 오후 9 59 04 스크린샷 2024-07-01 오후 9 59 14 스크린샷 2024-07-01 오후 9 59 24 스크린샷 2024-07-01 오후 9 59 34 스크린샷 2024-07-01 오후 9 59 46 스크린샷 2024-07-01 오후 9 59 55 스크린샷 2024-07-01 오후 10 00 04 스크린샷 2024-07-01 오후 10 00 11

Docs

발표자료: 바로가기

About

사용자 메모 분석 및 자동 카테고리화 웹/앱 서비스 ☁️

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •