# Motivation for development
- 군대에서 알고리즘을 공부하면서 `Obsidian`에 해당 내용들을 정리하기 시작했다.
- 알고리즘 특성 상 서로 연관되어 있는 경우가 많다 보니, 실제로 내가 정리한 알고리즘을 찾아볼 때 해당 문서를 찾고 검색하는 과정이 복잡하고 귀찮았다.
- 또한 `Obsidian`에 정리한 내용들이 점점 많아지면서 이것들을 따로 정리 및 요약하고 하는 기능을 만들고 싶어졌다.
- 그래서 내가 직접 파일을 찾는게 아나라, 인터넷에 검색하는 것처럼 내 문서를 바탕으로 한 검색 엔진 기능과 해당 파일들을 정리 해줄 수 있는 프로그램을 만들어야겠다고 생각했다.
# Project Goals(MVP)
- [[LangChain Introduction|LangChain]]과 [[Crew]]을 이용해 파일 검색 기능을 만든다.
- 키워드를 입력 받고 해당 키워드에 해당되는 문서를 찾는 기능을 만든다.
- 문서 안의 개념을 이해 할 수 있도록 하는 도와주는 다른 파일들을 찾는 기능을 만든다.
- 키워드에 맞는 문서의 내용을 요약하는 기능을 만든다.
- 키워드의 맞는 문서의 개념 이해도를 체크할 수 있는 퀴즈 기능을 만든다.
- 불러온 파일들을 `LLM`에게 전달하여 관련 문서들에 대해 검색할 수 있는 채팅 기능을 만든다.
- [[Streamlit]]을 사용해 UI를 구현하고 이를 Stream Cloud로 배포한다.
## Development journal
### Format
Goal : 초기 목표
TODO : 해야 할 내용
Issue/Solution : 발생했던 이슈와 해당 이슈의 해결 방안
Reference : 참고 자료
Git commit contents : 개발 내용
What should I do more : 다음 목표
### Dates
- [[2025-01-06]]
- [[2025-01-07]]
- [[2025-01-10]]
- [[2025-01-11]]
- [[2025-01-12]]
- [[2025-01-14]]
- [[2025-01-15]]
- [[2025-01-16]]
- [[2025-01-17]]
- [[2025-01-18]]
- [[2025-01-19]]
## Project Architecture
![[DocumentSecretary Architecture Dark.svg]]
## Service Screenshot
### 메인 화면
![[home screen.png]]
### 키워드에 관련된 파일 검색
![[file selecting screen.png]]
### 불러온 파일 목록
![[file list screen.png]]
### 관련 파일 선택
![[file select option screen.png]]
### 문서 요약
![[document summary screen.png]]
### 채팅
![[question message srceen.gif]]
### Quiz
![[quiz make screen.png]]
![[quiz list screen.png]]
## Next Goal
- 패드나 핸드폰으로 정리한 파일도 불러올 수 있도록 구현하기
- `Notion` 같은 사이트를 기반으로 한 정보 받기
- 관련 문서, 관련 이미지 받기를 `Obsidian` 이외의 파일에도 사용 가능 하도록 구현하기
- `AWS`로 프로젝트 배포하기