Building a Modern Business Card Scanner with AI: A Deep Dive into AWS and DeepSeek Integration

Hey there, fellow developers! 👋 Today, I'm excited to share my journey of building a modern business card scanner application that leverages AI to transform physical business cards into organized digital contacts. This project combines AWS services with the DeepSeek API to create a powerful networking tool.

🎯 The Problem

In today's digital age, we still exchange physical business cards, but managing them efficiently is a challenge:

  • Cards get lost or damaged
  • Manual data entry is time-consuming and error-prone
  • It's hard to analyze your professional network effectively
  • Finding specific contacts or seeing connections between companies is difficult

There are existing digital business card scanning solution in the market, but they are often:

  • expensive
  • not user friendly
  • only supports internal address book, no integration with device contacts
  • data stored in the providers' database, you don't own the data

💡 The Solution

I built a web application that solves these problems by:

  • Using AI to extract information from business card images
  • Organizing contacts with rich metadata
  • Allows importing the contacts to your phone contacts in batch!
  • self-deployable solution, meaning you own and control your data!
  • Providing network analysis and visualization
  • Offering an AI-powered chat interface for querying your contact database

🏗️ Technical Architecture

The application is built on a modern serverless stack:

Image description

Key Components:

  1. Frontend:

    • Single-page application hosted on S3
    • Interactive network visualization using D3.js
    • Real-time chat interface
    • Responsive design with Tailwind CSS
  2. Backend:

    • AWS Lambda for serverless compute
    • Amazon Textract for OCR
    • DeepSeek API for intelligent data extraction
    • DynamoDB for contact storage
    • S3 for image storage
  3. Authentication:

    • AWS Cognito for user management
    • Secure API access with IAM roles

🔍 Key Features

1. Intelligent Card Scanning

def parse_with_deepseek(raw_text):
    prompt = (
        "Extract the following information from the provided business card text: "
        "name, company, department, title, email, phone, address, website. "
        "Additionally, categorize the company's industry..."
    )
    # DeepSeek API integration for smart data extraction

2. Network Analysis

function updateNetworkVisualization() {
    // D3.js force-directed graph
    const simulation = d3.forceSimulation(nodes)
        .force("link", d3.forceLink(links).id(d => d.id))
        .force("charge", d3.forceManyBody())
        .force("center", d3.forceCenter(width / 2, height / 2));

3. AI-Powered Chat Interface

def handle_chat_message(event, cors_headers):
    """Handle chat messages using DeepSeek."""
    # Process natural language queries about your contacts
    # Generate insights and recommendations

🚀 Getting Started

Want to try it yourself? Here's how:

  1. Clone the repository:
git clone 
cd business-card-scanner
  1. Install dependencies:
cd application
pip install -r requirements.txt
  1. Configure AWS and DeepSeek:
Environment:
  Variables:
    DEEPSEEK_API_KEY: 'YOUR_API_KEY'
  1. Deploy:
./deploy.sh

🎨 User Experience

The application provides a seamless experience:

  1. Upload business card images (single or batch)
  2. AI automatically extracts and categorizes information
  3. View your contacts in a modern, filterable interface
  4. Explore network connections through interactive visualizations
  5. Chat with AI to analyze your professional network
  6. Easily export contacts as vcard files for your phone contacts

💰 Cost Estimation

AWS: Total 12 months cost = 15.00 USD AWS Pricing Calculator

DeepSeek API: minimum spend = 10RMB = 1.38 USD (1USD = 7.24 RMB)

Total Annual Cost = AWS+DeepSeek key = 15+1.38=16.38= around 16.5 USD

main assumptions:

Number of API Requests 1000 API requests each day x 20 working days = 20000 API requests per month
Number of scan card requests: 1 card each day x 30 days = 30 requests

🔮 Future Enhancements

I'm planning to add:

  1. Maybe with https so that the can directly scan with device mobile
  2. Better UI/UX and improve latency with AI chatbot.
  3. The current serverless architecture is a "Lambdalith", which is great for quick development for PoC but does not scale well with more features coming in. So may need decouple this part in the future.

🤔 Key Learnings

Building this project taught me several valuable lessons:

  1. Serverless architectures need thoughtful timeout configurations
  2. User experience is crucial for AI-powered application

🎁 Open Source

This project is open source! Feel free to:

  • Star the repository
  • Submit issues or feature requests
  • Contribute improvements
  • Fork and adapt for your needs

🔗 Resources

👋 Connect

I'd love to hear your thoughts and suggestions! Connect with me:

Let me know in the comments if you'd like to see more detailed posts about specific aspects of this project!