Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 5 additions & 2 deletions .github/workflows/python-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -50,12 +50,15 @@ jobs:
${{ runner.os }}-pip-${{ matrix.python-version }}-
${{ runner.os }}-pip-

- name: Upgrade pip, setuptools, wheel
run: |
python -m pip install --upgrade pip setuptools wheel

- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install flake8 pytest pytest-cov black isort mypy
# Install project dependencies if requirements.txt exists
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
if [ -f requirements.txt ]; then pip install --prefer-binary -r requirements.txt; fi

- name: Code formatting check with Black
run: |
Expand Down
132 changes: 132 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,132 @@
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class

# C extensions
*.so

# Distribution / packaging
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST

# PyInstaller
# Usually these files are written by a python script from a template
# before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec

# Installer logs
pip-log.txt
pip-delete-this-directory.txt

# Unit test / coverage reports
htmlcov/
.tox/
.nox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
.hypothesis/
.pytest_cache/

# Translations
*.mo
*.pot

# Django stuff:
*.log
local_settings.py
db.sqlite3

# Flask stuff:
instance/
.webassets-cache

# Scrapy stuff:
.scrapy

# Sphinx documentation
docs/_build/

# PyBuilder
target/

# Jupyter Notebook
.ipynb_checkpoints

# IPython
profile_default/
ipython_config.py

# pyenv
.python-version

# celery beat schedule file
celerybeat-schedule

# SageMath parsed files
*.sage.py

# Environments
.env
.venv
env/
venv/
ENV/
env.bak/
venv.bak/

# Spyder project settings
.spyderproject
.spyproject

# Rope project settings
.ropeproject

# mkdocs documentation
/site

# mypy
.mypy_cache/
.dmypy.json
dmypy.json

# Pyre type checker
.pyre/

# IDE
.vscode/
.idea/
*.swp
*.swo
*~

# OS
.DS_Store
Thumbs.db

# Project specific
config.py
*.mp3
*.wav
*.avi
*.mp4
2 changes: 0 additions & 2 deletions Calculatenumbers.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,3 @@
"""

from features.utilities.Calculatenumbers import * # noqa: F401,F403


14 changes: 6 additions & 8 deletions GreetMe.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,16 +7,17 @@
- Uses this module's `datetime.datetime` so tests can patch it.
"""

import pyttsx3
import datetime

import pyttsx3


def Speak(audio: str) -> None:
engine = pyttsx3.init('sapi5')
voices = engine.getProperty('voices')
engine = pyttsx3.init("sapi5")
voices = engine.getProperty("voices")
if voices:
engine.setProperty('voice', voices[0].id)
engine.setProperty('rate', 185)
engine.setProperty("voice", voices[0].id)
engine.setProperty("rate", 185)
engine.say(audio)
engine.runAndWait()

Expand All @@ -30,6 +31,3 @@ def greetMe() -> None:
else:
Speak("Good Evening, Master arpit.")
Speak("I am Jarvis. How can I help you?")



2 changes: 0 additions & 2 deletions Jarvismain.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,3 @@
"""

from core.Jarvismain import * # noqa: F401,F403


190 changes: 190 additions & 0 deletions TASK_MANAGEMENT_GUIDE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,190 @@
# Jarvis Task Management System

## Overview
The enhanced Task Management System for Jarvis provides comprehensive voice-controlled task organization, tracking, and productivity features. Users can create, manage, and track tasks using natural language voice commands.

## Features

### ✅ Core Task Management
- **Add Tasks**: Create tasks with descriptions, deadlines, and priorities
- **Complete Tasks**: Mark tasks as completed via voice commands
- **Delete Tasks**: Remove tasks from the system
- **Search Tasks**: Find tasks by keywords
- **List Tasks**: View tasks by time period (today, week, all)

### ✅ Advanced Organization
- **Priority Levels**: High, Normal, Low priority tasks
- **Categories**: Organize tasks into custom categories
- **Deadlines**: Natural language deadline parsing
- **Statistics**: Track productivity and completion rates

### ✅ Smart Features
- **Overdue Detection**: Automatically identify overdue tasks
- **Reminders**: Set custom reminders for tasks
- **Daily Summaries**: Get comprehensive daily task overviews
- **Help System**: Built-in help for all commands

## Voice Commands

### Adding Tasks
```
"Add task: [description]"
"Add urgent task: [description]"
"Create task: [description] by [deadline]"
"New task: [description] at [time]"
```

**Examples:**
- "Add task: Buy groceries"
- "Add urgent task: Call mom by 5 PM today"
- "Create task: Submit assignment by Friday"
- "New task: Doctor appointment at 2:30 PM tomorrow"

### Managing Tasks
```
"What are my tasks today?"
"Show today's tasks"
"What are my tasks this week?"
"Show this week's tasks"
"List all tasks"
"Show overdue tasks"
```

### Completing Tasks
```
"Mark task completed: [task name]"
"Complete task: [task name]"
"Task completed: [task name]"
"Done with task: [task name]"
"Finish task: [task name]"
```

### Task Organization
```
"Set task priority: [task name] to [high/normal/low]"
"Add task category: [task name] to [category]"
"Show tasks by category: [category]"
"List categories"
```

### Searching and Statistics
```
"Search tasks: [search term]"
"Find task: [search term]"
"Task statistics"
"Task stats"
"Daily summary"
"Task summary"
```

### Deleting Tasks
```
"Delete task: [task name]"
```

### Reminders
```
"Set task reminder: [task name] in [X] minutes"
"What tasks need reminders?"
"Tasks needing reminders"
```

### Help
```
"Task help"
"Help with tasks"
"Task management help"
"How to use tasks"
```

## Deadline Formats

The system supports various natural language deadline formats:

### Time References
- "today", "tomorrow", "day after tomorrow"
- "this week", "next week", "this weekend"
- "next month", "next year"

### Weekdays
- "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"
- "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"

### Specific Times
- "5 PM", "2:30 AM", "8:00 PM"
- "17:30", "14:30" (24-hour format)
- "8am", "5pm"

### Date Formats
- "12/25", "25/12" (MM/DD or DD/MM)
- "12-25", "25-12" (MM-DD or DD-MM)
- "12.25", "25.12" (MM.DD or DD.MM)

### Combined Examples
- "by 5 PM today"
- "before Friday"
- "at 2:30 PM tomorrow"
- "on Monday"
- "next week"
- "this weekend"

## Data Storage

Tasks are stored in JSON format in `data/tasks.json` with the following structure:

```json
{
"id": 1234567890123,
"title": "Task description",
"priority": "high|normal|low",
"deadline": "2024-01-15T17:00:00",
"completed": false,
"created_at": "2024-01-15T10:00:00",
"completed_at": null,
"category": "work",
"reminder_set": true,
"reminder_minutes": 30
}
```

## Integration

The task management system integrates seamlessly with:
- **Voice Recognition**: All commands work through speech
- **Text-to-Speech**: Responses are spoken back to the user
- **Reminder System**: Tasks can trigger automatic reminders
- **Statistics Tracking**: Productivity insights and completion rates

## Error Handling

The system includes comprehensive error handling:
- Input validation for all commands
- Graceful handling of missing tasks
- Clear error messages via voice
- Fallback suggestions for unclear commands

## Getting Started

1. **Wake up Jarvis**: Say "Wake up" to start the system
2. **Add your first task**: "Add task: [description]"
3. **Check your tasks**: "What are my tasks today?"
4. **Get help**: "Task help" for a complete command list

## Tips for Best Results

1. **Be specific**: Use clear, descriptive task names
2. **Set deadlines**: Include time references for better organization
3. **Use categories**: Group related tasks together
4. **Check regularly**: Use daily summaries to stay on track
5. **Complete tasks**: Mark tasks as done to maintain accurate statistics

## Troubleshooting

- **Task not found**: Check the exact spelling of the task name
- **Deadline not recognized**: Try simpler time formats like "5 PM today"
- **No response**: Ensure Jarvis is listening and try again
- **Help needed**: Say "Task help" for command assistance

---

The Task Management System transforms Jarvis into a powerful productivity assistant, helping users stay organized and on track with their daily tasks and goals.
Binary file modified __pycache__/Calculatenumbers.cpython-313.pyc
Binary file not shown.
Binary file modified __pycache__/GreetMe.cpython-313.pyc
Binary file not shown.
Loading
Loading