A comprehensive email management ecosystem featuring AI-powered email generation, intelligent browser extension, and modern web interface. Built with Spring Boot, React, and Google Gemini AI.
This project consists of three integrated components:
- Backend API: Spring Boot application with Gemini AI integration
- Frontend Web App: React-based user interface with Material-UI
- Browser Extension: Chrome extension for Gmail integration
- AI Email Generation: Create professional emails using Google Gemini AI
- Smart Compose: Generate contextual email responses
- Gmail Integration: Seamless browser extension for Gmail
- Modern UI: Responsive React interface with Material-UI components
- RESTful API: Clean API design for email operations
- Reactive Programming: WebFlux for non-blocking operations
- Health Monitoring: Spring Boot Actuator integration
- Cross-Origin Support: CORS configuration for frontend integration
- Environment Configuration: Secure API key management
βββ email-ai/ # Spring Boot Backend (Port: 8080)
βββ Frontend/ # React Web Application (Port: 5173)
βββ Email-ext/ # Chrome Browser Extension
βββ README.md # Project Documentation
- Framework: Spring Boot 3.5.3
- Java Version: 24
- Build Tool: Maven
- AI Integration: Google Gemini AI
- Reactive Stack: Spring WebFlux
- Monitoring: Spring Boot Actuator
- Code Enhancement: Lombok
- Framework: React 19.1.0
- Build Tool: Vite 7.0.4
- UI Library: Material-UI 7.2.0
- HTTP Client: Axios 1.10.0
- Styling: Emotion (CSS-in-JS)
- Platform: Chrome Extension Manifest V3
- Target: Gmail Integration
- Permissions: ActiveTab, Storage
- Host Access: Gmail, Localhost API
- Java: 24+ (configured in pom.xml)
- Node.js: 18+ (for React frontend)
- Maven: 3.6+
- Google Gemini API Key
cd email-ai
# Configure environment variables
export GEMINI_URL=https://generativelanguage.googleapis.com/v1beta/models/gemini-pro:generateContent
export GEMINI_KEY=your-gemini-api-key
# Build and run
./mvnw clean install
./mvnw spring-boot:runBackend will be available at: http://localhost:8080
cd Frontend
# Install dependencies
npm install
# Start development server
npm run devFrontend will be available at: http://localhost:5173
- Open Chrome and navigate to
chrome://extensions/ - Enable "Developer mode"
- Click "Load unpacked" and select the
Email-extfolder - The extension will be available in Gmail
POST /api/email/generate
Content-Type: application/json
{
"prompt": "Write a professional follow-up email for a job interview",
"context": "Interview was yesterday for Software Engineer position"
}GET /actuator/healthspring.application.name=email-ai
# Gemini AI Configuration
gemini.api.url=${GEMINI_URL}
gemini.api.key=${GEMINI_KEY}
# Server Configuration (optional)
server.port=8080
# Actuator Configuration
management.endpoints.web.exposure.include=health,info- Development:
npm run dev(Vite dev server) - Production:
npm run build(Static build) - Linting:
npm run lint(ESLint)
- Permissions: ActiveTab, Storage
- Host Permissions: Gmail, Localhost API
- Content Scripts: Injected into Gmail pages
cd email-ai
# Run with hot reload
./mvnw spring-boot:run
# Run tests
./mvnw test
# Build for production
./mvnw clean packagecd Frontend
# Development with hot reload
npm run dev
# Build for production
npm run build
# Preview production build
npm run preview- Make changes to files in
Email-ext/ - Reload extension in
chrome://extensions/ - Test in Gmail
email-ai/
βββ src/main/java/com/email/ai/
β βββ EmailAiApplication.java # Main Spring Boot application
β βββ EmailgeneratorController.java # REST API controller
β βββ EmailgeneratorService.java # Business logic service
β βββ EmailRequest.java # Request DTO
βββ src/main/resources/
β βββ application.properties # Configuration
βββ pom.xml # Maven dependencies
Frontend/
βββ src/
β βββ App.jsx # Main React component
β βββ main.jsx # React entry point
β βββ assets/ # Static assets
βββ package.json # NPM dependencies
βββ vite.config.js # Vite configuration
Email-ext/
βββ manifest.json # Extension configuration
βββ content.js # Gmail integration script
βββ content.css # Extension styling
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Follow Java coding standards for backend
- Use ESLint configuration for frontend
- Test all components before submitting PR
- Update documentation for new features
This project is licensed under the MIT License - see the LICENSE file for details.
- Backend API: http://localhost:8080
- Frontend App: http://localhost:5173
- Health Check: http://localhost:8080/actuator/health
- Google Gemini AI: https://ai.google.dev/
For support and questions:
- Create an issue in the repository
- Check existing documentation
- Review API endpoints and configuration
Built with β€οΈ using Spring Boot, React, and Google Gemini AI