☕ 커피숍 시그니처 메뉴 소개 페이지 - 포토 갤러리 & 가격표 - 바이브코딩 레시피
입문 PHP Laravel AI: Claude

☕ 커피숍 시그니처 메뉴 소개 페이지 - 포토 갤러리 & 가격표

리포지토리명 cafe-signature-menu-showcase
조회수 226 0건 제출

문제 설명

프로젝트 개요

소규모 카페 운영자를 위한 시그니처 메뉴 소개 웹페이지를 만듭니다. 커피숍의 대표 음료와 디저트를 아름다운 사진과 함께 소개하고, 가격과 설명을 보기 좋게 배치하는 페이지입니다. 고객이 방문 전에 메뉴를 미리 확인하고 매장을 찾아올 수 있도록 돕습니다.

필수 기능

  • 메뉴 카테고리 분류: 커피, 논커피, 디저트, 시즌 한정 메뉴 등으로 구분
  • 메뉴 상세 정보: 각 메뉴마다 사진, 이름, 가격, 설명, 알레르기 정보 표시
  • 그리드 레이아웃: 카드 형식으로 메뉴를 보기 좋게 배치
  • 호버 효과: 메뉴 카드에 마우스를 올리면 확대되거나 상세 설명이 나타나는 인터랙션
  • 반응형 디자인: 모바일에서도 예쁘게 보이는 레이아웃
  • 관리자 페이지: 메뉴 추가/수정/삭제 기능 (간단한 CRUD)

선택 추가 기능 (보너스)

  • 메뉴 검색 기능 (이름 또는 재료로 검색)
  • 인기 메뉴 배지 표시 (예: "BEST" 아이콘)
  • 계절 메뉴 강조 표시 (예: 봄 시즌 메뉴는 벚꽃 아이콘)
  • 고객 리뷰/별점 시스템
  • 메뉴 이미지 업로드 기능
  • 영업 시간 및 매장 위치 정보 푸터 추가

기술 스택

  • Laravel 13.x (Blade 템플릿)
  • SQLite (간단한 데이터베이스)
  • Tailwind CSS (스타일링)
  • Alpine.js (간단한 인터랙션)

학습 목표

  • Laravel 기본 라우팅과 컨트롤러 이해
  • Blade 템플릿 문법 익히기
  • Eloquent ORM으로 데이터베이스 다루기
  • Tailwind CSS로 반응형 UI 구성
  • 이미지 파일 업로드 및 저장 방법 학습

제약 조건

  • • Laravel 13.x 사용 (최신 버전)
  • • Blade 템플릿 엔진 사용 (React/Vue 금지)
  • • SQLite 데이터베이스 사용
  • • Tailwind CSS로 스타일링
  • • 메뉴 이미지는 public/storage에 저장
  • • 최소 4개 이상의 메뉴 샘플 데이터 포함
  • • 카테고리별 필터링 기능 구현
  • • 반응형 디자인 필수 (모바일/태블릿/데스크톱)

프롬프트 레시피

아래 프롬프트를 순서대로 AI에게 보내면 됩니다. 복사 버튼을 눌러 바로 사용하세요.

1
Step 1
mkdir cafe-signature-menu-showcase && cd cafe-signature-menu-showcase

이 폴더에서 Laravel 13.x 프로젝트를 생성합니다.

# 프로젝트 초기 설정

1. Laravel 13.x 프로젝트를 생성하세요.
2. SQLite 데이터베이스를 사용하도록 .env 파일을 설정하세요.
   - DB_CONNECTION=sqlite
   - database/database.sqlite 파일 생성
3. Tailwind CSS를 설치하고 설정하세요.
   - npm install -D tailwindcss postcss autoprefixer
   - npx tailwindcss init -p
   - tailwind.config.js에서 content 경로 설정
   - resources/css/app.css에 Tailwind 디렉티브 추가
4. Alpine.js를 CDN으로 추가하세요 (resources/views/layouts/app.blade.php의 head에 추가).

프로젝트 구조가 정상적으로 생성되고, `php artisan serve` 명령으로 서버가 실행되는지 확인하세요.

기대 결과: Laravel 13.x 프로젝트가 생성되고, SQLite 데이터베이스 파일이 생성되며, Tailwind CSS와 Alpine.js가 설정됩니다. 기본 라우트(/)에 접속하면 Laravel 웰컴 페이지가 표시됩니다.

2
Step 2
# 데이터베이스 마이그레이션 & 모델 생성

메뉴 정보를 저장할 데이터베이스 테이블을 만들어주세요.

1. Menu 모델과 마이그레이션을 생성하세요.
   - `php artisan make:model Menu -m`
2. 마이그레이션 파일에 다음 컬럼을 추가하세요:
   - name (string): 메뉴 이름
   - category (string): 카테고리 (coffee, non-coffee, dessert, seasonal)
   - price (integer): 가격 (원)
   - description (text): 메뉴 설명
   - image_path (string, nullable): 이미지 경로
   - is_popular (boolean, default false): 인기 메뉴 여부
   - allergens (string, nullable): 알레르기 정보
   - timestamps
3. 마이그레이션을 실행하세요 (`php artisan migrate`).
4. Menu 모델에 $fillable 속성을 추가하세요 (mass assignment 허용).

데이터베이스 테이블이 정상적으로 생성되었는지 확인하세요.

기대 결과: menus 테이블이 생성되고, Menu 모델이 준비됩니다. php artisan migrate 명령이 성공적으로 실행되며, SQLite 데이터베이스에 menus 테이블이 생성됩니다.

3
Step 3
# 시더(Seeder)로 샘플 데이터 생성

실제 메뉴 데이터를 데이터베이스에 추가해주세요.

1. MenuSeeder를 생성하세요 (`php artisan make:seeder MenuSeeder`).
2. MenuSeeder에 최소 8개 이상의 샘플 메뉴 데이터를 추가하세요:
   - 커피 메뉴 3개 (예: 아메리카노, 카페라떼, 바닐라라떼)
   - 논커피 메뉴 2개 (예: 딸기라떼, 녹차라떼)
   - 디저트 2개 (예: 티라미수, 마카롱)
   - 시즌 메뉴 1개 (예: 벚꽃라떼)
3. 일부 메뉴는 is_popular를 true로 설정하세요.
4. DatabaseSeeder에서 MenuSeeder를 호출하도록 설정하세요.
5. 시더를 실행하세요 (`php artisan db:seed`).

샘플 데이터가 정상적으로 데이터베이스에 저장되었는지 확인하세요.

기대 결과: 8개 이상의 샘플 메뉴 데이터가 menus 테이블에 저장됩니다. php artisan db:seed 명령이 성공적으로 실행되며, 다양한 카테고리의 메뉴가 생성됩니다.

4
Step 4
# 메뉴 목록 페이지 구현 (프론트엔드)

고객이 볼 수 있는 메뉴 소개 페이지를 만들어주세요.

1. MenuController를 생성하세요 (`php artisan make:controller MenuController`).
2. MenuController에 index 메서드를 만들고, 모든 메뉴를 가져와 뷰에 전달하세요.
3. routes/web.php에 라우트를 추가하세요:
   - GET / → MenuController@index
4. resources/views/layouts/app.blade.php 레이아웃 파일을 생성하세요:
   - HTML 기본 구조
   - Tailwind CSS 및 Alpine.js CDN 링크
   - 헤더(카페 이름, 로고)
   - @yield('content') 섹션
   - 푸터(영업시간, 주소, 연락처)
5. resources/views/menus/index.blade.php를 생성하세요:
   - 카테고리별 탭 (coffee, non-coffee, dessert, seasonal)
   - Alpine.js로 탭 전환 기능 구현
   - 각 카테고리별로 메뉴를 그리드 레이아웃(grid-cols-1 md:grid-cols-2 lg:grid-cols-3)으로 표시
   - 메뉴 카드 디자인:
     * 이미지 (없으면 플레이스홀더)
     * 메뉴 이름
     * 가격 (원)
     * 설명
     * 인기 메뉴 배지 (is_popular가 true일 때)
     * 알레르기 정보 (있을 경우)
   - 호버 효과: 카드에 마우스를 올리면 살짝 확대되는 애니메이션

Tailwind CSS로 아름답고 현대적인 디자인을 적용하세요. 반응형 디자인을 꼭 고려하세요.

기대 결과: 메뉴 목록 페이지가 완성됩니다. 카테고리별 탭이 작동하고, 메뉴가 그리드 형태로 예쁘게 표시됩니다. 호버 효과가 부드럽게 작동하며, 모바일/태블릿/데스크톱에서 모두 잘 보입니다.

5
Step 5
# 관리자 페이지 - 메뉴 관리 (CRUD)

카페 운영자가 메뉴를 추가/수정/삭제할 수 있는 관리자 페이지를 만들어주세요.

1. routes/web.php에 관리자 라우트를 추가하세요:
   - GET /admin/menus → MenuController@adminIndex (메뉴 목록)
   - GET /admin/menus/create → MenuController@create (메뉴 추가 폼)
   - POST /admin/menus → MenuController@store (메뉴 저장)
   - GET /admin/menus/{id}/edit → MenuController@edit (메뉴 수정 폼)
   - PUT /admin/menus/{id} → MenuController@update (메뉴 업데이트)
   - DELETE /admin/menus/{id} → MenuController@destroy (메뉴 삭제)
2. MenuController에 위 메서드들을 구현하세요:
   - adminIndex: 모든 메뉴를 테이블 형태로 표시
   - create: 메뉴 추가 폼 표시
   - store: 폼 데이터를 검증하고 저장 (이미지 업로드 포함)
   - edit: 기존 메뉴 정보를 폼에 채워서 표시
   - update: 메뉴 정보 업데이트
   - destroy: 메뉴 삭제
3. resources/views/admin/menus/index.blade.php 생성:
   - 메뉴 목록을 테이블로 표시
   - 각 행에 수정/삭제 버튼 추가
   - 상단에 "새 메뉴 추가" 버튼
4. resources/views/admin/menus/form.blade.php 생성 (추가/수정 공통 폼):
   - 메뉴 이름 입력
   - 카테고리 선택 (셀렉트 박스)
   - 가격 입력
   - 설명 입력 (textarea)
   - 이미지 업로드
   - 인기 메뉴 체크박스
   - 알레르기 정보 입력
   - 저장 버튼
5. 이미지 업로드 처리:
   - public/storage 심볼릭 링크 생성 (`php artisan storage:link`)
   - 업로드된 이미지를 storage/app/public/menus에 저장
   - image_path에 저장 경로 기록

관리자 페이지가 정상적으로 작동하는지 확인하세요. 메뉴를 추가/수정/삭제할 수 있어야 합니다.

기대 결과: 관리자 페이지가 완성됩니다. 메뉴를 추가/수정/삭제할 수 있으며, 이미지 업로드가 정상적으로 작동합니다. CRUD 기능이 모두 정상적으로 동작하며, 프론트엔드 메뉴 목록 페이지에 변경사항이 즉시 반영됩니다.

제출된 작품 (0)

로그인 후 제출

아직 제출된 작품이 없습니다. 첫 번째 도전자가 되어보세요!

댓글 (0)

로그인 후 댓글을 남길 수 있습니다.
아직 댓글이 없습니다. 첫 번째 댓글을 남겨보세요!