Skip to content

syigen/focusnet-app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

2 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

FocusNest 🎯

Master your Day with FocusNest - A beautiful, production-ready time-blocking and focus management app built with React Native and Expo.

FocusNest Banner

🌟 Overview

FocusNest is a comprehensive productivity app that helps you master your day through intelligent time-blocking, deep focus sessions, and reflective learning. Built with modern React Native and Expo technologies, it offers a seamless experience across all platforms.

✨ Key Features

  • 🎯 Time Blocking: Create and manage focused work sessions with specific tasks
  • ⚑ Deep Focus Mode: Immersive, distraction-free focus sessions with timer
  • πŸ“Š Weekly Analytics: Track your productivity patterns and progress
  • πŸ’­ Daily Reflection: Learn from your sessions and improve over time
  • 🎨 Beautiful Design: Apple-level aesthetics with smooth animations
  • πŸŒ™ Dark/Light Mode: Adaptive theming for any environment
  • πŸ“± Cross-Platform: Works seamlessly on iOS, Android, and Web

πŸš€ Quick Start

Prerequisites

  • Node.js 18+
  • npm or yarn
  • Expo CLI (npm install -g @expo/cli)

Installation

# Clone the repository
git clone https://github.com/yourusername/focusnest.git
cd focusnest

# Install dependencies
npm install

# Start the development server
npm run dev

Platform-Specific Setup

# iOS (requires macOS and Xcode)
npm run ios

# Android (requires Android Studio)
npm run android

# Web
npm run web

πŸ“± App Structure

Core Screens

🏠 Today Screen (app/(tabs)/index.tsx)

  • View and manage today's time blocks
  • Quick actions for creating blocks
  • Real-time progress tracking
  • Swipe gestures for editing/deleting blocks

⚑ Focus Screen (app/(tabs)/focus.tsx)

  • Start and manage focus sessions
  • View active and upcoming blocks
  • Track completion statistics
  • Seamless transition to Focus Mode

πŸ“… Weekly Screen (app/(tabs)/weekly.tsx)

  • Weekly overview and analytics
  • Category-based time tracking
  • Progress insights and trends
  • Export and sharing capabilities

πŸ’­ Reflect Screen (app/(tabs)/reflect.tsx)

  • Daily reflection on completed sessions
  • Rating and feedback system
  • Learning insights and patterns
  • Historical reflection viewing

βš™οΈ Settings Screen (app/(tabs)/settings.tsx)

  • Theme and appearance customization
  • Category management
  • Data management tools
  • Working hours configuration

Special Views

🎯 Focus Mode (components/FocusTimer.tsx)

  • Completely separate view - No tab bar interference
  • Immersive full-screen timer experience
  • Motivational quotes and progress tracking
  • Intuitive controls (play/pause/reset/exit)

πŸ—οΈ Technical Architecture

Framework & Tools

  • React Native 0.79.1 - Cross-platform mobile development
  • Expo SDK 53 - Development platform and tools
  • Expo Router 5 - File-based navigation system
  • TypeScript - Type-safe development
  • AsyncStorage - Local data persistence

Key Libraries

  • Lucide React Native - Beautiful, consistent icons
  • React Native Gesture Handler - Native gesture handling
  • React Native Reanimated - Smooth animations
  • React Native Safe Area Context - Safe area management

Data Management

  • Local Storage: AsyncStorage for offline-first experience
  • Type-Safe Models: Comprehensive TypeScript interfaces
  • Data Persistence: Automatic saving and loading
  • Sample Data: Built-in examples for new users

πŸ“Š Data Models

TimeBlock

interface TimeBlockData {
  id: string;
  title: string;
  date: string; // YYYY-MM-DD
  startTime: string; // HH:MM (24-hour)
  endTime: string; // HH:MM (24-hour)
  category: string;
  color: string;
  tasks: string[];
  isActive: boolean;
  isCompleted: boolean;
  progress?: number;
}

Category

interface BlockCategory {
  id: string;
  name: string;
  color: string;
  icon: string;
}

Reflection

interface DailyReflection {
  date: string;
  blockId: string;
  blockTitle: string;
  reflection: string;
  rating: number; // 1-5 stars
}

🎨 Design System

Color Palette

  • Primary: #FF6B35 (Vibrant Orange)
  • Secondary: #2E8B8B (Teal)
  • Accent: #8B4F9F (Purple)
  • Success: #4CAF50 (Green)
  • Warning: #FFB800 (Amber)
  • Error: #FF4444 (Red)

Typography

  • Headings: 700 weight, optimized sizing
  • Body: 500-600 weight for readability
  • Captions: 400-500 weight, secondary colors

Spacing System

  • Base Unit: 8px
  • Consistent Gaps: 8px, 12px, 16px, 20px, 24px, 32px
  • Safe Areas: Automatic handling for all devices

πŸ”§ Key Features Deep Dive

1. Time Block Management

  • Smart Creation: Intuitive form with time validation
  • Task Management: Up to 5 tasks per block
  • Category System: Color-coded organization
  • Flexible Editing: In-place editing with swipe gestures

2. Focus Mode Experience

  • Immersive Design: Full-screen, distraction-free interface
  • Smart Controls: Context-aware play/pause/reset/exit
  • Progress Tracking: Visual progress bar and completion percentage
  • Motivational Elements: Rotating inspirational quotes

3. Analytics & Insights

  • Daily Stats: Completion rates and focus time
  • Weekly Trends: Category breakdown and patterns
  • Visual Progress: Charts and progress indicators
  • Export Options: Share summaries and achievements

4. Reflection System

  • Structured Reflection: Guided prompts for meaningful insights
  • Rating System: 5-star rating for session quality
  • Historical View: Track learning and improvement over time
  • Pattern Recognition: Identify what works best

πŸ› οΈ Development

Project Structure

focusnest/
β”œβ”€β”€ app/                    # Expo Router pages
β”‚   β”œβ”€β”€ (tabs)/            # Tab-based navigation
β”‚   β”‚   β”œβ”€β”€ index.tsx      # Today screen
β”‚   β”‚   β”œβ”€β”€ focus.tsx      # Focus management
β”‚   β”‚   β”œβ”€β”€ weekly.tsx     # Weekly analytics
β”‚   β”‚   β”œβ”€β”€ reflect.tsx    # Daily reflection
β”‚   β”‚   β”œβ”€β”€ settings.tsx   # App settings
β”‚   β”‚   └── create-block.tsx # Block creation
β”‚   └── _layout.tsx        # Root layout
β”œβ”€β”€ components/            # Reusable components
β”‚   β”œβ”€β”€ TimeBlock.tsx      # Time block component
β”‚   β”œβ”€β”€ FocusTimer.tsx     # Focus mode timer
β”‚   β”œβ”€β”€ MobileHeader.tsx   # Header component
β”‚   └── ClockTimePicker.tsx # Time picker
β”œβ”€β”€ contexts/              # React contexts
β”‚   └── ThemeContext.tsx   # Theme management
β”œβ”€β”€ utils/                 # Utility functions
β”‚   └── storage.ts         # Data persistence
└── hooks/                 # Custom hooks
    └── useFrameworkReady.ts

Code Quality

  • TypeScript: 100% type coverage
  • ESLint: Consistent code style
  • Prettier: Automatic formatting
  • Component Architecture: Modular, reusable components

Performance Optimizations

  • Lazy Loading: Efficient component loading
  • Gesture Optimization: Native gesture handling
  • Memory Management: Proper cleanup and disposal
  • Animation Performance: Hardware-accelerated animations

πŸ“± Platform Support

iOS

  • βœ… Native navigation feel
  • βœ… Safe area handling
  • βœ… Haptic feedback (when available)
  • βœ… iOS-specific design patterns

Android

  • βœ… Material Design elements
  • βœ… Android navigation patterns
  • βœ… Status bar management
  • βœ… Back button handling

Web

  • βœ… Responsive design
  • βœ… Keyboard navigation
  • βœ… Mouse/touch interactions
  • βœ… Progressive Web App ready

πŸ”’ Data & Privacy

Local-First Architecture

  • Offline Capability: Full functionality without internet
  • Data Ownership: All data stored locally on device
  • No Tracking: Zero analytics or user tracking
  • Privacy Focused: No data collection or sharing

Data Management

  • Automatic Backup: Local storage with AsyncStorage
  • Export Options: JSON export for data portability
  • Reset Functionality: Complete data wipe when needed
  • Sample Data: Optional sample data for new users

πŸš€ Deployment

Development Build

# Create development build
npx expo install --fix
npx expo run:ios
npx expo run:android

Production Build

# Build for production
npm run build:web
npx expo build:ios
npx expo build:android

Web Deployment

# Build and deploy web version
npm run build:web
# Deploy to your preferred hosting service

🀝 Contributing

We welcome contributions! Please see our Contributing Guide for details.

Development Setup

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests if applicable
  5. Submit a pull request

Code Style

  • Follow TypeScript best practices
  • Use meaningful component and variable names
  • Add comments for complex logic
  • Maintain consistent formatting

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ™ Acknowledgments

  • Expo Team - Amazing development platform
  • React Native Community - Excellent libraries and tools
  • Lucide Icons - Beautiful, consistent iconography
  • Pexels - High-quality stock photography

πŸ“ž Support


Built with ❀️ by the FocusNest Team

Master your day, one focused block at a time. 🎯

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published