Skip to content

An app that helps you list tasks, set deadlines, and automatically reminds you at the best time based on urgency and your schedule patterns. It can also send a summary each morning.

Notifications You must be signed in to change notification settings

Robbieakoto/Taskflow

Repository files navigation

TaskFlow - Smart Daily Task Planner πŸ“‹

A modern, offline-first Progressive Web App for managing your daily tasks with smart reminders and beautiful UI.

✨ Key Features

πŸ“± Progressive Web App (PWA)

  • βœ… Install on mobile (Android/iOS) and desktop
  • βœ… Works completely offline
  • βœ… App-like experience with no browser UI
  • βœ… Add to home screen functionality
  • βœ… Auto-updates in the background

πŸ”” Smart Notifications

  • ⏰ Customizable task reminders
  • ⚠️ Overdue task alerts (30 min after due time)
  • πŸ”• Configurable notification settings
  • πŸ“³ Sound and vibration support
  • 🌐 Works on Android and iOS

πŸ“Š Task Management

  • ✏️ Create tasks with title, description, and due dates
  • 🎯 Set priority levels (Low, Medium, High)
  • 🏷️ Organize by categories (Work, Personal, Health, etc.)
  • ⏰ Smart reminder suggestions based on priority
  • βœ… Mark tasks as complete or postpone
  • πŸ—‘οΈ Delete tasks easily

πŸ“ˆ Analytics & Insights

  • πŸ“Š Weekly progress chart
  • πŸ“ˆ Completion rate tracking
  • 🎯 Task statistics
  • πŸ“… Task history view
  • πŸŽ‰ Motivational feedback

πŸ’Ύ Offline Support

  • πŸ’Ώ All data stored locally
  • πŸ”„ No internet required after installation
  • ⚑ Instant loading
  • πŸ”’ Your data stays on your device
  • 🌐 Works everywhere, even on planes

πŸš€ Quick Start

Development

# Install dependencies
npm install

# Start dev server
npm run dev

# Build for production
npm run build

# Preview production build
npm run preview

Installation as PWA

Android

  1. Open in Chrome/Edge
  2. Tap "Install App" button or browser menu
  3. Confirm installation
  4. Find on home screen

iOS

  1. Open in Safari (required)
  2. Tap Share β†’ Add to Home Screen
  3. Name the app
  4. Tap Add
  5. Open from home screen

πŸ“– See INSTALL.md for detailed installation instructions


🎯 How to Use

Creating a Task

  1. Tap the + button
  2. Enter task title and optional description
  3. Set due date and time
  4. Choose priority (High/Medium/Low)
  5. Select category
  6. Enable Smart Reminder for automatic reminder time
  7. Edit reminder time if needed
  8. Tap Create Task

Managing Tasks

  • Complete: Tap the circle icon
  • Postpone: Tap the clock icon
  • Delete: Tap the trash icon
  • Tasks are grouped into: Overdue, Today, Upcoming, Backlog

Viewing Progress

  • Analytics: Tap pie chart icon for stats
  • History: Tap calendar icon to see completed tasks
  • Settings: Tap gear icon to configure notifications

πŸ—οΈ Technical Stack

Frontend

  • React 18 with TypeScript
  • Vite for blazing fast builds
  • Framer Motion for smooth animations
  • React Router for navigation
  • date-fns for date handling
  • Lucide React for beautiful icons

PWA Configuration

  • vite-plugin-pwa with Workbox
  • Service Worker for offline support
  • Web App Manifest for installation
  • Local Storage for data persistence
  • Notification API for push notifications

Styling

  • CSS Variables for theming
  • Glassmorphism design pattern
  • Dark Mode native support
  • Mobile-first responsive design

πŸ“ Project Structure

src/
β”œβ”€β”€ components/          # Reusable UI components
β”‚   β”œβ”€β”€ BottomNav.tsx   # Bottom navigation bar
β”‚   β”œβ”€β”€ TaskCard.tsx     # Individual task display
β”‚   β”œβ”€β”€ CreateTaskModal.tsx  # Task creation modal
β”‚   β”œβ”€β”€ InstallPWA.tsx   # PWA install prompt
β”‚   └── Layout.tsx       # App layout wrapper
β”œβ”€β”€ pages/              # Route pages
β”‚   β”œβ”€β”€ Home.tsx        # Main dashboard
β”‚   β”œβ”€β”€ Stats.tsx       # Analytics page
β”‚   β”œβ”€β”€ History.tsx     # Completed tasks
β”‚   └── Settings.tsx    # App settings
β”œβ”€β”€ hooks/              # Custom React hooks
β”‚   β”œβ”€β”€ useTasks.ts     # Task CRUD operations
β”‚   └── useNotificationSettings.ts  # Notification config
β”œβ”€β”€ services/           # Business logic
β”‚   └── notificationService.ts  # Notification handling
β”œβ”€β”€ types/              # TypeScript types
β”‚   └── index.ts        # Shared types
β”œβ”€β”€ App.tsx             # Root component
β”œβ”€β”€ main.tsx            # Entry point
└── index.css           # Global styles

public/
β”œβ”€β”€ icon.svg            # App icon (SVG)
β”œβ”€β”€ pwa-192x192.png     # PWA icon (small)
β”œβ”€β”€ pwa-512x512.png     # PWA icon (large)
└── apple-touch-icon.png # iOS icon

πŸ’Ύ Data Storage

All data is stored locally on your device:

  • Tasks: localStorage (taskflow_tasks)
  • Notification Settings: localStorage (taskflow_notification_settings)
  • No external servers: Complete privacy
  • No tracking: Your data stays with you
  • Export/Import: Future feature planned

πŸ”” Notification System

How It Works

  • Checks for reminders every 10 seconds
  • Sends notification at scheduled time
  • Sends overdue alert 30 min after due time
  • Uses Service Worker for reliability
  • Works even when app is in background (on Android)

Settings

Access via Settings page:

  • βœ… Enable/disable all notifications
  • βœ… Toggle task reminders
  • βœ… Toggle overdue alerts
  • βœ… Control sound & vibration

πŸ“– See NOTIFICATIONS.md for detailed notification guide


🌐 Browser Support

Full Support

  • βœ… Chrome (Android, Desktop)
  • βœ… Edge (Android, Desktop)
  • βœ… Safari (iOS, macOS)
  • βœ… Brave (Android, Desktop)

Limited Support

  • ⚠️ Firefox (PWA features limited)
  • ❌ Internet Explorer (not supported)

πŸ› οΈ Development

Prerequisites

  • Node.js 18+ and npm
  • Modern browser

Environment

No environment variables needed - works out of the box!

Building

# Development (with hot reload)
npm run dev

# Production build
npm run build

# Preview production
npm run preview

# Type check
npx tsc --noEmit

πŸ“± PWA Features

Offline First

  • Service Worker caches all assets
  • App works without internet
  • Data persists locally
  • Fast loading times

Installable

  • Add to home screen on mobile
  • Desktop installation support
  • Native app-like experience
  • No app store required

Auto-updates

  • Service Worker checks for updates
  • Installs in background
  • Activate on next launch
  • No manual updates needed

🎨 Design Philosophy

  • Mobile-first: Optimized for phone usage
  • Dark Mode: Easy on the eyes
  • Glassmorphism: Modern, premium feel
  • Animations: Smooth, delightful interactions
  • Accessibility: Clear hierarchy and contrast

πŸ”’ Privacy & Security

  • βœ… No data collection
  • βœ… No analytics
  • βœ… No external requests
  • βœ… Everything stored locally
  • βœ… Open source (you can verify)

🚧 Roadmap

Future features planned:

  • Task categories customization
  • Recurring tasks
  • Task templates
  • Data export/import
  • Multiple themes
  • Widget support (Android)
  • Siri shortcuts (iOS)
  • Desktop notifications
  • Task sharing

πŸ“„ License

MIT License - feel free to use and modify!


🀝 Contributing

Contributions welcome! Please:

  1. Fork the repository
  2. Create feature branch
  3. Make your changes
  4. Test thoroughly
  5. Submit pull request

πŸ“ž Support

Having issues? Check:


Built with ❀️ using React, TypeScript, and PWA technologies

Stay organized. Stay productive. TaskFlow.

About

An app that helps you list tasks, set deadlines, and automatically reminds you at the best time based on urgency and your schedule patterns. It can also send a summary each morning.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published