Skip to content

Subbaiswe/TaskReminderAgent

Repository files navigation

Task Reminder Agent 📋✅

An intelligent task and reminder management application that helps you organize your daily life. Talk to it in plain English — it creates tasks, sets reminders, delegates tasks to family members, and manages shopping lists.

What Does This App Do?

Imagine having a personal assistant that:

  • Remembers all your tasks (take medicines, pay bills, attend meetings)
  • Reminds you (and your family) until things get done
  • Keeps grocery and shopping lists organized
  • Works on your phone, laptop, or tablet — no app download needed
  • Understands plain English — just type what you need

Example Usage

You: "Remind dad to take diabetic medicines at 11am and heart medicines at 2pm"
Agent: ✅ Created task with reminders set for 11:00 AM and 2:00 PM

You: "Create a grocery list for the supermarket"
Agent: 🛒 What items would you like to add?

You: "Remind son about basketball training at 5pm at the sports center"
Agent: ✅ Created delegated task for son with location details

Architecture (How It Works)

┌─────────────────────────────────────────────────────────┐
│                    YOU (Browser/Phone)                    │
│                                                          │
│   Open website → Type a message → Get response + reminders│
└──────────────────────────┬──────────────────────────────┘
                           │
                           │ Your message goes to...
                           ▼
┌─────────────────────────────────────────────────────────┐
│                 FRONTEND (React Web App)                  │
│                                                          │
│   • Chat interface (like WhatsApp/iMessage)              │
│   • Shows your tasks and reminders                       │
│   • Works on any device (phone, laptop, tablet)          │
│   • Can be "installed" on your phone home screen (PWA)   │
│                                                          │
│   Tech: React + Vite + Tailwind CSS                      │
└──────────────────────────┬──────────────────────────────┘
                           │
                           │ Sends your message to...
                           ▼
┌─────────────────────────────────────────────────────────┐
│                 BACKEND (Python Server)                   │
│                                                          │
│   • Receives your message                                │
│   • Sends it to the AI brain (Amazon Bedrock / Claude)   │
│   • AI understands what you want and calls the right tool│
│   • Returns the response back to you                     │
│                                                          │
│   Tech: FastAPI + Strands Agents SDK                     │
└──────────────────────────┬──────────────────────────────┘
                           │
                           │ AI decides which tool to use...
                           ▼
┌─────────────────────────────────────────────────────────┐
│                    TOOLS (Actions)                        │
│                                                          │
│   📝 create_task      → Makes a new task                 │
│   ✏️  update_task      → Changes task details             │
│   ✅ mark_complete    → Marks task as done               │
│   ⏰ set_reminder     → Schedules a reminder             │
│   👥 delegate_task    → Assigns task to someone else     │
│   🛒 create_list      → Makes a grocery/shopping list    │
│   📋 list_tasks       → Shows all your tasks             │
│                                                          │
└──────────────────────────┬──────────────────────────────┘
                           │
                           │ Data stored in...
                           ▼
┌─────────────────────────────────────────────────────────┐
│              STORAGE (Currently In-Memory)                │
│                                                          │
│   For prototype: data lives in server memory             │
│   For production: Amazon DynamoDB (cloud database)       │
│                                                          │
└─────────────────────────────────────────────────────────┘

Simple Explanation

  1. You type a message in the chat (like "remind me to buy milk at 5pm")
  2. Frontend sends your message to the backend server
  3. Backend sends it to Claude AI (Amazon Bedrock) which understands English
  4. Claude figures out you want to create a task and calls the create_task tool
  5. Tool creates the task and schedules a reminder
  6. Response flows back to you: "✅ Task created: Buy milk at 5:00 PM"

Software Requirements

To Run This Project You Need:

Software Version What It Is Download Link
Python 3.11 or higher Programming language for the backend python.org
Node.js 18 or higher JavaScript runtime for the frontend nodejs.org
npm Comes with Node.js Package manager for frontend libraries Included with Node.js
pip Comes with Python Package manager for Python libraries Included with Python
Git Any recent version Version control (to download this code) git-scm.com
AWS Account With Bedrock access Cloud AI service (the "brain") aws.amazon.com
Web Browser Chrome, Edge, Firefox, or Safari To use the app You already have one!

AWS Services Used (All Free Tier)

Service What It Does Cost
Amazon Bedrock (Claude) AI that understands your messages ~$2-5/month for personal use
Amazon DynamoDB Stores your tasks (future) Free (25GB free forever)
Amazon Cognito User login/signup (future) Free (50K users free forever)
Amazon SNS Push notifications (future) Free (1M pushes/month free)

Installation Guide (Step by Step)

Step 1: Download the Code

git clone https://github.com/Subbaiswe/TaskReminderAgent.git
cd TaskReminderAgent

Step 2: Set Up the Backend

# Go to the backend folder
cd backend

# Install Python libraries
pip install -r requirements.txt

# Set up your AWS credentials (ask your admin or use aws configure)
# Edit the .env file with your AWS region and model ID

Step 3: Set Up the Frontend

# Go to the frontend folder (from project root)
cd frontend

# Install JavaScript libraries
npm install

Step 4: Configure AWS Credentials

Make sure your AWS credentials are configured. Run:

aws configure

Enter your:

  • AWS Access Key ID
  • AWS Secret Access Key
  • Default region (us-east-1)
  • Output format (json)

Step 5: Start the Backend Server

cd backend
uvicorn app:app --reload --host 0.0.0.0 --port 8080

You should see: Uvicorn running on http://0.0.0.0:8080

Step 6: Start the Frontend (in a new terminal)

cd frontend
npm run dev

You should see: Local: http://localhost:3000/

Step 7: Open the App

Open your browser and go to: http://localhost:3000

You'll see the Task Reminder Agent chat interface. Start typing!


Project Structure

TaskReminderAgent/
├── backend/                    # Server-side code (Python)
│   ├── app.py                 # Main server file
│   ├── tools/                 # What the AI can do
│   │   ├── task_tools.py      # Create/update/delete tasks
│   │   ├── reminder_tools.py  # Set/snooze reminders
│   │   ├── delegation_tools.py # Assign tasks to others
│   │   └── list_tools.py     # Grocery/shopping lists
│   ├── streaming/             # Real-time message streaming
│   ├── db/                    # Database connection
│   ├── .env                   # Configuration (AWS keys, model ID)
│   └── requirements.txt       # Python dependencies list
│
├── frontend/                   # Client-side code (React)
│   ├── src/
│   │   ├── App.jsx            # Main app component
│   │   ├── components/        # UI pieces (chat bubbles, input box)
│   │   └── hooks/             # Logic for streaming messages
│   ├── public/                # Static files (icons, manifest)
│   ├── .env                   # Frontend configuration
│   └── package.json           # JavaScript dependencies list
│
├── .kiro/specs/               # Project planning documents
│   └── task-reminder-agent/
│       ├── requirements.md    # What the app should do
│       ├── design.md          # How it's built (technical)
│       └── tasks.md           # Implementation checklist
│
├── Makefile                   # Shortcut commands
└── README.md                  # This file!

Features (Current Prototype)

  • Natural language chat interface
  • Create tasks with detailed metadata (time, names, amounts, addresses)
  • Set reminders with follow-up intervals
  • Delegate tasks to family members
  • Create grocery/purchase lists
  • Mark tasks as complete
  • List and filter tasks
  • Responsive design (works on mobile)
  • PWA support (installable on phone)

Planned Features

  • Push notifications (browser-based, free)
  • WhatsApp reminders for delegated tasks
  • Persistent storage (DynamoDB)
  • User authentication (login/signup)
  • Real-time sync across devices
  • Recurring tasks (daily/weekly/monthly)
  • Task history and analytics

Troubleshooting

Problem Solution
"ExpiredTokenException" Your AWS credentials expired. Get fresh ones and run aws configure again
"AccessDeniedException" Check your AWS region and model ID in backend/.env
Frontend shows "Error: Failed to fetch" Make sure the backend is running on port 8080
Port already in use Change the port in the command: --port 8081

License

This project is for personal/educational use.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors