A modern, interactive todo and goal management application built with React, Vite, and Tailwind CSS, featuring AI-powered productivity insights using Google Gemini AI.
- π Smart Todo Management: Daily, weekly, and monthly todo views
- π― Goal Tracking: Short-term and long-term goal management
- π€ AI Integration: Google Gemini AI for task analysis, suggestions, and motivation
- π¨ Duolingo-Style UI: Engaging animations, mascot, and interactive elements
- π Progress Tracking: AI-generated progress questions and insights
- π User Management: Secure login with localStorage persistence
- π± Responsive Design: Works seamlessly on desktop and mobile
- Node.js 18+
- npm or yarn
- Google Gemini AI API key
-
Clone the repository
git clone <repository-url> cd my-app
-
Install dependencies
npm install
-
Set up environment variables
# Create .env.local file echo "VITE_GEMINI_API_KEY=your_gemini_api_key_here" > .env.local
-
Start development server
npm run dev
-
Open your browser Navigate to
http://localhost:3000
# Create optimized production build
npm run build
# Preview production build locally
npm run previewCreate a .env.production file with:
VITE_GEMINI_API_KEY=your_production_api_key_here
VITE_APP_ENV=production
VITE_APP_VERSION=1.0.0# Install Vercel CLI
npm i -g vercel
# Deploy
vercel --prod# Build the project
npm run build
# Deploy the dist folder to Netlify# Build the project
npm run build
# Upload the dist folder to your hosting providernpm run dev- Start development servernpm run build- Build for productionnpm run build:analyze- Build with bundle analysisnpm run preview- Preview production buildnpm run lint- Run ESLint with auto-fixnpm run lint:check- Check for linting errorsnpm run clean- Clean build directory
src/
βββ components/ # React components
β βββ AIAssistant.jsx # AI chat interface
β βββ AINotification.jsx # AI notifications
β βββ GoalSection.jsx # Goal management
β βββ Login.jsx # User authentication
β βββ Mascot.jsx # Interactive mascot
β βββ ProgressQuestions.jsx # Progress tracking
β βββ Sidebar.jsx # Navigation sidebar
β βββ TodoSection.jsx # Todo management
βββ services/
β βββ geminiAI.js # AI service integration
βββ App.jsx # Main application
βββ main.jsx # Application entry point
βββ index.css # Global styles
The project uses Vite with production optimizations:
- Code Splitting: Automatic chunk splitting for better caching
- Tree Shaking: Unused code elimination
- Minification: Terser for optimal bundle size
- CSS Optimization: Automatic CSS code splitting
Custom animations and utilities are defined in src/index.css:
- Floating animations
- Interactive hover effects
- Custom scrollbar styling
- Gradient and shimmer effects
The app uses Google Gemini AI for:
- Task Analysis: Personalized insights for new tasks
- Completion Celebrations: Motivational messages for completed tasks
- Progress Questions: AI-generated reflection questions
- Productivity Insights: Personalized tips and recommendations
- Goal Recommendations: AI-suggested goals based on user activity
The AI service automatically falls back to mock responses when:
- API key is not configured
- Network issues occur
- Rate limits are exceeded
- Input Sanitization: All user inputs are sanitized
- XSS Prevention: AI responses are cleaned and sanitized
- Environment Variables: Sensitive data stored in environment variables
- No Console Logs: Production builds exclude debug information
- URL Sanitization: Automatic cleanup of sensitive URL parameters
- Local Storage: User data stored locally in browser
- No Server: Client-side only application
- Privacy First: No data sent to external servers except AI API
- Chrome 90+
- Firefox 88+
- Safari 14+
- Edge 90+
The app uses Tailwind CSS with custom animations. Key customization points:
- Colors: Modify Tailwind config in
tailwind.config.js - Animations: Custom keyframes in
src/index.css - Mascot: Customizable mascot emotions and animations
- Notifications: Duolingo-style notification system
- Create new components in
src/components/ - Add routes in
App.jsx - Update sidebar navigation in
Sidebar.jsx - Add any new AI features in
src/services/geminiAI.js
AI not working:
- Check your Gemini API key in environment variables
- Verify API key has proper permissions
- Check browser console for errors
Build errors:
- Clear node_modules and reinstall:
rm -rf node_modules && npm install - Check Node.js version compatibility
- Verify all environment variables are set
Performance issues:
- Run
npm run build:analyzeto check bundle size - Optimize large dependencies
- Check for memory leaks in development
This project is licensed under the MIT License.
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
For support and questions:
- Create an issue in the repository
- Check the troubleshooting section
- Review the documentation
Built with β€οΈ using React, Vite, Tailwind CSS, and Google Gemini AI