🚀 使用 PHP 和 MySQL 构建 CRM:我最后一年的项目之旅 🎓

第 1 天

大家好!👋 我是 **Ashish Prajapati**,是 **RK Desai 计算机与应用科学学院** 的 TYBCA 学生。作为我最后一年的项目,我一直在研究**客户关系管理 (CRM) 系统** 🌟。这篇文章将带您了解我的旅程、我正在研究的模块、我一路上的学习方式以及我用来将这个项目变为现实的工具。

💡 启发与指导

作为一个没有开发 CRM 经验的人,我向 **ChatGPT** 寻求指导。它为 CRM 系统建议了以下基本模块:

  • 📊 仪表板:关键指标和见解的集中视图。
  • 👥 客户管理:管理客户详细信息和互动。
  • 🚀 潜在客户和机会:跟踪潜在销售和转化。
  • 📋 任务管理:分配和跟踪任务及后续工作。
  • 💰 销售跟踪:监控收入、销售活动和绩效。
  • 📈 分析:对潜在客户、销售和客户行为的视觉洞察。
  • 📧 电子邮件集成:发送通知和后续提醒。
  • 🔐 用户权限:管理团队成员的访问控制。
  • 📝 笔记和活动日志:记录重要的客户互动。
  • 在 ChatGPT 的指导下,我正在逐步实现这些模块。虽然这可能不是一个可以投入生产的 CRM,但我将全力投入到这个项目中,以学习和成长为一名开发人员。💪

    🗂 目录结构:组织代码

    为了保持我的项目结构合理且易于维护,我按以下方式组织我的文件:

    📂 client/
    ├── 📂 assets/
    │   ├── 📂 css/
    │   │   ├── lead.css      # Styles for lead management
    │   │   └── style.css     # Global styles
    │   ├── 📂 js/
    │   │   └── script.js     # Custom JavaScript
    ├── 📂 includes/
    │   ├── _Footer.php       # Footer component
    │   ├── _Nav.php          # Navigation menu
    │   └── db.php            # Database connection
    ├── add_lead.php          # Script to add leads
    ├── index.php             # Main homepage
    ├── login.php             # Login functionality
    ├── signup.php            # Signup form
    ├── signup_process.php    # Signup backend logic
    └── tailwind.config.js    # Tailwind CSS configuration

    📌亮点:

  • 可重复使用的组件:_Footer.php 和 _Nav.php 确保跨页面的一致 UI。
  • 数据库连接:db.php 是后端的核心,处理 MySQL 连接。
  • Tailwind CSS:一种现代实用优先框架,可简化设计流程。
  • 🗃 数据库设计:CRM 的支柱

    CRM 围绕两个主要表格:**潜在客户** 和 **客户**。这些表格确保高效管理客户和潜在客户数据。

    📝 潜在客户表

    CREATE TABLE `leads` (
      `lead_id` int(11) NOT NULL,
      `first_name` varchar(50) NOT NULL,
      `last_name` varchar(50) NOT NULL,
      `email` varchar(100) DEFAULT NULL,
      `phone` varchar(20) DEFAULT NULL,
      `company_name` varchar(100) DEFAULT NULL,
      `position` varchar(50) DEFAULT NULL,
      `lead_source` varchar(50) DEFAULT NULL,
      `lead_status` enum('new','contacted','qualified','converted','lost') DEFAULT 'new',
      `opportunity_value` decimal(10,2) DEFAULT NULL,
      `close_date` date DEFAULT NULL,
      `notes` text DEFAULT NULL,
      `created_at` datetime DEFAULT current_timestamp(),
      `updated_at` datetime DEFAULT current_timestamp() ON UPDATE current_timestamp()
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

    👥 客户表

    CREATE TABLE `customers` (
      `customer_id` int(11) NOT NULL,
      `first_name` varchar(50) NOT NULL,
      `last_name` varchar(50) NOT NULL,
      `email` varchar(100) NOT NULL,
      `phone` varchar(20) DEFAULT NULL,
      `address` text DEFAULT NULL,
      `city` varchar(50) DEFAULT NULL,
      `state` varchar(50) DEFAULT NULL,
      `postal_code` varchar(20) DEFAULT NULL,
      `country` varchar(50) DEFAULT NULL,
      `tags` varchar(255) DEFAULT NULL,
      `company_name` varchar(100) DEFAULT NULL,
      `position` varchar(50) DEFAULT NULL,
      `notes` text DEFAULT NULL,
      `status` enum('active','inactive','prospect') DEFAULT 'prospect',
      `created_at` datetime DEFAULT current_timestamp(),
      `updated_at` datetime DEFAULT current_timestamp() ON UPDATE current_timestamp()
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

    🔧 使用的工具和技术

    这是我在这个项目中使用的技术栈:

  • PHP 🐘:构建后端逻辑和服务器端功能。
  • MySQL 🗄:用于结构化数据存储和检索。
  • Tailwind CSS 🎨:设计一个现代且响应迅速的用户界面。
  • JavaScript 💻:用于客户端交互。
  • 📸 视觉效果正在开发中

    以下是我计划在我的视频博客和未来的帖子中展示的内容:

  • 潜在客户管理表:用于添加和更新潜在客户。
  • Image description
  • 潜在客户数据库:包含详细潜在客户记录的表格。
  • Image description
  • 仪表板原型:主仪表板的早期概念。
  • Image description

    💪 挑战与学习经验

    从事这个 CRM 项目既令人兴奋又充满挑战!作为 CRM 开发新手:

  • 我必须研究数据库设计和用户管理的最佳实践。
  • ChatGPT 一直是我的向导,为构建我的项目和实现新功能提供了宝贵的建议。
  • 我正在学习代码模块化的重要性以及设计一致性的影响。
  • 虽然这可能不是一款现成的产品,但我对自己迄今为止取得的进步感到自豪。每一行代码都在帮助我成长为一名开发人员。🚀

    🛠️下一步是什么?

    以下是我计划在接下来的几周内开展的工作:

  • 分析仪表板📊:可视化潜在客户和销售指标。
  • 电子邮件通知✉️:用于任务提醒和跟进。
  • 用户权限🔐:基于角色的访问,以提高安全性。
  • 任务管理✅:分配和跟踪团队任务。
  • 🌟 最后的想法

    这个项目给了我一个绝佳的机会,让我可以运用在 TYBCA 学到的一切并探索新技术。我很高兴继续完善这个 CRM 并添加更多功能。

    感谢您的阅读!如果您喜欢这篇文章或对我有任何建议,请**留下回应**❤️并在下方发表评论。