Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

113 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

교회 청년부 커뮤니티 MVP

교회 청년부를 위한 안전하고 통합된 커뮤니티 플랫폼입니다.

🚀 시작하기

필수 요구사항

  • Node.js 18+
  • npm 또는 yarn
  • Supabase 계정

⚠️ 중요: Supabase 설정 필요

이 프로젝트를 실행하려면 먼저 Supabase 프로젝트를 설정해야 합니다. 자세한 설정 방법은 SUPABASE_SETUP.md를 참조하세요.

1. 프로젝트 클론

git clone <repository-url>
cd ai_project

2. 의존성 설치

npm install

3. 환경 변수 설정

프로젝트 루트에서 .env.example을 복사해 .env.local을 생성한 뒤 값을 채우세요:

cp .env.example .env.local

그 다음 .env.local에서 아래 항목을 반드시 실제 값으로 교체하세요:

  • NEXT_PUBLIC_SUPABASE_URL
  • NEXT_PUBLIC_SUPABASE_ANON_KEY
  • SUPABASE_SERVICE_ROLE_KEY

환경 변수 입력 후 연결 점검:

npm run check:supabase

check:supabase가 실패하면 SUPABASE_SETUP.md를 따라 프로젝트/키/스키마를 다시 세팅하세요.

4. 교회 도메인 데이터 추가 (중요!)

회원가입에서 교회를 선택할 수 있도록 교회 도메인 데이터를 추가해야 합니다:

# 방법 1: 스크립트 실행 (권장)
npm run seed:churches

# 방법 2: Supabase SQL Editor에서 직접 실행
# database/seed_church_domains.sql 파일의 내용을 복사하여 실행

5. 개발 서버 실행

npm run dev

브라우저에서 http://localhost:3000을 열어 확인하세요.

🛠️ 기술 스택

  • Frontend: Next.js 14, TypeScript, TailwindCSS
  • UI Library: Shadcn UI, Framer Motion
  • Backend: Supabase (PostgreSQL, Auth, Storage, Realtime)
  • Deployment: Vercel
  • Styling: TailwindCSS + 커스텀 디자인 시스템

📁 프로젝트 구조

ai_project/
├── app/                    # Next.js App Router
│   ├── layout.tsx         # 루트 레이아웃
│   ├── page.tsx           # 홈페이지
│   └── globals.css        # 전역 스타일
├── components/             # 재사용 가능한 컴포넌트
│   ├── ui/                # 기본 UI 컴포넌트
│   ├── auth/              # 인증 관련 컴포넌트
│   ├── board/             # 게시판 컴포넌트
│   └── calendar/          # 캘린더 컴포넌트
├── hooks/                  # 커스텀 훅
├── lib/                    # 유틸리티 및 설정
├── types/                  # TypeScript 타입 정의
└── database/               # 데이터베이스 스키마

🎯 주요 기능

MVP 기능 (1차 출시)

  • 프로젝트 구조 및 디자인 시스템
  • 기본 UI 컴포넌트
  • 메인 페이지 레이아웃
  • Supabase 백엔드 설정 🔄
  • 인증 시스템 📋
  • 게시판 CRUD 📋
  • 캘린더 기능 📋
  • 알림 시스템 📋

확장 기능 (2차 출시)

  • 파일 업로드 시스템
  • 권한 관리 시스템
  • PWA 기능
  • 성능 최적화

🔧 개발 가이드

코드 스타일

  • TypeScript 엄격 모드 사용
  • ESLint + Prettier 설정
  • 컴포넌트 기반 아키텍처
  • TailwindCSS 유틸리티 클래스 활용

브랜치 전략

  • main: 프로덕션 배포
  • develop: 개발 통합
  • feature/*: 기능 개발
  • hotfix/*: 긴급 수정

📚 문서

🚨 문제 해결

일반적인 문제들

  1. "Missing Supabase environment variables"

    • .env.local 파일이 프로젝트 루트에 있는지 확인
    • Supabase 프로젝트가 생성되었는지 확인
  2. 회원가입 시 교회 선택이 안 되는 문제

    • Supabase SQL Editor에서 database/seed_church_domains.sql 실행
    • 또는 관리자 페이지(/admin/church-domains)에서 교회 추가
  3. 빌드 오류

    • npm install 재실행
    • .next 캐시 삭제 후 재시작
  4. 타입 오류

    • types/ 폴더의 타입 정의 확인
    • TypeScript 컴파일러 재시작

🤝 기여하기

  1. 이슈 생성 또는 기존 이슈 확인
  2. 기능 브랜치 생성 (feature/기능명)
  3. 코드 작성 및 테스트
  4. Pull Request 생성

📄 라이선스

이 프로젝트는 MIT 라이선스 하에 배포됩니다.

📞 지원

문제가 발생하거나 질문이 있으시면:

  1. GitHub Issues 확인
  2. 개발팀에 문의
  3. SUPABASE_SETUP.md 가이드 참조

🎯 다음 단계: Supabase 프로젝트 생성 및 환경 변수 설정 📖 참고 문서: SUPABASE_SETUP.md에서 상세한 설정 방법 확인

About

with cursor, TS, Next.js

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages