Skip to content

An AI-powered smart email assistant built using Spring Boot, Spring AI, and Gemmini.

Notifications You must be signed in to change notification settings

18-RAJAT/SpringAI-InboxAssistant

Repository files navigation

AI-Powered Email Management: Web Application and Browser Extension Icon

Image

Java Version Spring Boot API React Extensions Build Status Code Style

An intelligent email management system powered by Spring Boot and AI that helps you handle your inbox more efficiently through automated categorization, smart responses, and email analysis.

Features ✨

  • AI-Powered Email Responses: Automatically generate context-aware email replies
  • Smart Categorization: Automatically classify emails into categories (Important, Spam, Social, etc.)
  • Email Summarization: Get concise summaries of long email threads
  • Sentiment Analysis: Detect the emotional tone of incoming emails
  • Follow-up Reminders: Automatic reminders for important unanswered emails
  • Template Suggestions: AI-generated email templates for common responses

Tech Stack 🛠️

  • Backend: Spring Boot 3.2
  • AI Integration: Spring AI
  • Email Processing: JavaMail API
    • Natural Language Processing: Gemini
  • Database:
    • Development: H2 Database
    • Production: PostgreSQL
    • API Documentation: Gemini API
  • Build Tool: Maven

Prerequisites 📋

  • Java Version
  • Maven Version
  • Gemini API Key
  • Email Account Credentials

System Design 📊

System Design

Installation & Setup ⚙️

  1. Clone the repository:

    git clone https://github.com/18-RAJAT/SpringAI-InboxAssistant.git
    cd SpringAI-InboxAssistant
  2. Build the project:

    mvn clean install
  3. Configure environment variables:

    • Create application.yml in src/main/resources/:
    spring:
       spring.application.name=email-writer
       gemini.api.url=${GEMINI_URL}
       gemini.api.key=${GEMINI_KEY}
       server.port=9191
    
  4. Start the application:

    mvn spring-boot:run
  5. Access API documentation:
    Swagger UI OpenAPI Spec

Example API Request 🚀

curl -X POST "http://localhost:9191/api/email/generate" \
-H "Content-Type: application/json" \
-d '{
  "emailContent": "Hi, I'm following up on our meeting last week. When can we expect the project deliverables?",
  "tone": "professional"
}'

Key API Endpoints 📡

Endpoint Method Description
/api/email/generate POST Generate AI-powered email responses
/api/email/categorize POST Categorize incoming emails
/api/email/summarize POST Summarize email threads
/api/email/analyze-sentiment POST Perform sentiment analysis on email content
/api/email/schedule-followup POST Schedule follow-up reminders

Contributing 🤝

Contributions are welcome! Please follow these steps:

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/your-feature)
  3. Commit your changes (git commit -m 'Add some feature')
  4. Push to the branch (git push origin feature/your-feature)
  5. Open a Pull Request

Acknowledgements 😇

  • Spring AI team for the amazing AI integration capabilities
  • Gemini for their powerful language models
  • The Spring Boot community for continuous support and improvements

About

An AI-powered smart email assistant built using Spring Boot, Spring AI, and Gemmini.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published