ProdigyAI is a state-of-the-art productivity assistant that combines the power of natural language processing, machine learning, and neural networks to create an intelligent companion that adapts to your workflow. More than just a task manager, ProdigyAI learns from your habits, anticipates your needs, and provides personalized guidance to boost your productivity and well-being.
- Conversational Intelligence: Interact naturally through text or voice with an AI that understands context, nuance, and intent
- Smart Task Management: Automatically prioritize, categorize, and schedule tasks based on your work patterns and preferences
- Adaptive Scheduling: Optimize your calendar with AI-powered scheduling that respects your energy levels and focus times
- Intelligent Email Handling: Filter, summarize, and draft emails with contextual awareness of your communication style
- Focus Optimization: Scientifically designed focus sessions with personalized recommendations for maximum productivity
- Habit Formation System: Data-driven habit tracking with personalized reinforcement strategies based on behavioral science
- Dual AI Architecture: Hybrid JavaScript/Python AI system combining lightweight NLP for responsiveness with powerful machine learning for advanced features
- Natural Language Processing: Understand and respond to user commands in natural language
- Task Management: Add, prioritize, and remind users of tasks
- Calendar Integration: Sync with Google Calendar or Outlook to schedule meetings
- Email Automation: Draft emails, categorize incoming messages, and suggest responses
- Focus Mode: Monitor user activity and suggest breaks or focus periods
- Habit Tracking: Encourage users to build healthy habits (e.g., drinking water, exercising)
This application leverages Natural Language Processing (NLP) to provide an intuitive conversational interface. The AI assistant functions as a personal productivity coach that understands context and user habits.
- Intent Recognition: Identifies the user's goal from natural language input
- Entity Extraction: Pulls out key information like dates, names, and task descriptions
- Contextual Understanding: Maintains conversation context for follow-up commands
- Action Execution: Translates understood commands into system actions
- Conversational Response: Generates human-like responses with appropriate information
-
Task Management
- "Add task finish report by tomorrow"
- "Create a new task to call John"
- "Remind me to buy groceries at 5pm"
- "Show me all my high priority tasks"
- "What tasks are due today?"
-
Habit Tracking
- "Create a habit to drink water"
- "Track my meditation habit"
- "Log 30 minutes of exercise for today"
- "Show my habit progress for this week"
- "Which habits am I currently tracking?"
-
Focus Mode
- "Start a focus session for 25 minutes"
- "Begin pomodoro timer"
- "End current focus session"
- "How long have I been focusing?"
-
Calendar & Scheduling
- "Schedule a meeting with Sarah tomorrow at 2pm"
- "Add dentist appointment on Friday at 10am"
- "Show my calendar for next week"
- "What meetings do I have today?"
-
Email Management
- "Draft an email to boss@company.com about project status"
- "Check my recent emails"
- "Show unread messages"
The AI system uses:
- Node-NLP Library: For intent classification and entity extraction
- Custom Training Data: Domain-specific examples for productivity tasks
- Confidence Scoring: Evaluates certainty of understanding before taking actions
- Intent Handlers: JavaScript functions that process specific user intents
- Fallback Mechanisms: Graceful handling of misunderstood commands
The assistant supports voice commands through the Web Speech API, allowing users to:
- Activate the microphone for hands-free operation
- Convert spoken language to text commands
- Receive audio feedback for key notifications
- Command Patterns: Identifies common user command patterns
- Suggestion Refinement: Improves suggestions based on user habits
- Vocabulary Expansion: Adds new terminology based on user interaction
- Integration with larger language models for more complex understanding
- Sentiment analysis to detect user stress levels
- Predictive task creation based on historical patterns
- Multi-language support for global users
- Advanced context tracking across conversation sessions
The application includes a Python-based AI microservice that provides enhanced natural language processing and machine learning capabilities:
- Advanced NLP Analysis using spaCy and Hugging Face transformers
- Named Entity Recognition with custom domain-specific entities
- Sentiment Analysis with emotion detection and productivity insights
- Task Recommendation using machine learning and user behavior patterns
- Text Completion for command prediction and suggestions
The Python service communicates with the Node.js backend through a REST API, providing seamless integration between the two technologies.
- Flask: Lightweight web framework for the API
- spaCy: Industrial-strength NLP library
- Transformers: State-of-the-art NLP models
- scikit-learn: Machine learning library
- pandas: Data analysis and manipulation
cd python-ai-service
pip install -r requirements.txt
python -m spacy download en_core_web_md
python app.pyThe service will run on port 5001 by default and will be automatically used by the Node.js backend when available.
- React: Modern, component-based UI library
- Material-UI: React component library implementing Google's Material Design
- Redux: State management for the application
- React Router: Navigation and routing solution
- Socket.io Client: Real-time communication with backend
- Chart.js: Data visualization for habit tracking and productivity analytics
- Node.js: Core runtime environment
- Express: Web application framework
- JWT: Authentication and secure API access
- Socket.io: Real-time bidirectional communication
- Flask: Lightweight web framework for Python
- spaCy: Industrial-strength natural language processing
- Transformers (Hugging Face): State-of-the-art NLP models
- scikit-learn: Machine learning library for task prediction
- pandas: Data analysis and manipulation tool
- MySQL: Relational database for structured data
- Sequelize ORM: Object-relational mapping for database interactions
- SQLAlchemy (Python service): SQL toolkit and ORM for Python
- node-nlp: Core NLP capabilities in JavaScript
- Web Speech API: Speech recognition and synthesis
- Custom intent recognition: Domain-specific language understanding
- Sentiment analysis: Emotion detection in user interactions
- Google Calendar API: Calendar synchronization
- Microsoft Graph API: Outlook calendar and email integration
- Gmail API: Email management
- Docker (optional): Containerization for deployment
- Git & GitHub: Version control and collaboration
- Dotenv: Environment configuration management
- Nodemon: Development server with auto-restart capability
- Clone the repository
- Install server dependencies:
npm install - Install client dependencies:
npm run install-client - Set up a MySQL database and create a database named
productivity_assistant - Create a
.envfile in the root directory with the following variables:NODE_ENV=development PORT=5000 JWT_SECRET=your_jwt_secret JWT_EXPIRE=30d # MySQL Database Configuration DB_HOST=localhost DB_PORT=3306 DB_NAME=productivity_assistant DB_USER=root DB_PASSWORD=your_password GOOGLE_CLIENT_ID=your_google_client_id GOOGLE_CLIENT_SECRET=your_google_client_secret EMAIL_SERVICE=your_email_service EMAIL_USER=your_email_user EMAIL_PASSWORD=your_email_password - Run both the server and client:
npm run dev
The application uses MySQL with Sequelize ORM. The main tables are:
- Users: Store user information and settings
- Tasks: Track user tasks with priorities and due dates
- Habits: Track habits the user wants to build
- HabitProgress: Log daily progress for habits
After setup, the application will be available at http://localhost:3000
You can interact with the assistant by:
- Typing natural language commands in the command bar
- Using the microphone button for voice commands
- Accessing specific features through the UI components
MIT