# hackathon **Repository Path**: oyjf518/hackathon ## Basic Information - **Project Name**: hackathon - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-11-16 - **Last Updated**: 2025-11-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 热量记录应用 一个基于React + Supabase的移动端热量记录应用,帮助用户追踪每日饮食和运动数据。 ## 🚀 功能特性 - 📱 移动端优先设计,完全响应式 - 🔐 用户认证 (邮箱注册/登录 + Google OAuth) - 🍎 食物记录:搜索、分类、热量计算 - 🏃‍♀️ 运动记录:多种运动类型、时长设置 - 📊 数据统计:热量摄入、营养素分布、运动消耗 - 🎯 目标追踪:每日热量目标达成情况 - 📅 日期选择:查看任意日期的记录 ## 🛠️ 技术栈 - **前端**: React 18 + TypeScript + Vite - **样式**: Tailwind CSS - **状态管理**: Zustand - **后端**: Supabase (数据库 + 认证 + 实时) - **部署**: Vercel ## 📦 快速开始 ### 环境要求 - Node.js 18+ - pnpm 或 npm ### 安装依赖 ```bash pnpm install ``` ### 环境变量配置 创建 `.env` 文件: ```env VITE_SUPABASE_URL=your_supabase_url VITE_SUPABASE_ANON_KEY=your_supabase_anon_key ``` ### 开发运行 ```bash pnpm run dev ``` ### 构建部署 ```bash pnpm run build ``` ## 🗄️ 数据库结构 - `profiles` - 用户资料表 - `foods` - 食物数据表 - `exercises` - 运动类型表 - `food_records` - 食物摄入记录 - `exercise_records` - 运动记录表 - `daily_summaries` - 每日汇总表 - `daily_goals` - 每日目标表 ## 🚀 部署到 Vercel 1. 点击下面的按钮一键部署: [![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https://github.com/your-username/calorie-tracker) 2. 配置环境变量: - `VITE_SUPABASE_URL` - `VITE_SUPABASE_ANON_KEY` 3. 部署完成! ## 📱 使用说明 1. **注册/登录**: 使用邮箱或Google账户 2. **记录饮食**: 点击"记录饮食"按钮,搜索食物并设置分量 3. **记录运动**: 点击"记录运动"按钮,选择运动类型和时长 4. **查看统计**: 首页显示实时数据统计和目标达成情况 ## 🔧 API 文档 应用使用 Supabase 作为后端,所有 API 调用都通过 Supabase 客户端完成: - 用户认证: `supabase.auth.*` - 数据操作: `supabase.from('table').*` - 实时订阅: `supabase.channel('*').on('*')` ## 📝 开发计划 - [ ] 食物条形码扫描 - [ ] 体重记录趋势图 - [ ] 营养成分详细分析 - [ ] 社交分享功能 - [ ] 离线模式支持 ## 🤝 贡献 欢迎提交 Issue 和 Pull Request! ## 📄 许可证 MIT License