# 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: Local JSON file

## How to Run

1. Navigate to the project directory:
   ```bash
   cd /Users/d-robotics/crm/crm-go
   ```

2. Run the server:
   ```bash
   ./bin/server
   ```

3. Open your browser and go to:
   ```
   http://localhost:8080
   ```

## 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
```