High-Performance PCR Primer Design & Visualization Platform
PrimerFlow는 생명과학 연구원들이 PCR 프라이머를 설계할 때 겪는 비효율을 해결하기 위한 웹 솔루션입니다.
PrimerFlow-BE/
├─ .github/ # GitHub 워크플로우 설정
├─ .husky/
├─ app/ # FastAPI 애플리케이션 코드
│ ├─ main.py
│ ├─ api/
│ │ └─ v1/
│ │ └─ endpoints/
│ │ ├─ design.py
│ │ └─ health.py
│ ├─ algorithms/
│ └─ schemas/
├─ database/ # DB 파일 및 원천 데이터
├─ docs/ # 명세/가이드 문서
│ └─ prompts/
│ └─ strategy/
├─ scripts/ # DB 구축/점검 스크립트
├─ tests/ # pytest 테스트 코드
├─ main.py
├─ requirements.txt
├─ README.md
└─ .gitignore
- Windows
python -m venv .venv .\.venv\Scripts\Activate.ps1 # PowerShell # 또는 .\.venv\Scripts\activate.bat # cmd
- macOS / Linux
# (Ubuntu/WSL) venv 모듈이 없으면 먼저 설치 sudo apt update sudo apt install -y python3-venv python3 -m venv .venv source .venv/bin/activate
pip install -r requirements.txtuvicorn app.main:app --reloadpython -m pytest -q- 기본 엔드포인트: http://localhost:8000/
- OpenAPI 문서: http://localhost:8000/docs
- ReDoc 문서: http://localhost:8000/redoc
- 서비스 URL: https://primerflow-be.onrender.com
- Health Check: https://primerflow-be.onrender.com/health
- OpenAPI 문서: https://primerflow-be.onrender.com/docs
- 이 레포는 commitlint/husky를 사용합니다. 클론 후 한 번만 실행:
npm installgit config core.hooksPath .husky(로컬 기기당 1회)
- Framework : FastAPI
- Language : Python
- Validation : Pydantic
- API docs: Swagger (OpenAPI)
- Server: Uvicorn
- Database: SQLite
- Bioinformatics: pysam
- Linter/Formatter: Ruff
- Type Checking: Pyright
- Test: pytest
- Commit Rule: commitlint
- Git Hooks: Husky
- OpenAI Codex, Google Gemini, GitHub Copilot
- 작업 내역 : 1주차 Commit
- 백엔드 기본 구조 세팅
- 협업 가이드 추가
- 작업 내역 : 2주차 Commit
- 명세서 작성 및 프롬프트 추가
- 협업 편의성을 위해 commitlint 추가
- AI 활용
- main 브랜치 PR 차단 워크플로우 추가 :
.github/workflows/check-main-pr.yml생성 - Spec문서 작성 : GPT와 Gemini에 동일 프롬프트를 입력하고 결과를 통합해 정리
- main 브랜치 PR 차단 워크플로우 추가 :
- 작업 내역 : 3주차 Commit
schemas/폴더 내 Pydantic 모델 정의/design엔드포인트 정의 (구현 미완료)- 알고리즘 명세 및 아키텍처 다이어그램 문서 추가
- AI 활용
- Copilot 리뷰 한국어 지침 추가 :
.github/copilot-instructions.md생성
- Copilot 리뷰 한국어 지침 추가 :
- 작업 내역 : 4주차 Commit
PrimerDesigner.py구현: 핵심 PCR 프라이머 설계 로직 첫 번째 버전 추가- 블랙박스 테스트 케이스 설계(EP, BVA, CE) 및 파일 추가
- 테스트 케이스 시나리오 초안 완성 (지속적 보완 예정)
- AI 활용
- 블랙박스 테스트 케이스 설계 :
docs/prompts/4주차/test_design_prompt.md참고
- 블랙박스 테스트 케이스 설계 :
- 작업 내역 : 8주차 Commit
- 기존 루트(
api/, schemas/, algorithms/)를app/하위로 이동하고 import 경로를app.*로 정리 - GitHub Actions CI 파이프라인 및 Ruff/Pyright 설정(
pyproject.toml) 추가 /health엔드포인트에 대한 기본 테스트 추가 및 실행 가이드 업데이트
- 기존 루트(
- AI 활용
- CI 파이프라인 구축 도움 :
docs/prompts/8주차/ci_pipeline_setup.md참고
- CI 파이프라인 구축 도움 :
- 작업 내역 : 9주차 Commit
- 대용량 원천 데이터(GFF3/VCF/rmsk/FASTA)로부터 annotations.db를 생성하는
scripts/build_db.py추가 - DB 무결성/건수/샘플 미리보기를 위한
scripts/check_db_detail.py및 기존 알고리즘 연동 확인용scripts/test_db_integration.py추가 - DB 스키마/데이터 소스/설치 절차 문서(
docs/spec_database.md) 추가
- 대용량 원천 데이터(GFF3/VCF/rmsk/FASTA)로부터 annotations.db를 생성하는
- AI 활용
- DB 구축 도움 :
docs/prompts/9주차/DB_setup.md참고
- DB 구축 도움 :
- 작업 내역 : 10주차 Commit
health/db엔드포인트 신설: SQLite DB(database/annotations.db) 존재 여부, 읽기 권한 및 테이블 샘플 데이터 확인 로직 추가.- API 탐색 개선: 루트(/) 경로 접속 시 문서 및 헬스 체크 엔드포인트 링크를 반환하도록 수정.