๋ด ํ๋ฃจ์ ๊ฑด๊ฐ์ ๋๋ต๊ฒ, ๋ชจ๋ ๊ฒ์ ๋น์ ์๊ฒ ํํ๊ฒ
AI ๊ธฐ์ ์ ํ์ฉํ ๊ฐ์ธ ๋ง์ถคํ ์๋จ ๋ฐ ์ด๋ ๊ด๋ฆฌ ์๋น์ค์ ๋๋ค. ์ต์ํ์ ๊ฐ์ธ์ ๋ณด๋ก ์ต๋ํ์ ๋ง์ถคํ ๊ฑด๊ฐ ๊ด๋ฆฌ ๊ฒฝํ์ ์ ๊ณตํฉ๋๋ค.
- ๊ฐ์ธํ๋ ์๋จ ์์ฑ: ์ฌ์ฉ์์ ๊ฑด๊ฐ ์ํ, ์ ํธ๋, ๋ชฉํ๋ฅผ ๊ณ ๋ คํ ์ผ์ฃผ์ผ ์๋จ ๊ณํ
- ๋ง์ถคํ ์ด๋ ๋ฃจํด: ์ฒด๋ ฅ ์์ค๊ณผ ํ๊ฒฝ์ ๋ง๋ ๊ฐ์ธ๋ณ ์ด๋ ํ๋ก๊ทธ๋จ
- ์ค์๊ฐ AI ์๋ด: OpenAI GPT-4๋ฅผ ํ์ฉํ ๊ฑด๊ฐ ๊ด๋ จ ์ง์์๋ต
- ๋์๋ณด๋: ์๋จ/์ด๋ ํต๊ณ ๋ฐ ์งํ ์ํฉ ๋ชจ๋ํฐ๋ง
- ์ ์ฅ ๋ฐ ๊ด๋ฆฌ: ์์ฑ๋ ์๋จ๊ณผ ์ด๋ ๊ณํ์ ์ฒด๊ณ์ ๊ด๋ฆฌ
- ์งํ ์ถ์ : ์ฃผ๊ฐ/์๊ฐ ํ๋ ๋ด์ญ ๋ฐ ์นผ๋ก๋ฆฌ ์๋ชจ๋ ๋ถ์
- ์ต์ ๋ฐ์ดํฐ ์์ง: ํ์ ์ ๋ณด๋ง์ผ๋ก ์๋น์ค ์ ๊ณต
- ์์ ํ ์ธ์ฆ: NextAuth.js ๊ธฐ๋ฐ ๋ณด์ ์์คํ
- ๋ฐ์ดํฐ ์์ ๊ถ: ์ฌ์ฉ์ ์ค์ฌ์ ๋ฐ์ดํฐ ๊ด๋ฆฌ
- Framework: Next.js 14 (App Router)
- Language: TypeScript
- Styling: Tailwind CSS
- State Management:
- React Query (์๋ฒ ์ํ)
- Zustand (ํด๋ผ์ด์ธํธ ์ํ)
- UI Components: Headless UI + Custom Components
- Icons: Heroicons
- Forms: React Hook Form + Yup
- Runtime: Node.js
- Framework: Next.js API Routes
- Database: MySQL
- ORM: Prisma
- Authentication: NextAuth.js
- AI Integration: OpenAI API (GPT-4)
- Package Manager: npm & yarn
- Build Tool: Vite (Dev), Next.js (Production)
- Type Checking: TypeScript
- Linting: ESLint
- Deployment: Vercel (Frontend), Railway/PlanetScale (Database)
src/
โโโ app/ # Next.js App Router
โ โโโ (auth)/ # ์ธ์ฆ ๊ด๋ จ ํ์ด์ง
โ โโโ (dashboard)/ # ๋ฉ์ธ ์ฑ ํ์ด์ง
โ โโโ api/ # API Routes
โ โโโ components/ # ๊ณตํต ์ปดํฌ๋ํธ
โ โโโ globals.css # ์ ์ญ ์คํ์ผ
โโโ lib/ # ์ ํธ๋ฆฌํฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
โ โโโ auth.ts # NextAuth ์ค์
โ โโโ prisma.ts # Prisma ํด๋ผ์ด์ธํธ
โ โโโ openai.ts # OpenAI API ์ค์
โ โโโ api-client.ts # API ํด๋ผ์ด์ธํธ
โโโ types/ # TypeScript ํ์
์ ์
โโโ styles/ # SCSS ์คํ์ผ ํ์ผ
โโโ prisma/ # ๋ฐ์ดํฐ๋ฒ ์ด์ค ์คํค๋ง
โโโ schema.prisma
git clone https://github.com/your-username/fitforyou.git
cd fitforyounpm install๋๋
yarn install.env.local ํ์ผ์ ์์ฑํ๊ณ ๋ค์ ๋ด์ฉ์ ์ถ๊ฐํ์ธ์:
# Database
DATABASE_URL="mysql://username:password@localhost:3306/fitforyou"
# NextAuth
NEXTAUTH_URL="http://localhost:3000"
NEXTAUTH_SECRET="your-nextauth-secret"
# OpenAI
OPENAI_API_KEY="your-openai-api-key"
# App
NEXT_PUBLIC_APP_URL="http://localhost:3000"# Prisma ๋ง์ด๊ทธ๋ ์ด์
์คํ
npx prisma migrate dev
# ๋ฐ์ดํฐ๋ฒ ์ด์ค ์๋ (์ ํ์ฌํญ)
npx prisma db seednpm run dev๋ธ๋ผ์ฐ์ ์์ http://localhost:3000์ ์ด์ด ํ์ธํ์ธ์.
- ์ ์ฅ๋ ์๋จ/์ด๋ ํต๊ณ
- ์ค๋์ ์ถ์ฒ ๊ณํ
- ๋น ๋ฅธ ์ก์ ๋ฒํผ
- ์ ์ฅ๋ ์๋จ ๋ชฉ๋ก ์กฐํ
- ์ผ์ฃผ์ผ ์๋จ ์์ธ ๋ณด๊ธฐ
- ์๋จ ์ญ์ ๋ฐ ๊ด๋ฆฌ
- ์ ์ฅ๋ ์ด๋ ๊ณํ ์กฐํ
- ์ด๋ ๋ฃจํด ์์ธ ์ ๋ณด
- ์ด๋ ์ผ์ ๊ด๋ฆฌ
- AI ์๋จ ์์ฑ ์์ฒญ
- AI ์ด๋ ๊ณํ ์์ฑ
- ๋ง์ถคํ ํ๋กฌํํธ ์ ๋ ฅ
- ๊ฐ์ธ์ ๋ณด ์์
- ์ ์ฒด ์ ๋ณด ์ ๋ฐ์ดํธ
- ๊ณ์ ์ค์
POST /api/auth/signup- ํ์๊ฐ์POST /api/auth/signin- ๋ก๊ทธ์ธPOST /api/auth/check-user-id- ์์ด๋ ์ค๋ณต ํ์ธ
POST /api/ai/generate-diet- AI ์๋จ ์์ฑPOST /api/ai/generate-workout- AI ์ด๋ ์์ฑ
GET /api/diets- ์๋จ ๋ชฉ๋ก ์กฐํDELETE /api/diets- ์๋จ ๊ทธ๋ฃน ์ญ์ GET /api/workouts- ์ด๋ ๋ชฉ๋ก ์กฐํDELETE /api/workouts- ์ด๋ ๊ทธ๋ฃน ์ญ์
GET /api/user/profile- ํ๋กํ ์กฐํPUT /api/user/profile- ํ๋กํ ์์ DELETE /api/user/profile- ํ์ ํํด
GET /api/stats/dashboard- ๋์๋ณด๋ ํต๊ณGET /api/stats/reports- ์์ธ ๋ฆฌํฌํธ
$primary-color: #f0fd82; // ๋ฉ์ธ ๋ธ๋๋ ์์ (์ฐํ ๋
ธ๋)
$primary-hover: #e6f066; // ํธ๋ฒ ์ํ
$success-color: #2ed573; // ์ฑ๊ณต/์๋ฃ (์ด๋ก)
$error-color: #ff4757; // ์ค๋ฅ/๊ฒฝ๊ณ (๋นจ๊ฐ)
$text-color: #333; // ๊ธฐ๋ณธ ํ
์คํธ$mobile-s: 320px;
$mobile: 375px;
$mobile-l: 480px;
$tablet: 768px;- Vercel ๊ณ์ ์ ํ๋ก์ ํธ ์ฐ๊ฒฐ
- ํ๊ฒฝ๋ณ์ ์ค์
- ์๋ ๋ฐฐํฌ ์ค์
npm run build
npm start# ํ์
์ฒดํฌ
npm run type-check
# ๋ฆฐํ
npm run lint
# ๋น๋ ํ
์คํธ
npm run build- ์๋จ ์ด๋ฏธ์ง ๋ถ์ ๊ธฐ๋ฅ
- ์ด๋ ์์ ๊ฐ์ด๋ ์ ๊ณต
- ํธ์ ์๋ฆผ ์์คํ
- ์นผ๋ก๋ฆฌ ์ถ์ ๊ฐ์
- ์์ ๊ธฐ๋ฅ (์น๊ตฌ ์ถ๊ฐ, ๊ณต์ )
- ์ปค๋ฎค๋ํฐ ๊ธฐ๋ฅ
- ์ ๋ฌธ๊ฐ ์๋ด ์ฐ๊ฒฐ
- ์จ์ด๋ฌ๋ธ ๊ธฐ๊ธฐ ์ฐ๋
- ๋ชจ๋ฐ์ผ ์ฑ (React Native)
- ์์ฑ ์ธํฐํ์ด์ค
- AR/VR ์ด๋ ๊ฐ์ด๋
- ๊ฐ์ธํ AI ์ด์์คํดํธ
- TypeScript ์ฌ์ฉ ํ์
- ESLint ๊ท์น ์ค์
- ์ปดํฌ๋ํธ๋ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ๊ฒ ์ค๊ณ
- API๋ RESTful ์ค๊ณ ์์น ๋ฐ๋ฆ
- ๋ฐ์ํ ๋์์ธ ํ์
MIT License - ์์ธํ ๋ด์ฉ์ LICENSE ํ์ผ์ ์ฐธ์กฐํ์ธ์.
- ์ด์ธ๋ฏผ - Full Stack Developer & Project Lead
- ์๋ฏผ์ญ - Backend Developer
- ์ ์๋ฆฐ - UI/UX
- Frontend: ์ฌ์ฉ์ ๊ฒฝํ ์ต์ ํ๋ฅผ ์ํ React + TypeScript
- Backend: ๋น ๋ฅธ ๊ฐ๋ฐ์ ์ํ Next.js Full-Stack
- Database: ์์ ์ฑ๊ณผ ์ฑ๋ฅ์ ์ํ MySQL + Prisma
- AI: ์ต์ AI ๊ธฐ์ ํ์ฉ์ ์ํ OpenAI GPT-4
- Email: [email protected]
- GitHub: ํ๋ก์ ํธ ์ ์ฅ์
- Issues: ๋ฒ๊ทธ ๋ฆฌํฌํธ & ๊ธฐ๋ฅ ์์ฒญ
Made with โค๏ธ by Team ๋ชจ๊ตฌ
"๊ฑด๊ฐํ ๋ผ์ดํ์คํ์ผ์ ์์, FitForYou์ ํจ๊ปํ์ธ์!"
