TeslaMate项目开发环境搭建与贡献指南
teslamate 项目地址: https://gitcode.com/gh_mirrors/tes/teslamate
项目概述
TeslaMate是一个开源的Tesla车辆数据监控平台,它能够记录并可视化Tesla车辆的各种数据指标。本文将详细介绍如何搭建TeslaMate的开发环境,以及如何进行代码贡献。
开发环境要求
在开始开发前,请确保你的系统满足以下最低要求:
- Elixir语言环境:版本不低于1.16.2(OTP 26)
- PostgreSQL数据库:版本不低于16
- MQTT代理(可选):如mosquitto等
- NodeJS:版本不低于20.15.0
初始设置步骤
1. 数据库准备
TeslaMate需要两个数据库:一个用于开发,一个用于测试。
# 下载依赖并创建开发数据库
mix setup
# 创建测试数据库
MIX_ENV=test mix ecto.setup
2. 本地运行项目
启动一个iex会话:
iex -S mix phx.server
启动后,你可以使用Tesla账户登录系统。
开发工作流
热重载功能
TeslaMate支持热重载,修改代码后无需重启服务:
- 直接刷新浏览器页面http://localhost:4000
- 或者在iex会话中重新加载特定模块:
iex> r TeslaMate.Vehicles.Vehicle
如果只需要编译修改:
mix compile
代码格式化
TeslaMate项目使用统一的代码风格:
mix format
国际化支持
如果你需要添加或修改翻译内容:
mix gettext.extract --merge
测试流程
在提交代码前,建议运行完整的CI测试:
mix ci
该命令会执行:
- 代码格式检查
- 所有单元测试
Grafana仪表板开发
TeslaMate使用Grafana进行数据可视化,以下是开发仪表板的步骤:
1. 本地Grafana环境
使用以下docker-compose配置启动Grafana:
services:
grafana:
image: teslamate-grafana:latest
environment:
- DATABASE_USER=postgres
- DATABASE_PASS=postgres
- DATABASE_NAME=teslamate_dev
- DATABASE_HOST=host.docker.internal
ports:
- 3000:3000
volumes:
- grafana-data:/var/lib/grafana
volumes:
grafana-data:
注意:Linux系统需要用主机实际IP替换host.docker.internal
2. 构建并运行
make grafana
docker compose up grafana
访问http://localhost:3000,使用默认凭证登录(用户名:admin,密码:admin)
3. 仪表板修改流程
- 在Grafana界面编辑仪表板
- 点击保存按钮,选择"Save JSON to file"
- 将JSON文件保存到
./grafana/dashboards/
目录 - 重新构建镜像并启动容器
VS Code扩展推荐
Grafana官方提供了VS Code扩展,可以:
- 直接在VS Code中打开仪表板JSON文件
- 连接到Grafana实例进行实时预览
- 在编辑器UI中修改仪表板
- 将修改保存回原始JSON文件
最佳实践建议
- 在提交PR前,确保本地测试全部通过
- 遵循项目的代码风格规范
- 修改仪表板时,先在本地验证效果
- 添加新功能时,考虑同时提供相应的测试用例
通过遵循这些指南,你可以高效地为TeslaMate项目做出贡献,并确保你的代码变更符合项目标准。
teslamate 项目地址: https://gitcode.com/gh_mirrors/tes/teslamate
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考