# Sirus Infotech CRM
## Full Technical Specification + Development Roadmap

**Target:** small service business CRM for taxation and compliance firms

**Stack for direct upload / easy hosting:**
- Frontend: Vue 3 + Tailwind CSS (mobile-first)
- Backend: PHP 8.1+ (Laravel recommended, or plain Slim-style PHP)
- Database: MySQL / MariaDB (easy shared-hosting support), optional SQLite for prototypes
- Hosting: Vercel for static frontend, shared cPanel / Railway / Heroku for PHP backend
- Messaging: Brevo API for WhatsApp + Email + SMS
- PDF: PHP HTML templates + Dompdf / MPDF; optional Puppeteer service for advanced branding
- Payment: Razorpay / PayU / RazorpayX

---

## 1. Product Scope

### Must-have MVP features
- Client add/edit/view with required fields
- Client dashboard containing timeline, reminders, payments
- CSV import/export of client data
- Brevo-powered mass WhatsApp and email automation
- Quotation/invoice creation, PDF export and send
- Payment link generation and webhook status tracking
- Automated compliance reminders and batch broadcast
- Basic team roles and activity logging
- Analytics dashboard and exportable reports

### MVP target
- 3-4 day rapid release for core automation
- support 5-10 users and 500+ clients, scalable to 50K clients
- focus on one-shot reminders/payments with Brevo triggers

---

## 2. Architecture Overview

### High-level architecture
- Frontend: SPA using Vue 3 + Tailwind CSS
- Backend: REST API in PHP
- Database: MySQL / MariaDB
- External integrations: Brevo, Razorpay/PayU, Google Calendar
- Hosting: Frontend static assets on Vercel; backend on shared PHP host or Railway/Heroku
- Authentication: JWT / session cookies

### Layered design
1. Presentation: Vue pages, components, responsive Tailwind UI
2. API layer: PHP controllers + middleware
3. Business logic: Service classes for clients, reminders, automation, payments
4. Data layer: MySQL with migrations or schema SQL
5. Integrations: Brevo client, payment webhook handler, calendar sync

---

## 3. ERD / Database Schema

### Entity Relationship Diagram (Mermaid)

```mermaid
erDiagram
    users ||--o{ clients : owns
    users ||--o{ interactions : logs
    users ||--o{ reminders : creates
    users ||--o{ payments : records
    clients ||--o{ interactions : has
    clients ||--o{ reminders : has
    clients ||--o{ payments : has
    clients ||--o{ compliance_events : has
    clients ||--o{ documents : has
    clients ||--o{ message_logs : has

    users {
      int id PK
      varchar name
      varchar email
      varchar password
      varchar role
      bool active
      datetime created_at
    }
    clients {
      int id PK
      varchar name
      varchar phone
      varchar email
      varchar whatsapp_number
      varchar company
      varchar location
      varchar services
      varchar status
      text tags
      text notes
      int owner_id FK
      datetime created_at
      datetime updated_at
    }
    interactions {
      int id PK
      int client_id FK
      int user_id FK
      varchar type
      text note
      datetime occurred_at
    }
    reminders {
      int id PK
      int client_id FK
      int user_id FK
      varchar title
      text description
      date due_date
      varchar channel
      varchar status
      bool auto_sent
      datetime created_at
    }
    payments {
      int id PK
      int client_id FK
      varchar invoice_number
      varchar service_type
      decimal amount
      varchar currency
      varchar payment_method
      varchar status
      varchar gateway_payment_id
      date due_date
      date paid_date
      text notes
      datetime created_at
    }
    compliance_events {
      int id PK
      int client_id FK
      varchar event_type
      date service_date
      date reminder_date_30
      date reminder_date_15
      date reminder_date_7
      varchar status
    }
    documents {
      int id PK
      int client_id FK
      varchar type
      varchar title
      varchar file_path
      varchar pdf_url
      datetime created_at
    }
    message_logs {
      int id PK
      int client_id FK
      varchar channel
      varchar template_id
      varchar status
      text payload
      text response
      datetime sent_at
    }
```

### JSON Schema Representation

```json
{
  "users": {
    "id": "int",
    "name": "string",
    "email": "string",
    "password": "string",
    "role": "enum(ADMIN,MANAGER,TEAM)",
    "active": "boolean",
    "created_at": "datetime"
  },
  "clients": {
    "id": "int",
    "name": "string",
    "phone": "string",
    "email": "string",
    "whatsapp_number": "string",
    "company": "string",
    "location": "string",
    "services": "string",
    "status": "enum(Lead,Active,Follow-up)",
    "tags": "string",
    "notes": "text",
    "owner_id": "int",
    "created_at": "datetime",
    "updated_at": "datetime"
  },
  "interactions": {
    "id": "int",
    "client_id": "int",
    "user_id": "int",
    "type": "enum(NOTE,CALL,EMAIL,WHATSAPP,REMINDER,PAYMENT)",
    "note": "text",
    "occurred_at": "datetime"
  },
  "reminders": {
    "id": "int",
    "client_id": "int",
    "user_id": "int",
    "title": "string",
    "description": "text",
    "due_date": "date",
    "channel": "enum(WhatsApp,Email,SMS,InApp)",
    "status": "enum(Pending,Sent,Completed)",
    "auto_sent": "boolean",
    "created_at": "datetime"
  },
  "payments": {
    "id": "int",
    "client_id": "int",
    "invoice_number": "string",
    "service_type": "string",
    "amount": "decimal",
    "currency": "string",
    "payment_method": "string",
    "status": "enum(Pending,Paid,Failed)",
    "gateway_payment_id": "string",
    "due_date": "date",
    "paid_date": "date",
    "notes": "text",
    "created_at": "datetime"
  },
  "compliance_events": {
    "id": "int",
    "client_id": "int",
    "event_type": "string",
    "service_date": "date",
    "reminder_date_30": "date",
    "reminder_date_15": "date",
    "reminder_date_7": "date",
    "status": "enum(Open,Closed)",
    "created_at": "datetime"
  },
  "documents": {
    "id": "int",
    "client_id": "int",
    "type": "enum(Quote,Invoice,Receipt)",
    "title": "string",
    "file_path": "string",
    "pdf_url": "string",
    "created_at": "datetime"
  },
  "message_logs": {
    "id": "int",
    "client_id": "int",
    "channel": "enum(WHATSAPP,EMAIL,SMS)",
    "template_id": "string",
    "status": "string",
    "payload": "json",
    "response": "json",
    "sent_at": "datetime"
  }
}
```

### Key schema notes
- `services` stored as comma-separated text or JSON array for easy filtering
- `tags` stored as comma-separated text for shared hosting ease
- `message_logs.payload` and `response` store raw Brevo request/response for auditing
- `compliance_events` powers automated reminder creation for GST/ITR/FSSAI/ROC

---

## 4. API Endpoints

### Primary endpoint groups
- `/api/auth`
- `/api/clients`
- `/api/reminders`
- `/api/payments`
- `/api/documents`
- `/api/automation`
- `/api/brevo`
- `/api/reports`
- `/api/import-export`

### Swagger-style endpoint summary

```yaml
openapi: 3.0.3
info:
  title: Sirus Infotech CRM API
  version: 1.0.0
servers:
  - url: https://api.siruscrm.local
paths:
  /api/auth/login:
    post:
      summary: User login
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required: [email, password]
              properties:
                email:
                  type: string
                password:
                  type: string
      responses:
        '200':
          description: Auth tokens
  /api/auth/refresh:
    post:
      summary: Refresh JWT token
  /api/clients:
    get:
      summary: List clients
      parameters:
        - in: query
          name: status
          schema:
            type: string
        - in: query
          name: service
          schema:
            type: string
        - in: query
          name: tag
          schema:
            type: string
      responses:
        '200':
          description: Client list
    post:
      summary: Create client
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Client'
  /api/clients/{id}:
    get:
      summary: Get client details
    put:
      summary: Update client
    delete:
      summary: Delete client
  /api/clients/{id}/interactions:
    get:
      summary: Get interaction timeline
    post:
      summary: Add interaction
  /api/clients/{id}/reminders:
    post:
      summary: Create reminder for client
  /api/reminders/{id}:
    patch:
      summary: Update reminder status
    delete:
      summary: Delete reminder
  /api/payments:
    post:
      summary: Create payment/invoice record
  /api/payments/{id}:
    patch:
      summary: Update payment status
  /api/brevo/whatsapp/send:
    post:
      summary: Send WhatsApp message
  /api/brevo/whatsapp/bulk-send:
    post:
      summary: Bulk WhatsApp campaign
  /api/brevo/email/send:
    post:
      summary: Send transactional email
  /api/brevo/webhook:
    post:
      summary: Brevo webhook listener
  /api/automation/reminders/send-all:
    post:
      summary: Send due compliance reminders via Brevo
  /api/import-export/clients:
    post:
      summary: Upload CSV clients
  /api/import-export/clients/download:
    get:
      summary: Export clients CSV
  /api/reports/dashboard:
    get:
      summary: Dashboard analytics
```

### Core API endpoints list

#### Authentication
- `POST /api/auth/login`
- `POST /api/auth/logout`
- `POST /api/auth/refresh`
- `GET /api/auth/me`
- `POST /api/auth/2fa/verify` (optional)

#### Client Management
- `GET /api/clients`
- `POST /api/clients`
- `GET /api/clients/{id}`
- `PUT /api/clients/{id}`
- `DELETE /api/clients/{id}`
- `GET /api/clients/{id}/interactions`
- `POST /api/clients/{id}/interactions`
- `GET /api/clients/{id}/reminders`
- `GET /api/clients/{id}/payments`

#### Communication & Automation
- `POST /api/brevo/whatsapp/send`
- `POST /api/brevo/whatsapp/bulk-send`
- `POST /api/brevo/email/send`
- `POST /api/brevo/email/drip`
- `POST /api/brevo/webhook`
- `POST /api/automation/reminders/send-all`
- `GET /api/automation/rules`
- `POST /api/automation/rules`
- `PATCH /api/automation/rules/{id}`

#### Documents
- `GET /api/documents/templates`
- `POST /api/documents/quotes`
- `POST /api/documents/invoices`
- `GET /api/documents/{id}`
- `POST /api/documents/{id}/send`
- `GET /api/documents/{id}/download`

#### Payments
- `POST /api/payments/generate-link`
- `POST /api/payments`
- `POST /api/payments/webhook`
- `PATCH /api/payments/{id}`
- `GET /api/payments/export`

#### Import / Export
- `POST /api/import-export/clients`
- `GET /api/import-export/clients/download`
- `POST /api/import-export/payments`

#### Reporting
- `GET /api/reports/clients-summary`
- `GET /api/reports/revenue-summary`
- `GET /api/reports/reminder-performance`
- `GET /api/reports/activity`

---

## 5. Brevo Workflow Examples

### 5.1 Reminder Batch Broadcast

```json
{
  "name": "GST Due Reminder - 30 Days",
  "type": "whatsapp",
  "recipient_filter": {
    "service": "GST",
    "reminder_window": "30_days",
    "status": ["Active","Follow-up"]
  },
  "template": {
    "id": "whatsapp_template_gst_due",
    "language": "en",
    "content": "Hello {{name}}, your GST return for {{service}} is due on {{due_date}}. Please share your documents or pay today."
  },
  "personalization": {
    "name": "client.name",
    "service": "client.primary_service",
    "due_date": "compliance.service_date"
  },
  "channel_fallback": {
    "email": {
      "template_id": "email_template_gst_due"
    },
    "sms": {
      "enabled": true,
      "template_id": "sms_template_gst_due"
    }
  }
}
```

### 5.2 WhatsApp Automation Rule

```json
{
  "name": "New Lead Welcome Flow",
  "trigger": {
    "event": "client.created",
    "conditions": {
      "status": "Lead",
      "opted_in_whatsapp": true
    }
  },
  "actions": [
    {
      "type": "send_whatsapp",
      "template_id": "welcome_lead_template",
      "variables": {
        "name": "client.name",
        "company": "client.company"
      }
    },
    {
      "type": "create_interaction",
      "interaction_type": "WHATSAPP",
      "note": "Sent new lead welcome WhatsApp"
    }
  ]
}
```

### 5.3 Email Automation / Drip Campaign

```json
{
  "name": "Invoice Reminder Sequence",
  "trigger": {
    "event": "payment.invoice_created",
    "conditions": {
      "status": "Pending",
      "due_date": "{{today_plus_7}}"
    }
  },
  "steps": [
    {
      "delay_days": 0,
      "channel": "email",
      "template_id": "invoice_reminder_1",
      "variables": {
        "name": "client.name",
        "invoice_number": "payment.invoice_number",
        "amount": "payment.amount"
      }
    },
    {
      "delay_days": 3,
      "channel": "whatsapp",
      "template_id": "invoice_reminder_2",
      "variables": {
        "name": "client.name",
        "invoice_number": "payment.invoice_number"
      }
    },
    {
      "delay_days": 5,
      "channel": "sms",
      "template_id": "invoice_reminder_sms",
      "variables": {
        "name": "client.name"
      }
    }
  ]
}
```

### 5.4 Cross-Channel Trigger Example

```json
{
  "name": "Email Open Failover to WhatsApp",
  "trigger": {
    "event": "email.opened",
    "conditions": {
      "opened": false,
      "sent_at": "{{now_minus_24h}}"
    }
  },
  "action": {
    "type": "send_whatsapp",
    "template_id": "followup_no_open_template",
    "variables": {
      "name": "client.name",
      "service": "client.primary_service"
    }
  }
}
```

---

## 6. UI Wireframes

> Note: share these as Figma artboards or hand off as design tickets. If actual Figma links are required, create a file `Sirus CRM UI Kit` with the screens below.

### 6.1 Dashboard
- Top KPI cards: revenue this month, pending invoices, due reminders, new leads
- Graph: monthly revenue vs payments collected
- Activity feed: latest interactions, reminders, payments
- Quick action buttons: Add Client, Send GST Reminder, Create Invoice, Import CSV
- Team summary: open leads by owner, overdue follow-ups

### 6.2 Client Profile
- Header: name, company, status badge, location, tags
- Action row: Send WhatsApp, Send Email, Create Reminder, Generate Invoice
- Tabs:
  - Overview: contact info, service list, assigned team
  - Timeline: interactions, notes, message logs
  - Reminders: upcoming and past reminders
  - Payments: invoices, status, receipts
  - Documents: quotes/invoices/PDFs
- Sidebar: quick facts, last contact, next due compliance event

### 6.3 Automation Center
- List of active automation rules and campaigns
- Button: Create new rule
- Card view for each workflow: trigger, channel, last run, success rate
- Filter by channel: WhatsApp, Email, SMS
- Example templates with preview

### 6.4 Reminders
- Calendar view with month/week toggle
- Table of scheduled reminders by due date, client, service, channel
- Bulk action toolbar: Send all due reminders, mark complete, export
- Compliance reminder quick panel for GST/ITR/FSSAI/ROC
- Add custom reminder modal with client search, due date, channel, notes

### 6.5 Reports
- Revenue report: total revenue, receivables, payment status
- Reminder performance: sent, opened, clicked, replied
- Client acquisition: leads by source, conversion rate, service demand
- Export buttons: Download PDF, Excel
- Filters: date range, team member, service, status

---

## 7. Development Roadmap

### Phase 0: Immediate MVP (Day 1-4)
1. Setup repo, environment, and database schema
2. Build user auth + roles
3. Client CRUD + list view + detail page
4. Reminder creation + compliance event model
5. Bulk CSV import/export for clients
6. Brevo WhatsApp single send + batch send endpoint
7. Razorpay payment link creation + webhook listener
8. Basic dashboard with key stats

### Phase 1: Rapid MVP Delivery (Week 1)
- Day 1: Environment setup, auth, client CRUD
- Day 2: Client dashboard, timeline, payments
- Day 3: CSV import/export, reminders, Brevo send
- Day 4: Document templates and PDF generation
- Day 5-7: Payment link + webhook, compliance batch send, reporting

### Phase 2: Productization (Week 2)
- Expand Brevo automation rules and workflows
- Add WhatsApp opt-in tracking and consent UI
- Add invoice/quote templates and branded PDF export
- Add Google Calendar / Outlook reminder sync
- Add detailed analytics and exports
- QA, security review, documentation, deploy

### Suggested sprint breakdown
- Sprint 1: Core CRM + client lifecycle
- Sprint 2: Reminder automation + payments + Brevo hooks
- Sprint 3: Documents + reports + team collaboration
- Sprint 4: Polish + tests + deployment

---

## 8. Sample Code Snippets

### 8.1 PHP Brevo WhatsApp send (cURL)

```php
function sendBrevoWhatsApp($apiKey, $to, $templateId, $variables) {
    $url = 'https://api.brevo.com/v3/whatsapp/messages';
    $payload = [
        'to' => $to,
        'templateId' => $templateId,
        'parameters' => $variables
    ];

    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_HTTPHEADER, [
        'Content-Type: application/json',
        'api-key: ' . $apiKey
    ]);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($payload));

    $response = curl_exec($ch);
    $status = curl_getinfo($ch, CURLINFO_HTTP_CODE);

    if ($status !== 200 && $status !== 201) {
        throw new Exception('Brevo WhatsApp send failed: ' . $response);
    }

    return json_decode($response, true);
}
```

### 8.2 PHP Brevo email send

```php
function sendBrevoEmail($apiKey, $to, $subject, $htmlContent) {
    $url = 'https://api.brevo.com/v3/smtp/email';
    $body = [
        'sender' => ['name' => 'Sirus CRM', 'email' => 'noreply@siruscrm.com'],
        'to' => [[ 'email' => $to, 'name' => '' ]],
        'subject' => $subject,
        'htmlContent' => $htmlContent
    ];

    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_HTTPHEADER, [
        'Content-Type: application/json',
        'api-key: ' . $apiKey
    ]);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($body));
    $response = curl_exec($ch);
    curl_close($ch);

    return json_decode($response, true);
}
```

### 8.3 PHP Razorpay payment webhook

```php
$payload = file_get_contents('php://input');
$signature = $_SERVER['HTTP_X_RAZORPAY_SIGNATURE'];
$keySecret = 'your_razorpay_secret';
$expectedSignature = hash_hmac('sha256', $payload, $keySecret);

if (!hash_equals($expectedSignature, $signature)) {
    http_response_code(400);
    echo json_encode(['error' => 'Invalid signature']);
    exit;
}

$event = json_decode($payload, true);
if ($event['event'] === 'payment.captured') {
    $paymentId = $event['payload']['payment']['entity']['id'];
    $orderId = $event['payload']['payment']['entity']['order_id'];
    // update payment record in database
}

http_response_code(200);
echo json_encode(['status' => 'ok']);
```

### 8.4 PHP PDF generation with Dompdf

```php
require 'vendor/autoload.php';
use Dompdf\Dompdf;

function generateInvoicePdf($html, $outputPath) {
    $dompdf = new Dompdf();
    $dompdf->loadHtml($html);
    $dompdf->setPaper('A4', 'portrait');
    $dompdf->render();
    file_put_contents($outputPath, $dompdf->output());
    return $outputPath;
}
```

### 8.5 Document template HTML snippet

```html
<html>
  <body style="font-family: Arial, sans-serif;">
    <h1>Invoice #{{invoice_number}}</h1>
    <p>Client: {{client_name}}</p>
    <p>Service: {{service}}</p>
    <table width="100%" border="1" cellspacing="0" cellpadding="8">
      <thead>
        <tr><th>Description</th><th>Amount</th></tr>
      </thead>
      <tbody>
        {{#each items}}
          <tr>
            <td>{{description}}</td>
            <td>{{amount}}</td>
          </tr>
        {{/each}}
      </tbody>
    </table>
    <p>Total: {{total}}</p>
  </body>
</html>
```

---

## 9. Compliance Automation

### Pre-configured compliance calendar
- GST: GSTR-1, GSTR-3B deadlines
- ITR: July 31
- FSSAI: annual renewal reminders
- ROC: AGM Sep 30

### Reminder scheduling logic
- Client service date entered on client profile
- System auto-creates `compliance_events` and reminder dates at 30/15/7 days before due
- Dashboard action: `Send All GST Reminders`
- Bulk automation sends both WhatsApp and Email

### Custom reminders
- Team can add per-client reminders with custom title, channel, due date
- reminders stored in `reminders` table with `auto_sent` flag

---

## 10. Team Collaboration

### User roles
- Admin: full access
- Manager: reports + team visibility
- Team Member: own clients, limited edit rights

### Deal pipeline
- Status flow: Lead → Proposal → Contract → Paid → Service → Close
- Each client record includes a pipeline stage field
- Dashboard pipeline cards show counts and next actions

### Activity logging
- Every note, call, message, payment, reminder captured as `interaction`
- Auto timestamp and assigned user
- In-app notifications sent for assignment / due reminders

### Notifications
- In-app notification center
- Optional WhatsApp/email notices for assignment or overdue payment

---

## 11. Analytics & Reports

### Dashboard metrics
- Revenue this month / year
- Pending payment amount
- Open reminders and compliance tasks
- Lead conversion rate
- WhatsApp/email reminder success percentage

### Report export formats
- PDF export using Dompdf
- Excel export using PHPSpreadsheet
- Data filters by date/service/team/client

### Suggested reports
- Monthly revenue and receivables
- Reminder send/open/click ratios
- Client acquisition by service
- Payment collection velocity

---

## 12. Integrations

### Brevo
- WhatsApp Business API via Brevo
- Email transactional API
- SMS fallback via Brevo if enabled
- Webhook listener for delivery/open/reply events

### Payment gateways
- Razorpay / PayU for Indian payments
- Generate payment links and store gateway IDs
- Webhook listeners for payment status updates

### Calendar sync
- Google Calendar / Outlook add-to-calendar links for reminders
- Optional OAuth sync for user calendars

### Optional
- GST Portal API if available for invoice status
- Zapier webhook support for additional automations

---

## 13. Cost Estimate

### Development effort
- Core CRM + client management: 16-20 hours
- Brevo messaging + automation: 10-12 hours
- Document/invoice generation: 8-10 hours
- Payment gateway + webhooks: 6-8 hours
- Reminders calendar + batch automation: 8-10 hours
- Reports + exports + UI polish: 8-10 hours
- Deployment + QA + bugfixing: 6-8 hours

**Total estimate:** 52-68 developer hours

### Suggested delivery
- Rapid MVP: 4 full days (40-48 hours) for core features
- Full 2-week build: 10 business days to stabilize, polish, and add reports

### Brevo pricing estimate
- Email: free tier available; paid plans start from ~10 EUR/month for 20,000 emails
- WhatsApp: typically pay-per-message/session and template approvals; estimate ~₹5-15 per message depending on template type and destination
- SMS fallback: additional per-SMS cost, usually ₹0.50-₹2.50 per SMS
- Setup: Brevo API key and WhatsApp sender approval required

### Hosting estimate
- Vercel static frontend: free/paid depending usage
- Shared PHP host: ₹500-2,000/month
- MySQL managed DB: ₹1,000-3,000/month if not using shared hosting

---

## 14. Implementation Notes for PHP Direct Upload

### Recommended delivery path
1. Use Laravel Breeze if Laravel is acceptable; otherwise use a lightweight PHP MVC boilerplate
2. Store environment variables in `.env` for API keys and DB credentials
3. Use MySQL and provide SQL schema file for easy upload
4. Provide one-click import/export on admin dashboard
5. Keep front-end simple with Vue components and Tailwind for fast deployment

### Fast deployment bundle
- `public/` static frontend
- `routes.php` or Laravel routes
- `controllers/` for auth, clients, payments, Brevo
- `views/` for templates and invoices
- `storage/` for PDFs and uploads

### Simplest database option
- MySQL with SQL schema import
- Optional SQLite for local testing with same schema
- Avoid MongoDB for direct upload use cases

---

## 15. Handoff Checklist

- [ ] Create repo with backend PHP code and SQL schema
- [ ] Implement Vue/Tailwind frontend templates for 5 key screens
- [ ] Configure Brevo API integration and webhook URL
- [ ] Add Razorpay/PayU payment integration and webhook handling
- [ ] Create CSV import/export module
- [ ] Build invoice/quote PDF generator
- [ ] Add compliance reminder auto-scheduler and batch send button
- [ ] Document deployment steps for shared hosting/cPanel

---

## 16. Next Deliverables for Development Team

1. `DB Schema SQL` file for MySQL import
2. `OpenAPI` or `Swagger` YAML file for all endpoints
3. `Brevo workflow examples` JSON payloads in `docs/`
4. `UI spec` with 5 page prototypes
5. `MVP roadmap` and daily delivery plan
6. `Sample PHP integration snippets` for quick start
7. `Cost and hosting estimate` for client approval

---

This document is ready for handoff as the developer-facing technical specification for a custom CRM built on PHP, MySQL, Brevo, and Indian payment integrations. It focuses on rapid MVP delivery plus the one-shot automation flows Sirus Infotech needs for reminders and payments.