一个基于 Go 语言开发的个人管理系统,集成了财务管理、习惯追踪、任务管理、日记记录等功能。
- 统一的个人信息管理界面
- 快速访问各个功能模块
- 数据概览和统计
- 收入和支出记录
- 分类管理(支持自定义分类)
- 预算目标设置
- 财务数据导出
- 日常习惯记录
- 连续打卡统计
- 进度可视化
- 频率设置(每日/每周)
- 待办事项列表
- 任务状态管理
- 打卡功能
- 完成度统计
- 每日日记撰写
- 天气和心情记录
- 日记编辑和删除
- 历史记录查看
- 徽章和成就解锁
- 使用进度激励
- 个人成长记录
- 用户注册和登录
- 多用户支持
- 管理员后台
- 数据隔离
- 后端: Go 1.25.5
- 数据库: MySQL
- Web框架: 标准库 net/http
- 模板引擎: Go html/template
- 依赖管理: Go Modules
PMS/
├── main.go # 主程序入口
├── go.mod # Go 模块文件
├── config.json # 配置文件
├── init_database.sql # 数据库初始化脚本
├── auth/ # 认证相关
├── config/ # 配置管理
├── db/ # 数据库操作
├── handlers/ # HTTP 处理器
├── models/ # 数据模型
├── templates/ # HTML 模板
└── utils/ # 工具函数
- Go 1.25.5 或更高版本
- MySQL 5.7 或更高版本
go mod download- 创建 MySQL 数据库
- 修改
config.json中的数据库连接信息 - 运行
init_database.sql初始化数据库表
go run main.go应用启动后会自动打开浏览器,访问 http://localhost:8081
- 首次访问会进入配置页面
- 设置数据库连接信息
- 创建管理员账户
- 完成初始化后即可使用
config.json 配置文件包含以下选项:
{
"mysql": {
"host": "localhost",
"port": "3306",
"user": "root",
"password": "your_password",
"database": "goblog"
},
"server": {
"port": "8081"
},
"admin": {
"username": "admin",
"password": "admin"
},
"initialized": true
}GET/POST /login- 用户登录GET/POST /register- 用户注册GET /logout- 用户登出
GET /- 仪表板GET /finance- 财务管理GET /habits- 习惯追踪GET /todos- 任务管理GET /diary- 日记记录
GET /admin- 管理员仪表板GET /admin/users- 用户管理GET /admin/data- 数据管理
主要的数据模型包括:
User- 用户信息Transaction- 财务交易记录Category- 分类信息Habit- 习惯记录Todo- 任务信息Diary- 日记内容Badge- 徽章成就
AuthMiddleware- 用户认证中间件AdminAuthMiddleware- 管理员认证中间件
使用 database/sql 包进行数据库操作,支持:
- 连接池管理
- 事务处理
- 预编译语句
go build -o pms main.go
./pmsFROM golang:1.25.5-alpine AS builder
WORKDIR /app
COPY . .
RUN go build -o pms main.go
FROM alpine:latest
RUN apk --no-cache add ca-certificates
WORKDIR /root/
COPY --from=builder /app/pms .
EXPOSE 8081
CMD ["./pms"]本项目采用 MIT 许可证。
欢迎提交 Issue 和 Pull Request 来改进这个项目。
- 初始版本发布
- 完整的个人管理功能
- 用户认证系统
- 管理员后台