경복대학교 보건계열(간호·물리치료·치위생) 학생 전용 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 # 워크스페이스 루트
- Node.js 20+
- Python 3.11+
- Docker Desktop
- pnpm or npm 10+
cp .env.example .env
# .env 파일을 열어 필요한 값을 채워주세요npm run docker:upcd 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:8000cd apps/web
npm install
npm run dev # http://localhost:3000- Notion 프로젝트 페이지
- ER 다이어그램
- API 문서 (Swagger) (서버 실행 후)
- API 문서 (ReDoc)
- Postman 컬렉션 (사용법)
# 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 -vCI에서는 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. 사용자 역할 및 권한 체계를 참고하세요.