Skip to content

August1314/SoleVault

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

👟 SoleVault

专业的球鞋资产管理系统

Node.js React PostgreSQL openGauss License

English | 中文


📖 简介

SoleVault 是一个现代化的球鞋资产管理系统,专为球鞋收藏家和投资者设计。系统提供完整的库存管理、收藏夹管理、数据统计分析和社区展示功能,帮助用户高效管理球鞋资产。

✨ 核心特性

  • 🎯 全生命周期管理 - 从购买到出售的完整追踪
  • 📊 数据可视化 - 资产统计、品牌分布、价值分析
  • 👥 社区分享 - 公开收藏展示,发现同好
  • 🌍 多语言支持 - 中文/英文无缝切换
  • 🔐 安全认证 - JWT 身份验证,数据安全有保障
  • 🚀 现代化技术栈 - React 19 + Node.js + PostgreSQL/openGauss
  • 🐳 容器化部署 - Docker 一键启动,开箱即用

🛠️ 技术栈

前端

技术 版本 用途
React 19.2 UI 框架
Vite 7.2 构建工具
Tailwind CSS 3.4 样式框架
React Router 7.0 路由管理
i18next 25.6 国际化
Recharts 2.13 数据可视化

后端

技术 版本 用途
Node.js 18+ 运行时环境
Express 4.18 Web 框架
PostgreSQL 14 主数据库
openGauss 5.0 兼容数据库
JWT 9.0 身份认证
Joi 18.0 数据验证

基础设施

  • Docker - 容器化部署
  • Cloudflare Tunnel - 公网访问
  • Git - 版本控制

🚀 快速开始

前置要求

  • Node.js >= 18.0.0
  • npm >= 9.0.0
  • Docker Desktop >= 20.10
  • Git >= 2.30

安装步骤

1️⃣ 克隆仓库

git clone https://github.com/calm-233/Database_Project.git
cd Database_Project

2️⃣ 启动数据库(PostgreSQL)

# 使用 PostgreSQL
./start_online.sh

# 或使用 openGauss
./start_online_opengauss.sh

3️⃣ 安装依赖

# 安装后端依赖
cd backend
npm install

# 安装前端依赖
cd ../solevault-frontend
npm install

4️⃣ 配置环境变量

创建 backend/.env 文件:

DB_HOST=localhost
DB_PORT=5432
DB_NAME=sneaker_db
DB_USER=gaussdb
DB_PASSWORD=openGauss@123
JWT_SECRET=your-secret-key-here

5️⃣ 启动服务

启动后端:

cd backend
npm start

启动前端(新终端):

cd solevault-frontend
npm run dev

6️⃣ 访问应用


📁 项目结构

Database_Project/
├── 📂 backend/                      # 后端服务
│   ├── 📂 database/                 # PostgreSQL SQL 脚本
│   │   ├── schema.sql              # 数据库架构
│   │   ├── views.sql               # 视图定义
│   │   └── triggers.sql            # 触发器
│   ├── 📂 database_opengauss/      # openGauss 专用 SQL
│   ├── 📂 routes/                   # API 路由
│   │   ├── auth.js                 # 认证路由
│   │   ├── inventory.js            # 库存管理
│   │   ├── collections.js          # 收藏夹管理
│   │   └── ...
│   ├── 📂 middleware/               # 中间件
│   │   ├── auth.js                 # JWT 验证
│   │   └── requireAdmin.js         # 管理员权限
│   ├── 📂 validators/               # 数据验证
│   └── index.js                     # 入口文件
│
├── 📂 solevault-frontend/           # 用户前端
│   ├── 📂 src/
│   │   ├── 📂 pages/               # 页面组件
│   │   ├── 📂 components/          # 通用组件
│   │   ├── 📂 services/            # API 服务
│   │   └── 📂 i18n/                # 国际化配置
│   └── package.json
│
├── 📂 solevault-admin-frontend/     # 管理员前端
│   └── ...
│
├── 📂 postman/                      # API 测试集合
│   ├── SoleVault.postman_collection.json
│   └── SoleVault.postman_environment.json
│
├── 📂 ops/                          # 运维脚本
│   ├── backup_database.sh          # 数据库备份
│   └── ...
│
├── 📄 start_online.sh               # PostgreSQL 启动脚本
├── 📄 start_online_opengauss.sh     # openGauss 启动脚本
├── 📄 openGauss部署指南.md          # openGauss 部署文档
└── 📄 README.md                     # 本文件

🎯 功能特性

👤 用户管理

  • ✅ 用户注册与登录
  • ✅ JWT Token 认证
  • ✅ 密码加密存储(bcrypt)
  • ✅ 多语言界面(中文/英文)

📦 库存管理

  • ✅ 球鞋库存 CRUD 操作
  • ✅ 状态管理:持有 / 运输中 / 已出售 / 心愿单
  • ✅ 品相管理:全新 / 二手
  • ✅ 价格与日期追踪
  • ✅ 自动资产统计

📚 收藏夹管理

  • ✅ 创建主题收藏夹
  • ✅ 公开/私密切换
  • ✅ 添加/移除收藏项
  • ✅ 收藏详情查看
  • ✅ 收藏搜索与筛选

📊 数据统计

  • ✅ 资产总值统计
  • ✅ 品牌分布图表
  • ✅ 价值分布分析
  • ✅ 高价值球鞋展示
  • ✅ 实时数据更新

🌐 社区功能

  • ✅ 公开收藏展示
  • ✅ 搜索与筛选
  • ✅ 分页浏览
  • ✅ 收藏详情查看

🔧 目录管理

  • ✅ 品牌管理(CRUD)
  • ✅ 球鞋型号管理(CRUD)
  • ✅ 数据关联维护

📚 文档

📖 核心文档

🏗️ 架构文档

🧪 测试文档


🧪 测试

API 测试

使用 Postman 进行 API 测试:

  1. 导入测试集合:

    • 集合文件:postman/SoleVault.postman_collection.json
    • 环境文件:postman/SoleVault.postman_environment.json
  2. 配置环境变量:

    • base_url: http://localhost:3000
    • token: 登录后获取的 JWT Token
  3. 运行测试套件

详细测试结果请查看 API测试结果.md

数据库连接测试

# 测试 PostgreSQL 连接
cd backend
node test_db_connection.js

# 测试 openGauss 连接
./quick_test_opengauss.sh

🐳 Docker 部署

PostgreSQL 版本

# 启动 PostgreSQL 容器
./start_online.sh

# 停止服务
./stop_online.sh

openGauss 版本

# 启动 openGauss 容器
./start_online_opengauss.sh

# 停止服务
./stop_online_opengauss.sh

数据库初始化

数据库容器启动后,会自动执行初始化脚本:

  • 创建数据库 sneaker_db
  • 执行 SQL 架构文件
  • 创建视图和触发器

🔧 开发指南

代码规范

  • JavaScript: 遵循 ESLint 配置
  • SQL: 使用 PostgreSQL/openGauss 标准语法
  • Git: 使用语义化提交信息

开发流程

  1. Fork 项目
  2. 创建功能分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 开启 Pull Request

环境变量

后端环境变量配置(backend/.env):

# 数据库配置
DB_HOST=localhost
DB_PORT=5432
DB_NAME=sneaker_db
DB_USER=gaussdb
DB_PASSWORD=openGauss@123

# JWT 配置
JWT_SECRET=your-secret-key-here
JWT_EXPIRES_IN=7d

# 服务器配置
PORT=3000
NODE_ENV=development

🤝 贡献

欢迎贡献代码!请遵循以下步骤:

  1. Fork 本仓库
  2. 创建你的特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交你的更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 开启一个 Pull Request

贡献指南

  • 确保代码通过 ESLint 检查
  • 添加必要的测试用例
  • 更新相关文档
  • 遵循项目的代码风格

❓ 常见问题

Q: 数据库连接失败?

A: 检查以下几点:

Q: openGauss 和 PostgreSQL 有什么区别?

A: openGauss 是华为开源的企业级数据库,与 PostgreSQL 高度兼容。本项目同时支持两种数据库,SQL 脚本位于不同目录:

  • backend/database/ - PostgreSQL 版本
  • backend/database_opengauss/ - openGauss 版本

Q: 如何备份数据库?

A: 使用提供的备份脚本:

./ops/backup_database.sh

更多问题请查看 环境配置与启动指南.md 中的"常见问题"部分。


📝 更新日志

v1.0.0 (2024)

  • ✨ 初始版本发布
  • ✅ 完整的库存管理功能
  • ✅ 收藏夹管理功能
  • ✅ 数据统计与可视化
  • ✅ 社区展示功能
  • ✅ openGauss 数据库支持

📄 许可证

本项目为课程作业项目,仅供学习和研究使用。


👨‍💻 作者

August1314


🙏 致谢


如果这个项目对你有帮助,请给一个 ⭐ Star!

Made with ❤️ by August1314

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors