# nextjs-t3-template **Repository Path**: playertk/nextjs-t3-template ## Basic Information - **Project Name**: nextjs-t3-template - **Description**: 这是一个基于 [T3 Stack](https://create.t3.gg/) 构建的现代全栈Web应用,采用最新的技术栈和最佳实践。 已经配置好用户登录系统 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-10-15 - **Last Updated**: 2025-11-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # nextjs-t3-template 模板 这是一个基于 [T3 Stack](https://create.t3.gg/) 构建的现代全栈Web应用,采用最新的技术栈和最佳实践。 已经配置好用户登录系统 ## 快速安装 ```bash # 安装pnpm npm install -g pnpm # 安装依赖 pnpm install ``` ## 部署步骤 1. 安装依赖: `pnpm install` 2. 配置环境变量: - 复制 `.env.example` 到 `.env` - 填充必要的环境变量(如数据库连接字符串、认证密钥等)默认纪录作为演示使用 3. 数据库迁移: `pnpm db:migrate` 4. 开发模式: `pnpm dev` 5. 构建应用: `pnpm build` 6. 启动服务: `pnpm start` ## 🏗️ 项目架构概览 ### 核心技术栈 - **前端框架**: Next.js 15.2.3 (App Router) - **UI框架**: React 19 + TypeScript - **样式系统**: Tailwind CSS 4.0 + Radix UI 组件库 - **认证系统**: NextAuth.js 5.0 (Credentials Provider) - **数据库**: Prisma ORM + SQLite - **状态管理**: JWT Token + Session - **包管理**: pnpm ### 📁 项目结构 ``` ai-story-flow/ ├── src/ │ ├── app/ # Next.js App Router │ │ ├── (dev)/ # 开发测试页面 │ │ │ └── demo/ │ │ ├── (auth)/ # 认证相关页面 │ │ │ ├── login/ │ │ │ ├── register/ │ │ │ └── signout/ │ │ ├── (private)/ # 私有路由(需要认证) │ │ │ └── user/ │ │ ├── (public)/ # 公开路由 │ │ │ ├── (home)/ # 首页 │ │ └── api/ # API路由 (Restful API) │ │ ├── auth/ │ │ └── user/ # 用户相关API │ ├── components/ # 共享组件 │ │ └── ui/ │ ├── lib/ # 工具库 │ │ ├── schemas/ # 前端数据校验 │ │ ├── jwt.ts │ │ └── utils.ts │ ├── server/ # 服务端代码 │ │ ├── auth/ │ │ └── db.ts │ └── styles/ # 前端样式 ├── prisma/ # 数据库模式 在这里进行数据库设计和迁移无需使用sql语言 └── public/ # 静态资源 ``` ## 🔐 认证系统架构 ### 认证流程 1. **登录**: 使用邮箱/密码通过Credentials Provider进行认证 2. **会话管理**: JWT Token + Session Cookie双重保障 3. **路由保护**: 中间件自动拦截未认证用户访问私有页面 4. **权限控制**: 基于角色的访问控制(可扩展) ### 安全特性 - JWT Token 30天有效期 - HttpOnly Cookie存储会话 - 生产环境屏蔽开发页面 - 环境变量验证和类型安全 ## 🗄️ 数据库设计 ### 核心数据模型 - **User**: 用户基础信息(支持邮箱/密码登录) - **Post**: 内容发布(示例模型) - **Account**: 第三方账号绑定(预留) - **Session**: 会话管理 - **VerificationToken**: 验证令牌 ### 数据库特性 - Prisma ORM提供类型安全的数据库操作 - SQLite开发环境,易于迁移到PostgreSQL/MySQL - 自动时间戳和软删除支持 ## 🎨 UI/UX设计 ### 设计系统 - **组件库**: 基于Radix UI的无障碍组件 - **主题系统**: 支持亮色/暗色主题切换 - **响应式设计**: 移动端优先的设计理念 - **动画效果**: 平滑的过渡动画和微交互 ### 字体和图标 - **字体**: Geist Sans(现代无衬线字体) - **图标**: Lucide React图标库 ## 🚀 开发特性 ### 开发工具 - **热重载**: Next.js Turbo模式加速开发 - **代码检查**: ESLint + TypeScript严格模式 - **格式化**: Prettier自动代码格式化 - **数据库工具**: Prisma Studio可视化数据库管理 ### 环境配置 - 环境变量类型安全验证 - 开发/生产环境分离配置 - Docker构建优化支持 ## 📦 依赖管理 ### 主要依赖 - **Next.js**: React全栈框架 - **NextAuth.js**: 认证解决方案 - **Prisma**: 现代数据库工具包 - **Tailwind CSS**: 实用优先的CSS框架 - **Radix UI**: 无样式UI组件库 - **TypeScript**: 类型安全的JavaScript ### 开发依赖 - **ESLint**: 代码质量检查 - **Prettier**: 代码格式化 - **TypeScript**: 类型检查 ## 🚀 部署指南 ### 环境要求 - Node.js 18+ - pnpm包管理器 - 环境变量配置 ### 环境变量 ```env DATABASE_URL="file:./db.sqlite" AUTH_SECRET="your-auth-secret" JWT_SECRET_KEY="your-jwt-secret" NEXTAUTH_URL="http://localhost:3000" ``` ## 🔧 可用脚本 - `pnpm dev` - 开发服务器(Turbo模式) - `pnpm build` - 生产构建 - `pnpm start` - 生产服务器 - `pnpm lint` - 代码检查 - `pnpm db:studio` - 数据库管理界面 - `pnpm db:migrate` - 数据库迁移 ## 📚 技术文档 - [Next.js文档](https://nextjs.org/docs) - [NextAuth.js文档](https://next-auth.js.org) - [Prisma文档](https://prisma.io/docs) - [Tailwind CSS文档](https://tailwindcss.com/docs) - [Radix UI文档](https://radix-ui.com/docs) ## 🤝 贡献指南 1. Fork项目 2. 创建特性分支 3. 提交代码变更 4. 推送到分支 5. 创建Pull Request --- **基于 T3 Stack 构建** - 现代、类型安全、全栈Web开发框架 ## Docker 配置 ```bash docker build . -t app-name:0.1 docker save -o app-name-0.1.tar app-name:0.1 ```