A cutting-edge AI-powered voice-controlled todo application with enterprise-grade architecture and seamless user experience.
- Data Persistence: Robust database layer with instant synchronization
- User Management: Complete multi-user support with secure authentication
- Session Management: Persistent user sessions across browser restarts
- Error Recovery: Comprehensive error handling and user feedback
- AI Voice Assistant: Natural language processing for task creation and management
- Smart Task Parser: Intelligent extraction of task details from voice commands
- Real-time Synchronization: All changes saved instantly with immediate feedback
- Professional UI: Consistent dark theme with smooth animations
- React 19.1.1 - Modern UI library with latest features
- TypeScript - Type-safe development
- Vite 7.1.7 - Lightning-fast build tool
- Tailwind CSS 3.x - Utility-first CSS framework
- Web Speech API - Browser-native speech recognition and synthesis
- Natural Language Processing - Custom parser for task extraction
- Smart Conversation Management - Context-aware dialogue system with proper reset logic
- DatabaseService Layer - Production-ready data persistence layer
- Multi-User Support - Complete user isolation and data separation
- Instant Synchronization - All changes saved immediately with error recovery
- Scalable Architecture - Ready for enterprise database integration
- Session Management - Persistent user sessions with secure logout
- User Isolation - Complete data separation between users
- Error Recovery - Graceful handling of all error scenarios
- Production Security - Secure authentication flow with proper validation
- ESLint - Code linting and quality enforcement
- Prettier - Code formatting
- Husky - Git hooks for quality control
- Conventional Commits - Standardized commit messages
- Node.js >= 18.0.0
- npm >= 8.0.0 or yarn >= 1.22.0
- Modern browser with Web Speech API support
# Clone the repository
git clone https://github.com/smdspace-dev/AskTo-Do.git
cd ai-todo-assistant
# Install dependencies
npm install
# Copy environment configuration
cp .env.example .env.local
# Start development server
npm run devThe application will be available at http://localhost:5173
Copy .env.example to .env.local and customize:
VITE_APP_NAME=AI Todo Assistant
VITE_ENABLE_VOICE_RECOGNITION=true
VITE_ENABLE_SPEECH_SYNTHESIS=true
VITE_DEBUG_MODE=falseThe AI assistant understands natural language. Try these commands:
- "Create a task to buy groceries tomorrow"
- "Add a high priority meeting for Friday at 3 PM"
- "Remind me to call the doctor next week"
- "Schedule a workout session for tomorrow morning"
- "Show me today's tasks"
- "What's my schedule for this week?"
- "Mark the first task as complete"
- "Delete the grocery shopping task"
- "Add multiple tasks: call dentist, pay bills, and submit report"
- "Create a work task with high priority to finish the presentation"
- "Show me all high priority tasks for this month"
- Click the glowing voice button to start voice interaction
- Use the sidebar to filter tasks by time periods (Today, Tomorrow, Week, Month)
- Task cards display priority colors and categories
- Search bar for quick task filtering
- Quick add button for manual task creation
Your tasks and user data are securely stored in your browser's local storage using a robust database service layer:
- Storage Location: Browser's local storage (
aiTodoApp_prefix) - Data Persistence: All data persists across browser sessions
- User Isolation: Each user has completely separate data storage
- Data Security: Data remains local to your device
- Backup Capability: Use the browser's export/import features for data backup
- Automatic Saving: All changes save instantly without manual intervention
- Error Recovery: Built-in error handling and data validation
- Clear Tasks: Use the "Clear Tasks" button to remove all tasks (with confirmation)
- User Sessions: Login sessions persist across browser restarts
// User data: aiTodoApp_users
// User tasks: aiTodoApp_tasks_{userId}
// Current session: aiTodoApp_currentUsersrc/
βββ components/ # React components
β βββ AIVoiceAssistant.jsx # Main application component
β βββ TaskCreationModal.jsx # Task creation interface
β βββ SmartTaskParser.jsx # AI-powered task parsing
β βββ TaskEditModal.jsx # Task editing interface
β βββ AuthModal.jsx # User authentication
β βββ ErrorBoundary.jsx # Error handling
βββ services/ # Business logic and data services
β βββ DatabaseService.js # Production data persistence layer
βββ utils/ # Utility functions
β βββ conversationManager.js # AI conversation logic
βββ types/ # TypeScript type definitions
βββ assets/ # Static assets and styles
# Development
npm run dev # Start development server
npm run build # Build for production
npm run preview # Preview production build
# Code Quality
npm run lint # Run ESLint
npm run lint:fix # Fix ESLint issues
npm run format # Format code with Prettier
npm run type-check # TypeScript type checking
# Testing
npm run test # Run tests
npm run test:coverage # Run tests with coverage
# Utilities
npm run clean # Clean build directory
npm run build:analyze # Analyze bundle size- TypeScript for type safety
- ESLint for code quality
- Prettier for consistent formatting
- Conventional Commits for commit messages
- Component-driven development with proper separation of concerns
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Make your changes following our coding standards
- Commit with conventional commit format:
git commit -m "feat: add amazing feature" - Push to the branch:
git push origin feature/amazing-feature - Open a Pull Request
- Chrome 25+ (recommended)
- Firefox 44+
- Safari 14.1+
- Edge 79+
Note: Voice features require HTTPS in production or localhost in development.
- Code splitting for optimal bundle size
- Lazy loading of components
- Memoization for expensive computations
- Efficient state management with minimal re-renders
| Feature | Chrome | Firefox | Safari | Edge |
|---|---|---|---|---|
| Speech Recognition | β | β | β | β |
| Speech Synthesis | β | β | β | β |
| Local Storage | β | β | β | β |
| CSS Grid/Flexbox | β | β | β | β |
Voice not working:
- Ensure microphone permissions are granted
- Check if HTTPS is enabled (required for voice features)
- Verify browser support for Web Speech API
Tasks not saving:
- Check browser storage availability and quota
- Ensure no browser extensions are blocking data persistence
- Try the "Clear Tasks" button and recreate tasks
UI not loading:
- Clear browser cache
- Check for JavaScript errors in console
- Verify all dependencies are installed
npm run buildThe application is production-ready and can be deployed to any static hosting service:
- Vercel:
vercel --prod - Netlify: Drag and drop the
dist/folder - GitHub Pages: Upload
dist/contents - Firebase Hosting:
firebase deploy
- HTTPS Required: Voice features require secure context
- Modern Browser: Chrome 25+, Firefox 44+, Safari 14.1+
- Microphone Access: Required for voice input functionality
- β Optimized build with code splitting
- β Minified and compressed assets
- β Service worker ready (if needed)
- β Cross-browser compatibility
- β Mobile responsive design
- β Error boundary protection
This project is licensed under the MIT License - see the LICENSE file for details.
- Web Speech API for browser-native voice capabilities
- React Team for the amazing framework
- Tailwind CSS for the utility-first CSS framework
- Vite for the blazing-fast development experience
- π§ Email: contact.thousif+github@gmail.com
- π¬ Issues: GitHub Issues
Made with β€οΈ by THousifibrahim
β Star this repo if you find it helpful!