0
0
Lập trình
NM

Easy-CRM: Công cụ năng suất được phát triển bằng Kiro

Đăng vào 7 tháng trước

• 4 phút đọc

Giới thiệu

Trong thời đại số hóa hiện nay, việc quản lý thông tin khách hàng là rất quan trọng đối với mọi doanh nghiệp. Nhóm của chúng tôi đã dành nhiều thời gian để xác định các liên hệ để mời tham dự sự kiện, nhưng các dữ liệu này thường bị phân tán khắp các file Excel và CSV từ nhiều sự kiện và nguồn khác nhau. Vì vậy, chúng tôi cần một công cụ để tổng hợp tất cả thông tin này và cho phép truy xuất và xuất dữ liệu một cách dễ dàng.

Easy-CRM là gì?

Easy-CRM là một ứng dụng web không cần máy chủ (serverless) cho phép người dùng tải lên các file CSV hoặc Excel chứa dữ liệu khách hàng ở nhiều định dạng khác nhau. Hệ thống tự động chuẩn hóa dữ liệu bằng AI DeepSeek và cung cấp giao diện web để xem, lọc, xuất và truy vấn dữ liệu khách hàng.

Demo

Bạn có thể xem bản demo tại đây: Demo Easy-CRM
Tài khoản demo: demo-user
Mật khẩu: DemoPass123!

Các tính năng chính

  • Tải lên và xử lý file: Tính năng kéo và thả để tải lên file CSV/Excel với chuẩn hóa định dạng tự động.
  • Trạng thái xử lý thời gian thực: Hiển thị trạng thái trực tiếp cho người dùng về tiến trình tải lên và xử lý, cùng với tùy chọn hủy bỏ.
  • Hỗ trợ nhiều worksheet Excel: Tự động xử lý tất cả các worksheet trong file Excel, chứ không chỉ worksheet đầu tiên.
  • Xử lý khách hàng trùng lặp: Phát hiện và xử lý tự động các khách hàng trùng lặp dựa trên địa chỉ email.
  • Quản lý khách hàng: Giao diện bảng có thể sắp xếp và lọc với phân trang cho dữ liệu khách hàng.
  • Tích hợp trường điện thoại: Hỗ trợ đầy đủ số điện thoại với kiểm tra, định dạng và liên kết tel: có thể nhấp.
  • Xuất dữ liệu: Chức năng xuất dữ liệu sang CSV với lựa chọn dữ liệu theo bộ lọc.
  • Xử lý theo lô: Kiến trúc xử lý file có thể mở rộng sử dụng hàng đợi SQS cho các file lớn.
  • Truy cập an toàn: Xác thực AWS Cognito với xác thực token JWT.

Cách tôi xây dựng Easy-CRM

Công nghệ sử dụng

  • Backend: Python 3.13, AWS Lambda, DynamoDB, S3, SQS.
  • Frontend: HTML5 thuần túy, CSS, JavaScript với Tailwind CSS.
  • Hạ tầng: CloudFormation với các stack lồng nhau.
  • Tích hợp AI: API DeepSeek AI cho chuẩn hóa dữ liệu.
  • Xác thực: AWS Cognito (User Pool + Identity Pool).
  • CDN: CloudFront với chứng chỉ SSL.

Sơ đồ kiến trúc

Sơ đồ kiến trúc Easy-CRM
(Chú thích: Hình ảnh chỉ mang tính chất minh họa.)

Bài học từ việc sử dụng Kiro

Phần khó khăn nhất khi lập trình với Kiro là gỡ lỗi các vấn đề phát sinh. Sau đó, tôi đã áp dụng những cách tiếp cận dưới đây để giảm thiểu số lượng vấn đề phát sinh:

Trong giai đoạn khởi động dự án:

  1. Tôi đã cung cấp kiến trúc trong phần "spec" như cách lambda nên xử lý thông tin, cấu trúc cơ sở dữ liệu, v.v.
  2. Tôi luôn cố gắng giải thích toàn bộ logic và các tính năng cần thiết một cách chi tiết, để Kiro không phải đoán hay làm phức tạp giải pháp của tôi.
  3. Kiro sẽ tạo ra chi tiết về việc thực hiện và các trường hợp kiểm tra, từng nhiệm vụ một.
  4. Xem xét các nhiệm vụ.

Trong quá trình thực hiện:

Tôi luôn sử dụng steering để đảm bảo rằng các thông số kỹ thuật trong tương lai sẽ tuân theo một lượng tiêu chuẩn/ quy ước nhất định. Ví dụ, tôi yêu cầu Kiro luôn sử dụng venv để tránh làm rối không gian làm việc và môi trường toàn cục của tôi.

Sau khi hoàn thành MVP:

  • Đối với sửa lỗi, tôi sử dụng phần 'Vibe' vì nó đơn giản và trực tiếp hơn, đồng thời ít tốn kém hơn.
  • Đối với tính năng/ cải tiến mới, tôi sử dụng phần "Spec", vì những thay đổi mới có thể ảnh hưởng đến toàn bộ kiến trúc và yêu cầu lập kế hoạch kỹ lưỡng để giảm thiểu các sửa lỗi trong tương lai.

Những cách tiếp cận trên giúp Kiro tìm ra vấn đề gốc rễ nhanh hơn, từ đó tiết kiệm thời gian và tín dụng.

Một điểm đáng chú ý trong việc sinh mã là Kiro đã giúp tôi giải quyết một vấn đề điều kiện đua (race condition), do các hoạt động lambda đồng thời trên một cập nhật DynamoDB. Kiro đã điều tra thành công vấn đề gốc rễ và thực hiện các thao tác nguyên tử để đảm bảo chương trình không bị can thiệp.

Những gì tôi đã học được

Trong khi lập trình vibe với Kiro là mạnh mẽ, nó vẫn yêu cầu người dùng có kiến thức sâu rộng để hướng dẫn. Nếu không, sản phẩm sẽ không được giao khi trở nên đủ phức tạp.

Kế hoạch tiếp theo cho Easy-CRM

Chúng tôi sẽ thêm tính năng truy vấn trên các khách hàng bằng công nghệ NLP để dễ dàng thu thập thông tin!

Hãy để lại ý kiến của bạn bên dưới! Tôi rất muốn thảo luận về cách mà chúng ta có thể dần dần áp dụng lập trình vibe vào sản xuất. Bạn cũng có thể kết nối với tôi qua:
LinkedIn: https://www.linkedin.com/in/john-nch-hk
GitHub: https://github.com/john-ng-hk

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào