Inspiration

Our team spent a lot of time in identifying the correct leads for joining our events, as the leads often were scattered across excels/csvs from various events/sources. As such, we need a tool to consolidate them all and allow easy query/exporting.

What it does

Category: Productivity & Workflow Tools

A serverless web application that enables users to upload CSV/Excel files containing lead data in various formats. The system automatically standardizes the data using DeepSeek AI and provides a web interface for viewing, filtering, exporting, and querying lead.

Demo available!!! https://demo-crm.cmpapp.top/ demo-user DemoPass123!

Key Features

  • File Upload & Processing: Drag-and-drop CSV/Excel upload with automatic format standardization
  • Real-Time Processing Status: Live status indicator showing upload and processing progress with cancellation support
  • Multi-Worksheet Excel Support: Automatically processes ALL worksheets in Excel files (not just the first one)
  • Duplicate Lead Handling: Automatic detection and handling of duplicate leads based on email addresses
  • Lead Management: Sortable, filterable table view with pagination for lead data
  • Phone Field Integration: Complete phone number support with validation, formatting, and clickable tel: links
  • Data Export: CSV export functionality with filter-aware data selection
  • Batch Processing: Scalable file processing architecture using SQS queues for large files
  • Secure Access: AWS Cognito authentication with JWT token validation

How we built it

Technology Stack

  • Backend: Python 3.13, AWS Lambda, DynamoDB, S3, SQS
  • Frontend: Vanilla HTML5, CSS, JavaScript with Tailwind CSS
  • Infrastructure: CloudFormation nested stacks
  • AI Integration: DeepSeek AI API for data standardization
  • Authentication: AWS Cognito (User Pool + Identity Pool)
  • CDN: CloudFront with SSL certificate

Architecture Diagram

Diagram

Challenges we ran into

The most challenging part with vibe coding is debugging the issues, and I have taken several approach:

  • instruct Kiro to use better error-showing/loggin techniques
  • copying error messages from browser console/cloudwatch logs directly to Kiro instead of just describing what I see.

The above approaches enables Kiro to find the root issues much quicker, thus saving time and credits

What I learned

While Kiro/vibe coding is powerful, it still require a user with substancial knowledge to guide it, or else the product wont be delivered once it got complex enough.

What's next for easy-crm

Will be adding querying on the leads with NLP to gain insights easily soon!

Built With

Share this project:

Updates