Skip to content

danujaadikari/TaskMate

Repository files navigation

🧠 TaskMate – AI-Powered Personal Task Scheduler

TaskMate is an intelligent task scheduling and productivity assistant that helps users manage their daily activities efficiently using AI-powered automation and Google Calendar integration.

With TaskMate, users can add tasks using natural language (e.g., "Add a meeting with John tomorrow at 3 PM"), and the system automatically categorizes, prioritizes, and schedules them in the most productive way.


πŸš€ Features

  • 🧠 AI Task Assistant: Understands natural language and provides smart scheduling suggestions.
  • πŸ“… Google Calendar Integration: Two-way sync with Google Calendar to keep events updated everywhere.
  • ⏰ Smart Reminders: Adaptive reminders that learn user behavior and optimize timing.
  • πŸ“Š Productivity Insights: Visual analytics for completed tasks, focus hours, and productivity trends.
  • πŸ”’ Data Security: Encrypted user data with secure cloud backup.

🧰 Tech Stack

  • Frontend: React Native (Expo)
  • Backend: Node.js + Express.js
  • Database: MongoDB (Atlas)
  • Authentication: Firebase / Google OAuth
  • Integration: Google Calendar API

πŸ“ Project Structure

TaskMate/
β”œβ”€β”€ backend/                    # Node.js Backend API
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ models/            # MongoDB Models
β”‚   β”‚   β”œβ”€β”€ routes/            # API Routes
β”‚   β”‚   β”œβ”€β”€ middleware/        # Auth & Error Handling
β”‚   β”‚   β”œβ”€β”€ utils/             # Helper Functions
β”‚   β”‚   └── server.js          # Entry Point
β”‚   β”œβ”€β”€ package.json
β”‚   └── .env.example
β”‚
β”œβ”€β”€ frontend/                   # React Native App
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ screens/           # App Screens
β”‚   β”‚   β”œβ”€β”€ components/        # Reusable Components
β”‚   β”‚   β”œβ”€β”€ navigation/        # Navigation Setup
β”‚   β”‚   β”œβ”€β”€ context/           # State Management
β”‚   β”‚   └── utils/             # Helper Functions
β”‚   β”œβ”€β”€ App.js
β”‚   β”œβ”€β”€ package.json
β”‚   └── app.json
β”‚
β”œβ”€β”€ docs/                       # Documentation
└── README.md

πŸš€ Getting Started

Prerequisites

  • Node.js (v18+)
  • npm or yarn
  • MongoDB (local or Atlas)
  • Expo CLI (npm install -g expo-cli)

Backend Setup

  1. Navigate to backend directory:

    cd backend
  2. Install dependencies:

    npm install
  3. Configure environment variables:

    cp .env.example .env

    Edit .env and add your configuration:

    • MongoDB connection string
    • JWT secret
    • Firebase credentials
    • Google Calendar API keys
    • OpenAI API key (for AI features)
  4. Start the server:

    # Development mode with auto-reload
    npm run dev
    
    # Production mode
    npm start

    Server will run on http://localhost:5000

Frontend Setup

  1. Navigate to frontend directory:

    cd frontend
  2. Install dependencies:

    npm install
  3. Start the development server:

    # Start Expo
    npm start
    
    # Run on Android
    npm run android
    
    # Run on iOS
    npm run ios
    
    # Run on Web
    npm run web

πŸ”§ API Endpoints

Authentication

  • POST /api/auth/register - Register new user
  • POST /api/auth/login - Login user
  • POST /api/auth/google - Google OAuth login

Tasks

  • GET /api/tasks - Get all tasks
  • POST /api/tasks - Create new task
  • PUT /api/tasks/:id - Update task
  • DELETE /api/tasks/:id - Delete task

AI Features

  • POST /api/ai/parse-task - Parse natural language input
  • POST /api/ai/suggest-schedule - Get AI scheduling suggestions
  • POST /api/ai/optimize-day - Optimize daily schedule

Analytics

  • GET /api/analytics/overview - Get productivity overview
  • GET /api/analytics/trends - Get productivity trends

Calendar

  • GET /api/calendar/events - Get Google Calendar events
  • POST /api/calendar/sync - Sync with Google Calendar

See API Documentation for detailed information.


πŸ” Environment Variables

Backend (.env)

PORT=5000
NODE_ENV=development
MONGODB_URI=your_mongodb_connection_string
JWT_SECRET=your_jwt_secret
FIREBASE_PROJECT_ID=your_firebase_project_id
GOOGLE_CLIENT_ID=your_google_client_id
OPENAI_API_KEY=your_openai_api_key

πŸ“± Features Implementation Status

  • βœ… User Authentication (Email/Password)
  • βœ… Task CRUD Operations
  • βœ… Productivity Analytics
  • βœ… User Profile Management
  • 🚧 Google OAuth Integration (In Progress)
  • 🚧 AI Task Parsing (In Progress)
  • 🚧 Google Calendar Sync (In Progress)
  • 🚧 Smart Reminders (Planned)
  • 🚧 Voice Input (Planned)

πŸ’‘ Future Enhancements

  • πŸŽ™οΈ Voice-based task creation
  • 🀝 Team collaboration mode
  • 🌐 Web dashboard for cross-platform access
  • πŸ”” Deep integration with Slack / Notion

πŸ§ͺ Testing

# Backend tests
cd backend
npm test

# Frontend tests
cd frontend
npm test

πŸ“ˆ Why TaskMate?

TaskMate isn't just a scheduler β€” it's your personal AI productivity coach, designed to help you focus on what matters most. Whether you're a student, freelancer, or professional, TaskMate adapts to your lifestyle and keeps you on track effortlessly.


🀝 Contributing

Contributions are welcome! Please read CONTRIBUTING.md for details on our code of conduct and the process for submitting pull requests.


πŸ“„ License

This project is licensed under the MIT License.



πŸ‘¨β€πŸ’» Developer Information

Danuja Adikari
πŸ“§ Email : danujaadikari2001@gmail.com
πŸ’Ό LinkedIn: linkedin.com/in/danuja-adikari


About

TaskMate is an intelligent task scheduling and productivity assistant that helps users manage their daily activities efficiently using AI-powered automation and Google Calendar integration.

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors