Skip to content

Latest commit

ย 

History

History
247 lines (210 loc) ยท 10.5 KB

File metadata and controls

247 lines (210 loc) ยท 10.5 KB

๐ŸŽ“ ScholarAI



ScholarAI๋Š” ์žฅํ•™๊ธˆ ์ •๋ณด ํƒ์ƒ‰์˜ ๋ณต์žกํ•จ์„ ๋œ๊ณ ,
๊ฐœ์ธ ๋งž์ถคํ˜• ์ถ”์ฒœ์„ ํ†ตํ•ด ์‚ฌ์šฉ์ž๊ฐ€ ๊ฐ€์žฅ ์•Œ๋งž์€ ์žฅํ•™๊ธˆ์„
์‰ฝ๊ณ  ๋น ๋ฅด๊ฒŒ ์ฐพ์„ ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š” ๋ชจ๋ฐ”์ผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ž…๋‹ˆ๋‹ค.



๐Ÿง‘โ€๐Ÿ’ป Team Members

์ด๋ฆ„ ์—ญํ•  ๋‹ด๋‹น ์—…๋ฌด
๐Ÿงญ ํ™ฉ์œคํ•˜ ํŒ€์žฅ / Frontend Flutter ๊ธฐ๋ฐ˜ UI/UX ๊ฐœ๋ฐœ ๋ฐ ์•ฑ ๊ตฌ์กฐ ์„ค๊ณ„
๐Ÿ—„๏ธ ๊ณ ํฌ์—ฐ Backend Spring Boot ๊ธฐ๋ฐ˜ API ์„ค๊ณ„ ๋ฐ DB ๊ด€๋ฆฌ
๐Ÿค– ๊ณฝ๋‚˜ํ˜„ AI ์žฅํ•™๊ธˆ ์ถ”์ฒœ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฐ ์ฑ—๋ด‡ ๊ฐœ๋ฐœ


๐Ÿ› ๏ธ Tech Stack

Frontend

Flutter

Backend

Spring Boot Spring Security Spring Data JPA JWT

AI & Chatbot

OpenAI LangChain ChromaDB FastAPI

Database & API Protocol

MySQL Redis REST API

External Services & Authentication

Google KakaoTalk Gmail Firebase

๐Ÿ“Œ์‹œ์Šคํ…œ ๊ตฌ์กฐ๋„




๐Ÿ’ก Main Features

๐Ÿ” ์žฅํ•™๊ธˆ ํ†ตํ•ฉ ๊ฒ€์ƒ‰ ๋ฐ ์ƒ์„ธ์ •๋ณด ์กฐํšŒ

์žฅํ•™๊ธˆ ํ†ตํ•ฉ ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ์„ ํ†ตํ•ด ์žฅํ•™๊ธˆ ์ƒ์„ธ ์ •๋ณด๋ฅผ ์กฐํšŒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.



โค ๊ด€์‹ฌ ์žฅํ•™๊ธˆ ์ฐœ ๊ธฐ๋Šฅ ๋ฐ ์ผ์ • ๊ด€๋ฆฌ

๊ด€์‹ฌ ์žฅํ•™๊ธˆ์„ ์ฐœํ•˜๊ณ , ์ผ์ • ๊ด€๋ฆฌ ๊ธฐ๋Šฅ์„ ํ†ตํ•ด ๋ชจ์ง‘ ๋งˆ๊ฐ์ผ ํ•˜๋ฃจ ์ „์— ์•Œ๋ฆผ์„ ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.



๐Ÿค– ๋งž์ถคํ˜• ์žฅํ•™๊ธˆ ์ถ”์ฒœ

์‚ฌ์šฉ์ž ํ”„๋กœํ•„ ๊ธฐ๋ฐ˜ ์‹ ์ฒญํ•  ์ˆ˜ ์žˆ๋Š” ์žฅํ•™๊ธˆ์„ ์ถ”์ฒœ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.



๐Ÿ’ฌ ์ฑ—๋ด‡ FAQ

์ž์ฃผ ๋ฌป๋Š” ์งˆ๋ฌธ์— ๋Œ€ํ•ด ๋น ๋ฅธ ์‘๋‹ต์„ ์ œ๊ณต๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.



๐Ÿ“ฑ ์ปค๋ฎค๋‹ˆํ‹ฐ

์‚ฌ์šฉ์ž๋“ค๋ผ๋ฆฌ ์ •๋ณด๋ฅผ ๊ณต์œ ํ•˜๋ฉด์„œ ์†Œํ†ตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.



๐Ÿ“ Project Structure

ScholarAI/
โ”œโ”€โ”€ frontend/                         # Flutter ๋ชจ๋ฐ”์ผ ์•ฑ (ํฌ๋กœ์Šค ํ”Œ๋žซํผ)
โ”‚   โ”œโ”€โ”€ lib/
โ”‚   โ”‚   โ”œโ”€โ”€ screens/                  # ๋กœ๊ทธ์ธ, ํ™ˆ, ํ”„๋กœํ•„ ๋“ฑ ๊ฐ ํŽ˜์ด์ง€ UI
โ”‚   โ”‚   โ”œโ”€โ”€ widgets/                  # ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ UI ์ปดํฌ๋„ŒํŠธ
โ”‚   โ”‚   โ”œโ”€โ”€ providers/                # ์ƒํƒœ ๊ด€๋ฆฌ (Auth, Profile ๋“ฑ)
โ”‚   โ”‚   โ”œโ”€โ”€ services/                 # ์•Œ๋ฆผ, ๊ฒŒ์‹œํŒ, API ์—ฐ๋™
โ”‚   โ”‚   โ”œโ”€โ”€ constants/                # ์ƒ‰์ƒ, ๋ฌธ์ž์—ด, ์ด๋ฏธ์ง€ ๋“ฑ ์ „์—ญ ์ƒ์ˆ˜
โ”‚   โ”‚   โ””โ”€โ”€ main.dart                 # ์•ฑ ์ง„์ž…์ 
โ”‚   โ”œโ”€โ”€ ios/, android/, macos/...     # ํ”Œ๋žซํผ๋ณ„ ๋นŒ๋“œ ์„ค์ •
โ”‚   โ””โ”€โ”€ web/                          # PWA์šฉ ๋ฆฌ์†Œ์Šค (icons, manifest ๋“ฑ)
โ”‚
โ”œโ”€โ”€ backend/                          # Spring Boot ๊ธฐ๋ฐ˜ REST API ์„œ๋ฒ„
โ”‚   โ”œโ”€ Dockerfile                     # ๋„์ปค ์ด๋ฏธ์ง€ ๋นŒ๋“œ ์„ค์ •
โ”‚   โ”œโ”€ docker-compose.yml             # ์ปจํ…Œ์ด๋„ˆ ๊ตฌ์„ฑ ํŒŒ์ผ
โ”‚   โ”œโ”€ build.gradle                   # Gradle ๋นŒ๋“œ ์„ค์ •
โ”‚   โ”œโ”€ settings.gradle
โ”‚   โ”œโ”€โ”€ src/main/java/dankook.capstone    
โ”‚   โ”‚   โ”œโ”€ auth                       # ์ธ์ฆ ๋ฐ JWT
โ”‚   โ”‚   โ”œโ”€ config                     # ์Šคํ”„๋ง ์„ค์ • (Security ๋“ฑ)
โ”‚   โ”‚   โ”œโ”€ controller                 # API ์ปจํŠธ๋กค๋Ÿฌ
โ”‚   โ”‚   โ”œโ”€ domain                     # JPA ์—”ํ‹ฐํ‹ฐ
โ”‚   โ”‚   โ”œโ”€ dto                        # ์š”์ฒญ/์‘๋‹ต DTO
โ”‚   โ”‚   โ”‚  โ”œโ”€ request
โ”‚   โ”‚   โ”‚  โ””โ”€ response
โ”‚   โ”‚   โ”œโ”€ repository                 # ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ ‘๊ทผ
โ”‚   โ”‚   โ””โ”€ service                    # ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง
โ”‚   โ”œโ”€โ”€ src/main/resources/           # ์„ค์ • ํŒŒ์ผ, application.yml ๋“ฑ
โ”‚
โ”œโ”€โ”€ AI/                               # FastAPI ๊ธฐ๋ฐ˜ ์ถ”์ฒœ ์‹œ์Šคํ…œ ๋ฐ ์ฑ—๋ด‡ ์„œ๋ฒ„
โ”‚   โ”œโ”€โ”€ .gitignore                    # Git์— ํฌํ•จํ•˜์ง€ ์•Š์„ ํŒŒ์ผ/ํด๋” ๋ชฉ๋ก
โ”‚   โ”œโ”€โ”€ requirements.txt              # Python ํŒจํ‚ค์ง€ ์˜์กด์„ฑ ๋ชฉ๋ก
โ”‚   โ”œโ”€โ”€ api/                          # FastAPI ์„œ๋ฒ„ ์—”ํŠธ๋ฆฌํฌ์ธํŠธ
โ”‚   โ”‚   โ”œโ”€โ”€ chatbot_server.py         # ์ฑ—๋ด‡ API ์„œ๋ฒ„
โ”‚   โ”‚   โ””โ”€โ”€ recommend_server.py       # ์žฅํ•™๊ธˆ ์ถ”์ฒœ API ์„œ๋ฒ„
โ”‚   โ”œโ”€โ”€ config/                       # ์„ค์ • ๊ด€๋ จ ๋ชจ๋“ˆ
โ”‚   โ”‚   โ””โ”€โ”€ settings.py               # ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ๋ฐ ์„ค์ • ํŒŒ์ผ
โ”‚   โ”œโ”€โ”€ faq_chatbot/                  # FAQ ์ฑ—๋ด‡ ๋กœ์ง
โ”‚   โ”‚   โ””โ”€โ”€ faq_loader.py             # FAQ ๋ฐ์ดํ„ฐ ๋กœ๋” ๋ฐ ์ „์ฒ˜๋ฆฌ
โ”‚   โ”œโ”€โ”€ langchain_app/                # LangChain ๊ธฐ๋ฐ˜ ์ถ”์ฒœ ์‹œ์Šคํ…œ
โ”‚   โ”‚   โ”œโ”€โ”€ chain.py                  # LangChain ์ฒด์ธ ๊ตฌ์„ฑ
โ”‚   โ”‚   โ”œโ”€โ”€ embedder.py               # ๋ฌธ์žฅ ์ž„๋ฒ ๋”ฉ ๋ชจ๋“ˆ
โ”‚   โ”‚   โ”œโ”€โ”€ loader.py                 # ๋ฌธ์„œ ๋กœ๋”ฉ ๋ฐ ๊ฐ€๊ณต
โ”‚   โ”‚   โ”œโ”€โ”€ prompt_template.py        # GPT ํ”„๋กฌํ”„ํŠธ ์ •์˜
โ”‚   โ”‚   โ””โ”€โ”€ retriever.py              # ๋ฒกํ„ฐ ๊ฒ€์ƒ‰ ๋ฐ ๊ฒ€์ƒ‰๊ธฐ๋Šฅ
โ”‚   โ”œโ”€โ”€ models/                       # Pydantic ๋ชจ๋ธ ์ •์˜
โ”‚   โ”‚   โ””โ”€โ”€ user_input.py             # ์‚ฌ์šฉ์ž ์ž…๋ ฅ ๋ชจ๋ธ
โ”‚   โ””โ”€โ”€ utils/                        # ์ „์ฒ˜๋ฆฌ ๋ฐ ์œ ํ‹ธ์„ฑ ์Šคํฌ๋ฆฝํŠธ
โ”‚       โ”œโ”€โ”€ convert_xlsx_to_json.py   # ์—‘์…€ โ†’ JSON ๋ณ€ํ™˜๊ธฐ
โ”‚       โ”œโ”€โ”€ faq_preprocessing.py      # FAQ ์ „์ฒ˜๋ฆฌ
โ”‚       โ”œโ”€โ”€ recommend_preprocessing.py# ์ถ”์ฒœ ๋ฐ์ดํ„ฐ ์ „์ฒ˜๋ฆฌ
โ”‚       โ””โ”€โ”€ scholarship_fetcher.py    # ์žฅํ•™๊ธˆ ํฌ๋กค๋Ÿฌ ๋˜๋Š” ์ˆ˜์ง‘๊ธฐ
โ”œโ”€โ”€ .gitignore                        Git ์ œ์™ธ ํŒŒ์ผ ์„ค์ •
โ””โ”€โ”€ README.md                         ํ”„๋กœ์ ํŠธ ๊ฐœ์š” ๋ฐ ์‹คํ–‰ ๊ฐ€์ด๋“œ



๐Ÿš€ How to Run

Requirements

For building and running the application you need:

Installation

git clone https://github.com/onlyunha/ScholarAI.git
cd ScholarAI

Frontend (Flutter)

cd frontend
flutter pub get
flutter run

๐Ÿ’ก Flutter SDK ์„ค์น˜ ํ•„์š”: Flutter ์„ค์น˜ ๊ฐ€์ด๋“œ
๐Ÿ’ก Android Emulator ๋˜๋Š” iOS Simulator ํ•„์š”

Backend (Spring Boot)

# CLI๋กœ ์‹คํ–‰
cd backend
./gradlew build     # ์ฒ˜์Œ ์‹คํ–‰ ์‹œ ์˜์กด์„ฑ ์„ค์น˜
./gradlew bootRun   # ์„œ๋ฒ„ ์‹คํ–‰

# IntelliJ๋กœ ์‹คํ–‰
1. 'backend/' ํด๋” ์—ด๊ธฐ
2. `CapstoneApplication.java`์—์„œ ์‹คํ–‰

๐Ÿ’ก ๊ธฐ๋ณธ ํฌํŠธ: 8080
๐Ÿ’ก ์„ค์ •ํŒŒ์ผ ์œ„์น˜: backend/src/main/resources/application.yml
๐Ÿ’ก JDK 17 ์ด์ƒ ๊ถŒ์žฅ
๐Ÿ’ก Gradle 8.12.1
๐Ÿ’ก IntelliJ ๋˜๋Š” CLI

AI

cd AI
pip install -r requirements.txt
uvicorn api.recommend_server:app --reload 
uvicorn api.chatbot_server:app --reload --port 8001

๐Ÿ’ก Pythhon 3.8 ์ด์ƒ ๊ถŒ์žฅ



๐Ÿ”— Related Links

Github https://github.com/onlyunha/ScholarAI
๐Ÿ“ Notion: https://enchanted-peripheral-3f3.notion.site/ScholarAI-Project-Plan-1b6f77a0e08e80209e6aeb0ea395fd47
๐ŸŽฅ ์‹œ์—ฐ ์˜์ƒ: https://youtu.be/b5SWrRfFYVU?feature=shared