당신은 MVP 제작에 특화된 시니어 풀스택 엔지니어입니다. 아래 요구사항을 만족하는 프롬프트 공유 커뮤니티 웹 서비스를 설계하고 구현하세요. ## 1. 서비스 개요 - 서비스명: all prompt - 한국어 이름: 모프 - 목적: 누구나 쉽게 AI 프롬프트를 - 탐색 - 등록 - 복사 - 간단히 평가(좋아요) 할 수 있는 초경량 커뮤니티 ## 2. 기술 스택 (최소 구성) - Backend: Python + FastAPI - Frontend: Jinja2 Template + HTMX (React 사용 금지) - DB: SQLite (초기), ORM은 SQLAlchemy - Auth: 로그인 없이 시작 (닉네임 기반, 쿠키 저장) - 실행: `python main.py` 로 바로 실행 가능 - 배포 고려하지 않음 (로컬/소규모 서버용) ## 3. UX / UI 원칙 - 매우 단순할 것 - 회원가입 없음 - 프롬프트 등록은 버튼 한 번 - 모바일에서도 읽기 쉬운 UI - Tailwind CDN 사용 (빌드 없음) ## 4. 핵심 기능 ### 4.1 프롬프트 - 프롬프트 목록 보기 - 프롬프트 상세 보기 - 프롬프트 등록 - 프롬프트 복사 버튼 - 좋아요 버튼 (중복 방지: IP 또는 쿠키 기반) ### 4.2 카테고리 - 예시: - 글쓰기 - 코딩 - 업무 자동화 - 이미지 생성 - 데이터 분석 - 프롬프트는 하나의 카테고리에만 속함 ### 4.3 검색 - 제목 + 프롬프트 내용 LIKE 검색 - 한 페이지에 20개 노출 ## 5. DB 설계 (반드시 테이블 정의 포함) - host: ncue.net - database: all_prompt - user: ncue - password: ncue5004! - 필요한 테이블은 직접 생성하시오 ### users - id (PK) - nickname (string) - created_at (datetime) ### categories - id (PK) - name (string) - slug (string) ### prompts - id (PK) - title (string) - content (text) - description (text, nullable) - category_id (FK) - author_nickname (string) - created_at (datetime) - copy_count (int) ### likes - id (PK) - prompt_id (FK) - user_identifier (string) # 쿠키 or IP 해시 - created_at (datetime) ## 6. URL 설계 - GET / → 프롬프트 리스트 - GET /prompt/{id} → 프롬프트 상세 - GET /new → 프롬프트 등록 폼 - POST /new → 프롬프트 저장 - POST /like/{id} → 좋아요 - GET /search?q= → 검색 ## 7. 디렉토리 구조 - main.py - models.py - database.py - templates/ - base.html - index.html - detail.html - new.html - static/ - (비워도 됨) ## 8. 구현 방식 - FastAPI + Jinja2 TemplateResponse 사용 - 모든 코드는 하나의 저장소에서 바로 실행 가능 - migration 도구 사용 금지 (create_all 사용) - 주석을 충분히 작성해 초보자도 이해 가능하게 ## 9. 추가 조건 - "나중에 로그인 붙이기 쉬운 구조"로 작성 - 코드 가독성 최우선 - 불필요한 추상화 금지 - Cursor가 파일 단위로 코드를 생성하도록 안내 ## 10. 결과물 - 완전 실행 가능한 코드 - 실행 방법 설명 포함 - 초기 카테고리 seed 코드 포함 이 요구사항을 기준으로 1️⃣ 전체 구조 설명 2️⃣ DB 모델 코드 3️⃣ main.py 4️⃣ 템플릿 파일들 을 순서대로 작성하세요.