A modern, feature-rich habit tracking application built with React and TypeScript. Track your daily habits, build streaks, earn achievements, and maintain consistency with powerful analytics and gamification features.
- Create Custom Habits: Add personalized habits with emojis, colors, and categories
- Daily Completion: Mark habits as complete with a simple, intuitive interface
- Streak Tracking: Monitor current and longest streaks for motivation
- Visual Heatmap: See your progress at a glance with GitHub-style heatmaps
- Habit Archives: Archive completed or outdated habits to keep your dashboard clean
- Completion Statistics: Track completion rates, total completions, and missed days
- Weekly & Monthly Progress: Monitor short and long-term trends
- Best Performance Analysis: Identify your best performing habits and optimal days
- Consistency Scoring: Measure how consistently you maintain habits
- Smart Insights: Get personalized recommendations based on your patterns
- Achievement System: Unlock achievements for milestones and consistent performance
- Challenge System: Take on personalized challenges to push your limits
- Progress Rewards: Earn badges and rewards for maintaining streaks
- Difficulty Levels: Habits categorized by difficulty (easy, medium, hard)
- Dark/Light Mode: Toggle between themes for comfortable viewing
- Responsive Design: Works seamlessly on desktop and mobile devices
- Habit Templates: Quick-start with pre-made habit templates
- Custom Categories: Organize habits by Health, Learning, Mindfulness, etc.
- Priority Levels: Set habit priorities to focus on what matters most
- Daily Mood Logging: Track your emotional state with a 5-point scale
- Energy & Stress Levels: Monitor energy and stress alongside mood
- Mood History: Review past moods to identify patterns
- Personal Notes: Add reflections and thoughts to your daily mood entries
- Local Storage: All data stored locally on your device
- Quick Actions: Rapidly complete today's habits from the dashboard
- Habit Details: Deep dive into individual habit statistics and history
- Smart Filtering: Filter habits by status, priority, or performance
- Export Ready: Data structured for easy backup and analysis
- Node.js 18+
- npm or yarn
- Clone the repository
git clone https://github.com/yourusername/habit-heat.git
cd habit-heat- Install dependencies
npm install- Start the development server
npm run dev- Open your browser
Navigate to http://localhost:5173to start using Habit Heat!
- Click the "+" button or "Add Habit" on the dashboard
- Choose from pre-made templates or create a custom habit
- Set your habit name, emoji, color, and category
- Configure target days and estimated time
- Add motivational quotes or custom rewards (optional)
- Use the dashboard to quickly mark today's habits as complete
- View your current streaks and completion rates
- Check the mini-heatmap to see recent progress patterns
- Navigate to Insights for detailed analytics
- Check Achievements to see unlocked milestones
- Visit Challenges to take on new goals
- Use Mood Tracker to log emotional well-being
- Toggle between light and dark themes
- Sort habits by various criteria (streak, completion rate, etc.)
- Filter habits by status or priority
- Archive habits you no longer need
- React 18 - Modern UI library with hooks
- TypeScript - Type-safe development
- Tailwind CSS - Utility-first styling
- Lucide React - Beautiful, customizable icons
- Vite - Fast build tool and dev server
- ESLint - Code linting and formatting
- PostCSS - CSS processing
- Local Storage - Client-side data persistence
- Responsive Design - Mobile-first approach
- Theme System - Dark/light mode support
- Component Architecture - Modular, reusable components
project/                 # Frontend React application
βββ src/
β   βββ components/          # React components
β   β   βββ HabitCard.tsx          # Individual habit display
β   β   βββ HabitDetail.tsx        # Detailed habit view
β   β   βββ AddHabitModal.tsx      # Habit creation modal
β   β   βββ Login.tsx              # User authentication login
β   β   βββ Signup.tsx             # User registration
β   β   βββ Header.tsx             # Navigation header with logout
β   β   βββ Footer.tsx             # Application footer
β   β   βββ Heatmap.tsx            # Progress visualization
β   β   βββ MiniHeatmap.tsx        # Compact progress view
β   β   βββ HabitStats.tsx         # Habit statistics display
β   β   βββ QuickActions.tsx       # Quick habit completion
β   β   βββ SelfCareTip.tsx        # Wellness tips
β   β   βββ AchievementNotification.tsx # Achievement alerts
β   β   βββ WidgetSettingsModal.tsx # Widget configuration
|   |   |-- AdvancedFilterModal.tsx # Filter Implementation
|   |   |-- AuthDebugComponent.tsx  # Authorization Debugging
|   |   |-- FilterSummary.tsx       # Summary for all Filters
|   |   |-- LandingPage.tsx         # Component for Landing Page
|   |   |-- OAuthSuccess.tsx        # Component for Success state in OAuth
|   |   |-- QuickActions.tsx        # Quick Actions Tab
|   |   |-- TimeInput.tsx           # Input Component for Profile Page
|   |   |-- UpdateHabitModal.tsx    # Update Habit Component
|   |   |-- SaveAsTemplateModal.tsx # Save Existing Habit as Template
β   β   βββ widgets/               # Dashboard widgets
β   β       βββ CurrentStreakWidget.tsx      # Streak display
β   β       βββ DailyCompletionRateWidget.tsx # Daily progress
β   β       βββ TotalHabitsCompletedWidget.tsx # Total completion stats
β   βββ hooks/              # Custom React hooks
β   β   βββ useHabits.ts           # Habit management logic
β   β   βββ useTheme.ts            # Theme management
β   βββ pages/              # Page components
β   β   βββ Dashboard.tsx          # Main dashboard page
β   β   βββ InsightsView.tsx       # Analytics page
β   β   βββ AchievementsView.tsx   # Achievements page
β   β   βββ ChallengesView.tsx     # Challenges page
β   β   βββ HabitTemplatesView.tsx # Templates page
β   β   βββ MoodTracker.tsx        # Mood tracking page
β   β   βββ ProfilePage.tsx        # User profile page
β   β   βββ NotFound.tsx           # 404 error page
β   βββ types/              # TypeScript definitions
β   β   βββ index.ts               # All type definitions
β   βββ utils/              # Utility functions
β   β   βββ storage.ts             # Local storage helpers
β   β   βββ habitStats.ts          # Statistics calculations
β   β   βββ achievements.ts        # Achievement logic
β   β   βββ challenges.ts          # Challenge system
β   β   βββ insights.ts            # Analytics generation
|   |   |-- auth.ts                # Manage Authentication flow
|   |   |-- advancedFilter.ts      # Manage Advance Filtering
β   β   βββ habitTemplates.ts      # Pre-made habit templates
β   β   βββ motivationalQuotes.ts  # Inspirational quotes
β   β   βββ dateUtils.ts           # Date manipulation utilities
β   βββ App.tsx             # Main application component
β   βββ main.tsx            # Application entry point
|   |-- vite-env.d.ts       # Declaration File for vite env
β   βββ index.css           # Global styles
βββ public/
β   βββ fevicon.png             # Application favicon
βββ .env.production             # Frontend prod environment variables
βββ index.html                  # HTML entry point
backend/
βββ src/
|   |-- config/
|   |   βββ passport.js          # Auth Integration using passport.js 
β   βββ controllers/
β   β   βββ authController.js    # Authentication business logic
β   βββ db/
β   β   βββ connect.js          # Database connection configuration
|   |-- lib/
|   |   βββ cloudinary.js       # Configuration for cloudinary
|   |   βββ utils.js            # JWT token creation file
β   βββ middleware/
|   |   βββ authMiddleware.js   # Middleware for Authentication flow
β   β   βββ errorHandler.js     # Global error handling middleware
β   βββ models/
β   β   βββ User.js             # User schema and model
β   βββ routes/
β   β   βββ auth.js             # Authentication routes
β   βββ app.js                  # Express app configuration
β   βββ index.js                # Server entry point
βββ .env.example                # Environment variables template
βββ .env.production             # Production environment variables
βββ README.md                   # Server documentation
- HabitCard: Displays habit summary with mini-heatmap
- HabitDetail: Full habit view with detailed statistics
- AddHabitModal: Streamlined habit creation process
- InsightsView: Comprehensive analytics dashboard
- HabitStats: Advanced statistics calculations
- Progress Tracking: Visual progress indicators
- AchievementsView: Achievement gallery and progress
- ChallengesView: Active and available challenges
- Achievement System: Automated milestone detection
- Local Storage: All data stays on your device
- No Tracking: No analytics or user tracking
- Offline First: Works completely offline
- Data Control: Export/import your data anytime
Pre-configured habits across categories:
- Health & Fitness: Exercise, water intake, healthy eating
- Learning: Reading, language practice, skill development
- Mindfulness: Meditation, gratitude journaling
- Digital Wellness: Screen time limits, no-phone mornings
Unlock achievements for:
- Creating your first habit
- Maintaining streaks (7, 30, 100+ days)
- Achieving perfect completion rates
- Building multiple habits
- Consistency milestones
- Streak Challenges: Build long-term consistency
- Completion Challenges: Hit specific targets
- Multi-Habit Challenges: Complete multiple habits daily
- Consistency Challenges: Maintain high completion rates
We welcome contributions! Please follow these steps:
- Fork the repository
- Create a feature branch (git checkout -b feature/amazing-feature)
- Make your changes following our coding standards
- Test your changes locally
- Commit your changes (git commit -m 'Add amazing feature')
- Push to the branch (git push origin feature/amazing-feature)
- Open a Pull Request using our PR template
- Fill out the PR template completely
- Include screenshots for UI changes
- Write clear commit messages
- Ensure all tests pass
- Update documentation if needed
- Follow TypeScript and React best practices
# Clone your fork
git clone https://github.com/yourusername/habit-heat.git
cd habit-heat
# Install dependencies
npm install
# Start development server
npm run dev
# Run linting
npm run lint
# Build for production
npm run buildThis project is licensed under the MIT License - see the LICENSE file for details.
- Icons provided by Lucide React
- Built with Vite and React
- Styled with Tailwind CSS
- Inspired by habit tracking methodologies and gamification principles
If you encounter any issues or have questions:
- Open an issue on GitHub
- Check the documentation in the /docsfolder
- Review the TypeScript definitions in /src/types
Start building better habits today with Habit Heat! π₯
Turn your daily routines into powerful habits that stick.