Laravel 간단 명함 관리 시스템
business-card-manager-laravel
문제 설명
프로젝트 개요
네트워킹 행사나 미팅에서 받은 명함을 디지털로 관리하는 간단한 웹 애플리케이션입니다. Laravel 13.x와 Blade 템플릿을 사용하여 명함 정보를 등록하고, 목록을 보고, 수정/삭제할 수 있는 CRUD 시스템을 구축합니다.
필수 기능
- 명함 등록: 이름, 회사명, 직책, 이메일, 전화번호, 메모를 입력하여 새 명함 추가
- 명함 목록: 등록된 모든 명함을 카드 형태로 보기 좋게 표시
- 명함 상세: 개별 명함의 전체 정보 확인
- 명함 수정: 기존 명함 정보 업데이트
- 명함 삭제: 불필요한 명함 제거
- 검색 기능: 이름이나 회사명으로 명함 검색
- SQLite 데이터베이스: 간단한 로컬 DB로 데이터 저장
- Tailwind CSS: 깔끔하고 현대적인 UI 디자인
보너스 기능
- 회사별로 명함 그룹핑하여 보기
- 즐겨찾기 기능 (중요한 명함 표시)
- 명함 색상 태그 (카테고리 구분)
- 최근 추가된 명함 순으로 정렬
- 반응형 디자인으로 모바일에서도 편리하게 사용
제약 조건
- • Laravel 13.x 사용 (최신 버전)
- • Blade 템플릿 엔진으로 뷰 작성 (React, Vue 등 SPA 프레임워크 사용 금지)
- • Tailwind CSS로 스타일링
- • SQLite 데이터베이스 사용
- • Laravel의 기본 라우팅, 컨트롤러, 모델, 마이그레이션 활용
- • Blade 컴포넌트를 활용한 재사용 가능한 UI 구성
- • 폼 유효성 검사 포함 (Laravel Validation)
- • RESTful 라우팅 규칙 준수
프롬프트 레시피
아래 프롬프트를 순서대로 AI에게 보내면 됩니다. 복사 버튼을 눌러 바로 사용하세요.
mkdir business-card-manager-laravel && cd business-card-manager-laravel
이 폴더에서 Laravel 13.x 프로젝트를 생성합니다.
다음 작업을 수행해주세요:
1. Laravel 13.x 최신 버전으로 새 프로젝트 생성
2. SQLite 데이터베이스 설정 (.env 파일에서 DB_CONNECTION=sqlite 설정)
3. database/database.sqlite 파일 생성
4. Tailwind CSS 설치 및 설정 (Vite 빌드 도구 사용)
5. 기본 레이아웃 Blade 템플릿 생성 (resources/views/layouts/app.blade.php)
- Tailwind CSS 포함
- 네비게이션 바 (홈, 명함 목록, 새 명함 추가 링크)
- 메인 콘텐츠 영역 (@yield('content'))
- 깔끔하고 현대적인 디자인
프로젝트가 정상적으로 실행되는지 확인하고, 기본 레이아웃이 브라우저에서 제대로 보이는지 테스트해주세요.
기대 결과: Laravel 13.x 프로젝트가 생성되고, SQLite 데이터베이스가 설정되며, Tailwind CSS가 적용된 기본 레이아웃 템플릿이 완성됩니다. php artisan serve로 서버를 실행하면 네비게이션이 있는 기본 페이지가 표시됩니다.
명함 데이터를 저장할 데이터베이스 구조를 만들어주세요. 다음 작업을 수행해주세요: 1. BusinessCard 모델 생성 (app/Models/BusinessCard.php) 2. business_cards 테이블 마이그레이션 파일 생성 - id (primary key) - name (string, 필수) - 이름 - company (string, 필수) - 회사명 - position (string, nullable) - 직책 - email (string, nullable) - 이메일 - phone (string, nullable) - 전화번호 - memo (text, nullable) - 메모 - timestamps (created_at, updated_at) 3. 마이그레이션 실행하여 테이블 생성 4. BusinessCard 모델에 $fillable 속성 설정 (mass assignment 보호) 마이그레이션이 성공적으로 실행되었는지 확인해주세요.
기대 결과: BusinessCard 모델과 business_cards 테이블이 생성됩니다. 마이그레이션이 성공적으로 실행되어 SQLite 데이터베이스에 테이블 구조가 만들어집니다.
명함 관리를 위한 컨트롤러와 기본 라우팅을 설정해주세요.
다음 작업을 수행해주세요:
1. BusinessCardController 생성 (app/Http/Controllers/BusinessCardController.php)
2. RESTful 라우팅 설정 (routes/web.php)
- GET / : 홈페이지 (환영 메시지)
- GET /cards : 명함 목록 (index)
- GET /cards/create : 새 명함 등록 폼 (create)
- POST /cards : 명함 저장 (store)
- GET /cards/{id} : 명함 상세 보기 (show)
- GET /cards/{id}/edit : 명함 수정 폼 (edit)
- PUT /cards/{id} : 명함 업데이트 (update)
- DELETE /cards/{id} : 명함 삭제 (destroy)
3. 컨트롤러에 각 메서드의 기본 구조 작성 (아직 구현은 하지 않고 뷰만 리턴)
4. 홈페이지 뷰 생성 (resources/views/welcome.blade.php)
- 프로젝트 소개
- "명함 목록 보기" 버튼
라우팅이 제대로 설정되었는지 php artisan route:list로 확인해주세요.
기대 결과: BusinessCardController가 생성되고, RESTful 라우팅이 설정됩니다. 홈페이지에서 명함 관리 시스템 소개와 명함 목록으로 가는 링크가 표시됩니다.
명함 등록 및 목록 보기 기능을 구현해주세요. 다음 작업을 수행해주세요: 1. 명함 등록 폼 뷰 생성 (resources/views/cards/create.blade.php) - 이름, 회사명, 직책, 이메일, 전화번호, 메모 입력 필드 - Tailwind CSS로 깔끔한 폼 디자인 - 필수 항목 표시 (이름, 회사명) - 취소 버튼 (목록으로 돌아가기) 2. BusinessCardController의 create 메서드 구현 (폼 표시) 3. BusinessCardController의 store 메서드 구현 - 폼 유효성 검사 (name, company는 필수) - 데이터베이스에 저장 - 성공 메시지와 함께 목록 페이지로 리다이렉트 4. 명함 목록 뷰 생성 (resources/views/cards/index.blade.php) - 모든 명함을 카드 형태로 그리드 레이아웃으로 표시 - 각 카드에 이름, 회사명, 직책 표시 - 상세보기, 수정, 삭제 버튼 - "새 명함 추가" 버튼 - 명함이 없을 때 안내 메시지 5. BusinessCardController의 index 메서드 구현 (모든 명함 조회) 명함을 등록하고 목록에서 확인할 수 있는지 테스트해주세요.
기대 결과: 명함 등록 폼이 작동하고, 입력한 명함이 데이터베이스에 저장됩니다. 명함 목록 페이지에서 등록된 명함들이 카드 형태로 깔끔하게 표시됩니다.
명함 상세 보기, 수정, 삭제 기능을 완성해주세요.
다음 작업을 수행해주세요:
1. 명함 상세 보기 뷰 생성 (resources/views/cards/show.blade.php)
- 모든 명함 정보를 보기 좋게 표시
- 이메일은 클릭하면 mailto: 링크로
- 전화번호는 클릭하면 tel: 링크로
- 수정, 삭제, 목록으로 돌아가기 버튼
2. BusinessCardController의 show 메서드 구현
3. 명함 수정 폼 뷰 생성 (resources/views/cards/edit.blade.php)
- create.blade.php와 유사하지만 기존 데이터가 채워진 상태
- PUT 메서드 사용 (@method('PUT'))
4. BusinessCardController의 edit 메서드 구현 (수정 폼 표시)
5. BusinessCardController의 update 메서드 구현
- 폼 유효성 검사
- 데이터베이스 업데이트
- 성공 메시지와 함께 상세 페이지로 리다이렉트
6. BusinessCardController의 destroy 메서드 구현
- 명함 삭제
- 삭제 확인 JavaScript ("정말 삭제하시겠습니까?")
- 성공 메시지와 함께 목록 페이지로 리다이렉트
7. Flash 메시지 표시 기능 추가 (레이아웃에 session 메시지 표시)
모든 CRUD 기능이 정상적으로 작동하는지 테스트해주세요.
기대 결과: 명함의 상세 정보를 볼 수 있고, 수정 및 삭제가 정상적으로 작동합니다. 작업 완료 시 적절한 성공 메시지가 표시됩니다. 완전한 CRUD 시스템이 완성됩니다.
검색 기능과 UI 개선을 추가해주세요. 다음 작업을 수행해주세요: 1. 명함 목록 페이지에 검색 폼 추가 - 이름 또는 회사명으로 검색할 수 있는 입력 필드 - 검색 버튼 - 검색 중일 때 "검색 결과" 표시 및 "전체 보기" 버튼 2. BusinessCardController의 index 메서드에 검색 로직 추가 - query parameter로 검색어 받기 - name 또는 company 필드에서 부분 일치 검색 (LIKE) 3. Blade 컴포넌트 생성으로 코드 재사용성 향상 - resources/views/components/card-item.blade.php (명함 카드 컴포넌트) - resources/views/components/form-input.blade.php (폼 입력 필드 컴포넌트) 4. 반응형 디자인 개선 - 모바일에서도 잘 보이도록 그리드 레이아웃 조정 - 버튼 크기 및 간격 최적화 5. 빈 상태(Empty State) 개선 - 명함이 없을 때 일러스트레이션 또는 안내 메시지 - 검색 결과가 없을 때 "결과 없음" 메시지 6. 명함 개수 표시 (목록 상단에 "총 N개의 명함") 검색 기능이 정상적으로 작동하고, 전체적인 UI가 개선되었는지 확인해주세요.
기대 결과: 명함을 이름이나 회사명으로 검색할 수 있습니다. Blade 컴포넌트를 활용하여 코드가 깔끔해지고, 반응형 디자인으로 모바일에서도 사용하기 편리합니다. 완성도 높은 명함 관리 시스템이 완성됩니다.
제출된 작품 (0)
로그인 후 제출아직 제출된 작품이 없습니다. 첫 번째 도전자가 되어보세요!