全球夜生活品牌管理与孵化平台的官方网站,集成了用户认证、文件管理、职位发布等功能。
git clone <repository-url>
cd spaceplus
npm install
环境配置
复制 .env.example
到 .env
并配置环境变量:
cp .env.example .env
编辑 .env
文件:
# 数据库连接
DATABASE_URL="postgresql://username:password@localhost:5432/spaceplus_db"
# JWT密钥
JWT_SECRET="your-super-secret-jwt-key-here"
数据库设置
生成 Prisma 客户端:
npm run db:generate
推送数据库架构:
npm run db:push
初始化数据库数据:
npm run db:seed
npm run dev
# 生成 Prisma 客户端
npm run db:generate
# 推送架构到数据库
npm run db:push
# 创建和运行迁移
npm run db:migrate
# 打开 Prisma Studio(数据库可视化工具)
npm run db:studio
# 初始化数据库数据
npm run db:seed
# 重置数据库(危险操作)
npm run db:reset
初始化数据库后,可以使用以下账号登录:
admin@spaceplus.com
/ admin123
hr@spaceplus.com
/ hr123
user@example.com
/ user123
src/
├── app/ # Next.js App Router
│ ├── api/ # API 路由
│ │ ├── auth/ # 认证相关API
│ │ ├── files/ # 文件管理API
│ │ └── jobs/ # 职位管理API
│ ├── dashboard/ # 用户仪表板
│ ├── files/ # 文件管理页面
│ └── login/ # 登录页面
├── components/ # React 组件
│ ├── auth/ # 认证相关组件
│ └── ui/ # UI 组件
├── lib/ # 工具库
│ ├── auth.ts # 认证工具
│ ├── database.ts # 数据库服务
│ ├── prisma.ts # Prisma 客户端
│ └── upload.ts # 文件上传工具
└── middleware.ts # Next.js 中间件
prisma/
├── schema.prisma # 数据库架构
└── migrations/ # 数据库迁移文件
scripts/
└── init-db.ts # 数据库初始化脚本
public/
└── uploads/ # 上传文件存储目录
POST /api/auth/login
- 用户登录POST /api/auth/register
- 用户注册POST /api/auth/logout
- 用户登出GET /api/auth/me
- 获取当前用户信息POST /api/files/upload
- 文件上传GET /api/files
- 获取文件列表GET /api/files/[id]/download
- 文件下载GET /api/files/[id]/preview
- 文件预览DELETE /api/files/[id]
- 删除文件GET /api/jobs
- 获取职位列表POST /api/jobs
- 创建职位GET /api/jobs/[id]
- 获取职位详情PUT /api/jobs/[id]
- 更新职位DELETE /api/jobs/[id]
- 删除职位npm run build
NODE_ENV=production
DATABASE_URL="your-production-database-url"
JWT_SECRET="your-production-jwt-secret"
npm run db:migrate
npm run db:seed
npm start
src/app/api/
目录下创建新的路由文件authenticateRequest
进行用户认证hasRole
进行权限检查db
服务进行数据库操作src/app/
目录下创建新的页面文件ProtectedRoute
组件保护需要认证的页面useAuth
Hook 获取用户信息FileUpload
组件进行文件上传public/uploads/
目录DATABASE_URL
配置是否正确public/uploads/
目录是否存在且有写权限JWT_SECRET
是否配置git checkout -b feature/AmazingFeature
)git commit -m 'Add some AmazingFeature'
)git push origin feature/AmazingFeature
)本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。