Includes FastAPI+Jinja2+HTMX+SQLite implementation with seed categories, plus deployment templates. Co-authored-by: Cursor <cursoragent@cursor.com>
125 lines
3.1 KiB
Plaintext
125 lines
3.1 KiB
Plaintext
당신은 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️⃣ 템플릿 파일들
|
||
을 순서대로 작성하세요. |