# Helios EVCS

_这是一个毕业设计项目，旨在尝试实现一个完整的电动汽车充电站管理系统（EV CSMS）和配套的演示用充电桩终端。_

## 📋 项目概述

Helios EVCS 是一个全栈解决方案，用于管理和监控电动汽车充电基础设施。项目包含 CSMS（充电管理系统）的前端应用和后端服务。并设计了一个基于 ESP32 的，可演示用的充电桩终端固件和 PCB 设计。

## 🏗️ 项目结构

```
helios-evcs/
├── apps/                          # 应用程序包
│   ├── csms/                      # 后端 CSMS 平台服务（Hono + Node.js）
│   └── web/                       # 前端云平台应用（Next.js 15 + React 19）[submodule]
├── hardware/                      # 硬件和固件工程
│   ├── firmware/                  # 充电桩固件
│   └── pcb/                       # PCB 设计文件（KiCAD）
├── package.json
├── pnpm-workspace.yaml
└── pnpm-lock.yaml
```

## 📦 工作区包

### `apps/csms` - CSMS 后端

- **技术栈**：Node.js + Hono + TypeScript
- **端口**：3001
- **职责**：
  - OCPP 协议实现
  - 充电设备管理
  - 用户认证与授权
  - 实时数据处理
  - RESTful API 接口

### `apps/web` - CSMS 前端

- **技术栈**：Next.js 16 + React 19 + Tailwind CSS
- **端口**：3000
- **职责**：
  - 充电桩管理
  - 概览监控面板
  - 储值卡管理
  - 用户管理
  - 充电会话历史
  - 远程启动/停止充电

### `hardware/` - 硬件和固件工程

- **firmware/** - 充电桩微控制器固件代码
  - 设备驱动实现
  - 通信协议栈
  - 实时控制逻辑
- **pcb/** - PCB 电路板设计
  - KiCAD 工程文件
  - 电路原理图
  - PCB 布局设计
  - BOM 物料清单
  - 制造文件（Gerber）

## 🚀 快速开始

### 前置要求

- Node.js >= 20
- pnpm >= 10.18.2

### 安装依赖

```bash
# 安装根工作区和所有子包的依赖
pnpm install
```

### 开发

```bash
# 启动所有开发服务器（CSMS + Web）
pnpm dev

# 迁移数据库
pnpm --filter csms run db:migrate
# 仅启动后端
pnpm dev:csms

# 仅启动前端
pnpm dev:web
```

访问：

- 前端应用：http://localhost:3000
- 后端 API：http://localhost:3001

### 构建

```bash
# 构建所有包
pnpm build

# 仅构建后端
pnpm build:csms

# 仅构建前端
pnpm build:web
```

### 生产启动

```bash
# 启动后端
pnpm start:csms

# 启动前端
pnpm start:web

# 生产环境使用 docker compose
docker compose up -d --build
```

## 🔧 工作区管理

### 使用 pnpm filter 运行特定包命令

```bash
# 在指定包中运行命令
pnpm --filter csms <command>
pnpm --filter web <command>

# 示例：在 csms 中运行测试
pnpm --filter csms run test
```

### 安装包到特定工作区

```bash
# 在根安装（所有包共用）
pnpm add <package> -w

# 在特定包中安装
pnpm --filter csms add <package>
pnpm --filter web add <package>
```

## 📚 技术文档

### 后端开发

- 详见 `apps/csms/README.md`
- Hono 框架文档：https://hono.dev
- OCPP 协议规范：https://www.openchargealliance.org

### 前端开发

- 详见 `apps/web/README.md`
- Next.js 文档：https://nextjs.org/docs
- Tailwind CSS：https://tailwindcss.com

## 👤 作者

- **Timothy Yin** - master@uniiem.com

## 🔗 相关资源

- 前端仓库：https://github.com/HoshinoSuzumi/helios
- OCPP 标准：https://www.openchargealliance.org
