A beautifully crafted, production-ready task management application that combines modern web technologies with an intuitive user experience.
| π« No Ads Zero advertisements, ever |
π 100% Private Your data stays yours |
βοΈ Full Control Complete security control |
π‘οΈ No Tracking No analytics or spying |
π± Install Anywhere PC, Laptop, Mobile, Use Everywhere |
This isn't just another to-do appβit's a showcase of modern web development best practices:
- β‘ Blazing Fast - Built with Vite 7 for instant updates and optimal performance
- π± True PWA - Install on any device, works offline like a native app
- π¨ Premium UI/UX - Thoughtfully designed with smooth animations and delightful interactions
- π Enterprise-Grade Security - Multi-layer authentication with Firestore security rules
- π Offline-First Architecture - Full CRUD operations without internet connection
- π Adaptive Theming - Sophisticated light and dark modes that match your style
- βΏ Accessibility First - WCAG compliant with keyboard navigation and screen reader support
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
- Professional Filtering System - Toggle between "All Tasks" and "By Date" views
- All Tasks (Default): Clean grid view without grouping
- By Date: Smart grouping with "Today", "Yesterday", and full date labels
- Subtasks / Checklist - Break down tasks into smaller actionable items with checkboxes
- Deadline Tracking - Visual indicators for overdue, urgent, and upcoming tasks
- Quick Statistics - Real-time overview of pending and completed tasks
- One-Click Actions - Mark complete, edit, or delete with smooth animations
- Detailed Task View - Rich descriptions with formatted dates and times
- Firebase Authentication - Industry-standard email/password login
- Security Key Protection - Extra layer with Firestore-based access control
- Protected Routes - Automatic redirect for unauthorized access
- Environment Variables - Secure credential management
- Input Validation - Client-side and server-side data verification
Experience seamless productivity, anywhere, anytime!
- π± Full Offline Mode - Create, edit, and delete tasks without internet
- πΎ Dual-Layer Caching - Firestore IndexedDB + localStorage for reliability
- π Auto-Sync - Changes sync automatically when connection restores
- π¨ Status Indicators - Clear visual feedback for online/offline state
- β‘ Instant Updates - Optimistic UI for immediate feedback
- π‘οΈ Zero Data Loss - Robust error handling ensures your data is safe
- Modern UI Design - Clean, minimalist interface with thoughtful spacing
- Smooth Animations - Powered by Framer Motion for buttery transitions
- Theme System:
- Light Mode: Fresh green palette for energetic daytime work
- Dark Mode: Professional black theme for comfortable night use
- System Auto-detect: Matches your OS preference automatically
- Responsive Layout - Adapts beautifully from phone to ultrawide displays
- Toast Notifications - Instant feedback for every action
- Confirmation Dialogs - Prevents accidental deletions
- One-Click Install - Add to home screen on any device
- Standalone Mode - Runs in its own window without browser chrome
- Offline-First - All features work without internet
- Fast Loading - Service worker caches key assets
- Auto Updates - Always get the latest features seamlessly
- Mobile Optimized - Bottom navigation for easy thumb access
| Technology | Purpose |
|---|---|
| React | UI framework with latest features |
| Vite | Lightning-fast build tool |
| Firebase | Authentication & Firestore database |
| Tailwind CSS | Utility-first styling |
| Framer Motion | Smooth animations |
| React Router | Client-side routing |
- pnpm - Fast, disk space efficient package manager
- vite-plugin-pwa - PWA with Workbox integration
- date-fns - Modern date utility library
- sonner - Beautiful toast notifications
- lucide-react - Clean, customizable icons
- Node.js 18 or higher
- pnpm (recommended) or npm
- Firebase account (free tier works great!)
1οΈβ£ Clone the Repository
git clone https://github.com/YashMishra0101/Personal-Task-Manager.git
cd Personal-Task-Manager2οΈβ£ Install Dependencies
pnpm install
# or
npm installπ‘ Tip: This project uses pnpm for faster installs and better disk efficiency. Install it with
npm install -g pnpm
3οΈβ£ Firebase Setup
- Go to Firebase Console
- Create a new project
- Enable Email/Password authentication
- Create a Firestore database
- Set up Security Key (follow guide below)
- Copy your Firebase configuration
4οΈβ£ Environment Configuration
Create a .env file in the root directory:
VITE_FIREBASE_API_KEY=your_api_key_here
VITE_FIREBASE_AUTH_DOMAIN=your_project_id.firebaseapp.com
VITE_FIREBASE_PROJECT_ID=your_project_id
VITE_FIREBASE_STORAGE_BUCKET=your_project_id.firebasestorage.app
VITE_FIREBASE_MESSAGING_SENDER_ID=your_sender_id
VITE_FIREBASE_APP_ID=your_app_id5οΈβ£ Security Key Setup (Important!)
This app implements a dual-layer security system for maximum protection of your personal data.
Why a Security Key?
While Firebase Authentication handles user login, the security key adds an extra verification layer at the database level. This means:
- π Even if someone gets your Firebase credentials, they still can't access your tasks without the security key
- π‘οΈ Protects against unauthorized database access
- π Acts like a master password for your Firestore database
- πΌ Enterprise-grade security for personal use
Setup Instructions:
-
Open Firebase Console β Firestore Database
-
Create a new collection named
security -
Add a document with ID
1 -
Add a field:
key="your-secret-key"Example:
"5269MYEX#&!?dwtv"π‘ Tip: Use a strong, unique key with a mix of uppercase, lowercase, numbers, and special characters.
-
Save the document
How It Works:
When a user logs in, the app:
- β Authenticates via Firebase (email + password)
- β Prompts for the security key
- β Verifies the key against Firestore
- β Only grants access if both checks pass
Security Best Practices:
β οΈ Never commit your security key to version control- π Change the key periodically for added security
- π Keep a backup of your key in a secure location
- π« Don't share your key with unauthorized users
- π Use a strong key (minimum 12 characters recommended)
This dual-authentication system ensures your tasks remain private and secure, even in shared or public deployments.
β οΈ Important: No public signup page is available. For security reasons, users must create their account and set the security key directly in Firebase Console before using the app.
6οΈβ£ Launch Development Server
pnpm run devOpen http://localhost:5173 in your browser and start managing tasks! π
Personal-Task-Manager/
βββ π public/ # Static assets & PWA files
β βββ icon-192.png
β βββ icon-512.png
β βββ sw-custom.js # Custom service worker
β
βββ π src/
β βββ π assets/ # Images & icons
β βββ π components/ # Reusable UI components
β β βββ ConfirmDialog.jsx
β β βββ Layout.jsx
β β βββ Navbar.jsx
β β βββ OfflineIndicator.jsx
β β βββ ProtectedRoute.jsx
β β βββ TaskCard.jsx
β β βββ ThemeToggle.jsx
β β
β βββ π context/ # State management
β β βββ AuthContext.jsx
β β βββ TaskContext.jsx
β β βββ UIContext.jsx
β β
β βββ π hooks/ # Custom React hooks
β β βββ useNetworkStatus.js
β β
β βββ π lib/ # Utilities & config
β β βββ device.js
β β βββ fcm.js # Firebase Cloud Messaging
β β βββ firebase.js
β β βββ timeUtils.js
β β βββ utils.js
β β
β βββ π pages/ # Route components
β β βββ AddTask.jsx
β β βββ Completed.jsx
β β βββ EditTask.jsx
β β βββ Home.jsx
β β βββ Login.jsx
β β βββ NotFound.jsx
β β βββ SecurityKey.jsx
β β βββ TaskDetails.jsx
β β
β βββ App.jsx # App routing
β βββ main.jsx # Entry point
β βββ index.css # Global styles
β
βββ π .env # Environment variables (gitignored)
βββ π .gitignore
βββ π LICENSE # Custom MIT license
βββ π package.json
βββ π README.md
βββ π tailwind.config.js
βββ π vite.config.js # Vite + PWA configuration
pnpm run buildThis generates an optimized production bundle in the dist/ directory.
Steps:
- Push your code to GitHub
- Import project in Vercel Dashboard
- Add environment variables
- Click Deploy
Alternative Platforms:
- Netlify
- Firebase Hosting
- Cloudflare Pages
- GitHub Pages (with routing config)
Desktop (Chrome/Edge):
- Visit your deployed URL
- Click the install icon (β) in address bar
- Select "Install Task Manager"
- App opens in standalone window
Mobile (Android):
- Open URL in Chrome
- Tap "Add to Home Screen" prompt
- App icon appears on home screen
- Launch in full-screen mode
Benefits:
- β‘ Instant loading
- π΄ Works offline
- π₯οΈ Native app feel
- π Push notifications
We love contributions! This project is open source and welcomes improvements from developers of all skill levels.
- Fork the repository
- Create your feature branch
git checkout -b feature/AmazingFeature
- Commit your changes
git commit -m 'Add some AmazingFeature' - Push to the branch
git push origin feature/AmazingFeature
- Open a Pull Request
- π Report bugs
- π‘ Suggest new features
- π Improve documentation
- π¨ Enhance UI/UX
- β‘ Optimize performance
- βΏ Improve accessibility
This project is licensed under a Custom MIT License with attribution requirement.
You are free to:
- β Use commercially
- β Modify
- β Distribute
- β Private use
With the condition that:
- π You must link back to this repository in your project's documentation or About section
See the LICENSE file for the full terms.
Future enhancements we're considering:
- π·οΈ Task categories and custom tags
- π Advanced search with filters
- β‘ Priority levels (Low, Medium, High, Urgent)
- π Recurring tasks (daily, weekly, monthly)
- π₯ Task sharing and collaboration
- π§ Email reminders for deadlines
- π Productivity analytics dashboard
- π― Goals and milestones tracking
- π Integration with Google Calendar
- π€ Import/Export data (JSON, CSV)
Vote for features by opening an issue with the "feature request" label!
Having trouble? We're here to help!
- π Bug Reports: Open an issue
- π§ Email: yashrkm0011@gmail.com
- π Show your support: Star this repository!
Special thanks to:
Open Source Libraries
- React - The foundation of this app
- Firebase - Backend infrastructure
- Tailwind CSS - Utility-first styling
- Framer Motion - Smooth animations
- Lucide Icons - Beautiful icon set
- Sonner - Toast notifications
Made by Yash Mishra
β Star this repo β’ π Report Bug β’ π‘ Request Feature







