For Ignition Hackathon
InboxGenius is an AI-powered mail client designed to revolutionize how you manage your email. By integrating advanced AI capabilities with the power of the Gemini API, Flask, and MongoDB, InboxGenius offers smart, efficient, and personalized email management solutions.
- AI-Powered Email Management: Leverages AI to categorize, prioritize, and summarize emails, helping you stay organized and focused.
- Smart Search: Uses a MongoDB vector database to enhance search capabilities, allowing for context-aware searches that deliver more accurate results.
- Personalized Inbox: Adapts to your email habits, providing personalized suggestions and automations to streamline your inbox management.
- Seamless Integration: Built on Flask, making it lightweight, scalable, and easy to integrate with other web services.
- Gemini API: Utilized for AI capabilities, including email classification, sentiment analysis, and natural language processing.
- Flask: Serves as the web framework for the application, enabling a simple yet powerful backend.
- MongoDB: A NoSQL database that stores and manages email data, enhanced with vector embeddings to power advanced search features.
Python 3.11 or higher is required to run the application. https://www.python.org/
Gemini API Key (Sign up at https://ai.google.dev/gemini-api)
Or you can use the following API, which is used for demonstration purposes for ignition hackathon: (Please do not use this API key for production purposes, this may be revoked at any time) This API key may expire since many people are using it.
Genimi API Key: AIzaSyCrhFUQc9gf_QottXG9A_goXzV07HRZWT8
-
Clone the repository:
git clone https://github.com/JunzhL/InboxGenius.git
-
Navigate to the project directory:
cd InboxGenius -
Create and activate a virtual environment:
python3 -m venv venv source venv/bin/activate # On Windows use `venv\Scripts\activate`
-
Install the required dependencies:
pip install -r requirements.txt
-
Set up MongoDB: Ensure that you have a running instance of MongoDB. You can either set it up locally or use a cloud-based solution like MongoDB Atlas.
-
Configure Environment Variables: Create config
.envfile in the root directory and add the following variables:MONGO_URI = "mongodb+srv://Admin:rmkZXtzCUtJdHg2V@cluster0.xt7zv.mongodb.net/?retryWrites=true&w=majority&appName=Cluster0" DATABASE = "Ignitionhackathon" TABLE = "emails" GOOGLE_API_KEY=YOUR_GEMINI_API_KEY # or use the provided API key FLASK_RUN_PORT=PORT_NUMBER FLASK_RUN_HOST="127.0.0.1"
(You can use the following configuration for ignition hackathon demonstration purposes)
# Example .env file MONGO_URI = "mongodb+srv://Admin:rmkZXtzCUtJdHg2V@cluster0.xt7zv.mongodb.net/?retryWrites=true&w=majority&appName=Cluster0" DATABASE = "Ignitionhackathon" TABLE = "emails" GOOGLE_API_KEY= "AIzaSyCrhFUQc9gf_QottXG9A_goXzV07HRZWT8" FLASK_RUN_PORT= 8000 FLASK_RUN_HOST="127.0.0.1"
-
Run the Flask development server:
flask run
-
Access InboxGenius: Open your browser and navigate to
http://127.0.0.1:8000/. (Or the port number you specified in the.envfile) -
Login: Use the following credentials to log in:
- Email:
demo@hack.com - Password:
ignition
- Email:
- Inbox Management: View and manage your emails through the web interface. Use the smart search feature to find emails based on context, not just keywords. More precise input leads to better results.
- AI Suggestions: Enable or customize AI suggestions for better email prioritization and automation.
- AI Classification: Use the AI-powered email classification feature to categorize emails based on content and context.
- Custom Automation: Set up rules and automation to further streamline your inbox based on your workflow.
- Generate Email: Use the "Generate Email" button to create a random email for testing purposes. (This feature later will connect to the email server to send the email)
We welcome contributions! Please feel free to submit a pull request or open an issue to discuss potential improvements or features.
This project is licensed under the MIT License - see the LICENSE file for details.
For any questions or support, please open an issue.
