# CRM Customer Management System A web-based CRM system built with Go backend and HTML/CSS/JavaScript frontend. ## Features 1. **Customer Management** - Create customers with fields: Customer Name, Intended Product - Customer list with fields: Time, Customer, Version, Description, Solution, Type, Module, Status & Progress, Reporter (all editable) - Import customers from CSV files 2. **Customer Dashboard** - Visual charts (pie charts, line charts) for data analysis - Filter data by date range - View customer distribution by status, trends, product interest, and customer types ## Technology Stack - Backend: Go - Frontend: HTML, CSS, JavaScript - Charts: Chart.js (via CDN) - Data Storage: MySQL数据库(默认)或本地JSON文件 ## 数据存储 系统支持两种存储模式: ### 1. MySQL数据库(推荐) 1. 创建数据库并执行迁移脚本: ```bash mysql -u root -p < ./data/migration.sql ``` 2. 配置环境变量: ```bash export DB_HOST=localhost export DB_PORT=3306 export DB_USER=root export DB_PASSWORD=your_password export DB_NAME=crm_db export STORAGE_MODE=mysql ``` ### 2. JSON文件存储(向后兼容) 设置环境变量使用JSON存储: ```bash export STORAGE_MODE=json ``` 数据将存储在 `./data/` 目录下的JSON文件中。 ## How to Run ### 方法一:使用启动脚本 1. 复制并修改配置文件: ```bash cp .env.example .env # 编辑 .env 文件设置数据库密码等 ``` 2. 运行启动脚本: ```bash ./start.sh ``` ### 方法二:手动启动 1. 设置环境变量: ```bash export DB_PASSWORD=your_password export STORAGE_MODE=mysql ``` 2. 构建并运行: ```bash go build -o crm-server ./cmd/server/ ./crm-server ``` 3. Open your browser and go to: ``` http://localhost:8081 ``` ## 环境变量说明 | 变量名 | 说明 | 默认值 | |--------|------|--------| | `STORAGE_MODE` | 存储模式: `mysql` 或 `json` | `mysql` | | `DB_HOST` | MySQL主机地址 | `localhost` | | `DB_PORT` | MySQL端口 | `3306` | | `DB_USER` | MySQL用户名 | `root` | | `DB_PASSWORD` | MySQL密码 | 空 | | `DB_NAME` | 数据库名称 | `crm_db` | | `PORT` | 服务端口 | `8081` | ## Usage ### Customer Management - Click "Customer Management" in the navigation - Add new customers using the form - Edit existing customers by clicking "Edit" button - Delete customers by clicking "Delete" button - Import customers from CSV file using the import form ### Dashboard - Click "Dashboard" in the navigation - View various charts showing customer data - Filter data by date range ## Data Storage Customer data is stored in `./data/customers.json` in JSON format. ## File Structure ``` crm-go/ ├── cmd/ │ └── server/ │ └── main.go # Main application entry point ├── models/ │ └── customer.go # Customer data models ├── internal/ │ ├── handlers/ │ │ └── customer_handler.go # HTTP request handlers │ └── storage/ │ └── customer_storage.go # Data storage implementation ├── frontend/ │ ├── index.html # Main HTML page │ ├── css/ │ └── style.css # Stylesheet │ └── js/ │ └── main.js # Client-side JavaScript ├── data/ │ └── customers.json # Customer data storage ├── bin/ │ └── server # Compiled binary └── go.mod # Go module file ```