Skip to content

GabrielJung0727/campuson

Repository files navigation

๐ŸŽ“ CampusON

๊ฒฝ๋ณต๋Œ€ํ•™๊ต ๋ณด๊ฑด๊ณ„์—ด(๊ฐ„ํ˜ธ·๋ฌผ๋ฆฌ์น˜๋ฃŒ·์น˜์œ„์ƒ) ํ•™์ƒ ์ „์šฉ AI ํ•™์ŠตํŠœํ„ฐ๋ง ํ”Œ๋žซํผ

์ง„๋‹จ ํ…Œ์ŠคํŠธ์™€ RAG ๊ธฐ๋ฐ˜ ์ง€์‹๋ฒ ์ด์Šค๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๊ตญ๊ฐ€๊ณ ์‹œ ๋Œ€๋น„ ๋งž์ถคํ˜• ํ•™์Šต์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ— ๋ชจ๋…ธ๋ ˆํฌ ๊ตฌ์กฐ

campuson/
├── apps/
│   ├── web/              # Next.js 14 (TypeScript, Tailwind, shadcn/ui)
│   └── api/              # FastAPI + SQLAlchemy + Alembic
├── packages/
│   └── shared/           # ๊ณต์œ  ํƒ€์ž… ๋ฐ ์œ ํ‹ธ๋ฆฌํ‹ฐ
├── docs/
│   └── diagrams/         # ER ๋‹ค์ด์–ด๊ทธ๋žจ, ์•„ํ‚คํ…์ฒ˜ ๋‹ค์ด์–ด๊ทธ๋žจ
├── scripts/              # ๊ฐœ๋ฐœ/๋ฐฐํฌ ์Šคํฌ๋ฆฝํŠธ
├── docker-compose.yml    # PostgreSQL + Redis ๋กœ์ปฌ ํ™˜๊ฒฝ
├── .env.example          # ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ํ…œํ”Œ๋ฆฟ
└── package.json          # ์›Œํฌ์ŠคํŽ˜์ด์Šค ๋ฃจํŠธ

๐Ÿš€ ๋น ๋ฅธ ์‹œ์ž‘

1. ์‚ฌ์ „ ์š”๊ตฌ์‚ฌํ•ญ

  • Node.js 20+
  • Python 3.11+
  • Docker Desktop
  • pnpm or npm 10+

2. ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์„ค์ •

cp .env.example .env
# .env ํŒŒ์ผ์„ ์—ด์–ด ํ•„์š”ํ•œ ๊ฐ’์„ ์ฑ„์›Œ์ฃผ์„ธ์š”

3. Docker๋กœ PostgreSQL + Redis ๋„์šฐ๊ธฐ

npm run docker:up

4. ๋ฐฑ์—”๋“œ (FastAPI) ์‹คํ–‰

cd apps/api
python -m venv .venv
source .venv/Scripts/activate  # Windows: .venv\Scripts\activate
pip install -r requirements.txt
alembic upgrade head            # DB ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜
uvicorn app.main:app --reload   # http://localhost:8000

5. ํ”„๋ก ํŠธ์—”๋“œ (Next.js) ์‹คํ–‰

cd apps/web
npm install
npm run dev                     # http://localhost:3000

๐Ÿ“š ๋ฌธ์„œ

๐Ÿงช ํ…Œ์ŠคํŠธ

# 1. ํ…Œ์ŠคํŠธ์šฉ PostgreSQL DB ์ƒ์„ฑ (ํ•œ ๋ฒˆ๋งŒ)
docker compose up -d
docker exec -it campuson-postgres psql -U campuson -c "CREATE DATABASE campuson_test;"
docker exec -it campuson-postgres psql -U campuson -d campuson_test \
  -c "CREATE EXTENSION IF NOT EXISTS vector; CREATE EXTENSION IF NOT EXISTS \"uuid-ossp\";"

# 2. ์˜์กด์„ฑ ์„ค์น˜
cd apps/api
pip install -r requirements.txt

# 3. ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๋งŒ ์‹คํ–‰
pytest tests/unit -v

# 4. e2e ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ๋งŒ ์‹คํ–‰
pytest tests/e2e -v

# 5. ์ „์ฒด (Day 7 ์ตœ์ข… ์ ๊ฒ€)
pytest -v

CI์—์„œ๋Š” GitHub Actions services๋กœ PostgreSQL/Redis๋ฅผ ์ž๋™์œผ๋กœ ๋„์šฐ๊ณ  pytest -q๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค (.github/workflows/ci.yml ์ฐธ๊ณ ).

๐Ÿงฐ ๊ฐœ๋ฐœ ๋ช…๋ น์–ด

๋ช…๋ น์–ด ์„ค๋ช…
npm run docker:up PostgreSQL + Redis ์ปจํ…Œ์ด๋„ˆ ์‹œ์ž‘
npm run docker:down ์ปจํ…Œ์ด๋„ˆ ์ค‘์ง€
npm run docker:logs ์ปจํ…Œ์ด๋„ˆ ๋กœ๊ทธ ํ™•์ธ
npm run lint ์ „์ฒด ESLint ์‹คํ–‰
npm run format Prettier ํฌ๋งทํŒ…
npm run api:migrate DB ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์ ์šฉ

๐Ÿ›ก ๊ถŒํ•œ ์ฒด๊ณ„

  • Student — ๋ณธ์ธ ํ•™์Šต ๋ฐ์ดํ„ฐ๋งŒ ์—ด๋žŒ
  • Professor — ๋ณธ์ธ ํ•™๊ณผ ํ•™์ƒ ๋ฐ์ดํ„ฐ ์—ด๋žŒ
  • Admin — ํ•™๊ต ๋‹จ์œ„ ์šด์˜ ๋ฐ์ดํ„ฐ ์—ด๋žŒ
  • Developer — ์‹œ์Šคํ…œ ์„ค์ • ๋ฐ ๋กœ๊ทธ ์ ‘๊ทผ

์ž์„ธํ•œ ๋‚ด์šฉ์€ 02. ์‚ฌ์šฉ์ž ์—ญํ•  ๋ฐ ๊ถŒํ•œ ์ฒด๊ณ„๋ฅผ ์ฐธ๊ณ ํ•˜์„ธ์š”.