Skip to content
 
 

Latest commit

 

History

49 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

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

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages