A simple and efficient task management app built with React Native and Expo.
- ✅ Task Management: Create, edit, and delete tasks with full CRUD operations
- 🎯 Priority Levels: Set high, medium, or low priority with color-coded indicators
- 📅 Due Dates: Add optional due dates with custom date picker interface
- 📊 Task Filtering: Filter tasks by status (All, Active, Completed)
- 💾 Persistent Storage: Tasks are saved locally using AsyncStorage
- 📈 Analytics: View task statistics, completion rates, and priority breakdown
- 🎨 Modern UI: Clean, responsive interface with SafeArea support
- 🔄 Cross-Platform: Works seamlessly on iOS, Android, and Web
- ⚡ Real-time Updates: Instant task updates and status changes
- 🎛️ Custom Components: Custom date picker and form controls
- Node.js (v16 or higher)
- npm or yarn
- Expo CLI
- Clone the repository
- Navigate to the project directory
- Install dependencies:
npm install
-
Start the development server:
npm start
-
Run on your preferred platform:
- iOS: Press
iin the terminal or scan the QR code with Expo Go - Android: Press
ain the terminal or scan the QR code with Expo Go - Web: Press
win the terminal
- iOS: Press
- Tap the "+" button in the top right corner
- Enter task title (required)
- Add optional description
- Set priority level (Low, Medium, High)
- Set optional due date
- Tap "Add Task" to save
- Complete a task: Tap the circle next to the task title
- Edit a task: Tap the edit icon (pencil) on the task
- Delete a task: Tap the trash icon on the task
- Filter tasks: Use the filter buttons (All, Active, Completed)
- View task statistics on the Analytics tab
- See completion rates and priority breakdown
- Clear completed tasks in bulk
TaskManager/
├── app/
│ ├── (tabs)/
│ │ ├── index.tsx # Main task list screen
│ │ ├── explore.tsx # Analytics screen
│ │ └── _layout.tsx # Tab navigation
│ └── _layout.tsx # Root layout with providers
├── components/
│ ├── TaskItem.tsx # Individual task component
│ ├── TaskForm.tsx # Add/edit task form
│ ├── DatePickerModal.tsx # Cross-platform date picker
│ └── SimpleDatePicker.tsx # Custom date picker interface
├── context/
│ └── TaskContext.tsx # Task state management with AsyncStorage
└── ...
- React Native: Cross-platform mobile development
- Expo: Development platform and tools
- TypeScript: Type-safe JavaScript
- AsyncStorage: Local data persistence
- React Context: State management
- Expo Vector Icons: Icon library
The Task Manager app features a clean, modern interface with intuitive navigation and visual feedback.
- Clean Interface: Modern header with "Task Manager" title and prominent blue add button
- Task Statistics: Real-time counters showing Total, Active, and Completed tasks
- Smart Filtering: Easy-to-use filter buttons (All, Active, Completed) with visual selection
- Task Cards: Each task displays:
- Checkbox for quick completion toggle
- Task title and description
- Color-coded priority badges (High: Red, Medium: Orange, Low: Green)
- Due dates in readable format
- Edit and delete actions with intuitive icons
- Comprehensive Statistics: Four key metrics cards showing:
- Total Tasks count
- Active Tasks (in progress)
- Completed Tasks with percentage
- Overdue Tasks for priority management
- Priority Breakdown: Visual priority distribution with color-coded cards
- Real-time Updates: Statistics update automatically as tasks change
- Clean Layout: Well-spaced cards with clear typography and visual hierarchy
- Consistent Design: Unified color scheme and typography throughout
- Responsive Layout: Adapts perfectly to different screen sizes
- Visual Feedback: Clear indication of selected states and interactions
- Modern UI: Clean cards, proper spacing, and professional appearance
- Color Coding: Intuitive priority system with meaningful colors
- ✅ Task creation with title "Workout"
- ✅ Priority assignment (Medium priority shown)
- ✅ Due date functionality (08/08/2025)
- ✅ Real-time statistics (1 total, 1 active, 0 completed)
- ✅ Cross-screen navigation between Tasks and Analytics
- ✅ Proper SafeArea handling for modern devices
Note: To add screenshots to your repository, create a
screenshots/folder in the root directory and add your screen captures asmain-screen.pngandanalytics-screen.png.
The app is fully functional and demonstrates:
- Task Management: Create tasks like "Workout" with descriptions
- Priority System: Assign High, Medium, or Low priorities with color coding
- Due Dates: Set future dates (e.g., 08/08/2025) with custom date picker
- Real-time Analytics: Statistics update automatically as you manage tasks
- Cross-platform: Works on iOS, Android, and Web browsers
- Persistent Storage: Tasks are saved locally and persist between sessions
If you experience issues with the date picker:
- The app includes a custom SimpleDatePicker as a fallback
- Works consistently across all platforms
- Provides clear visual feedback for date selection
- Tasks are stored locally for instant access
- App uses React Context for efficient state management
- Optimized rendering for large task lists
# Start development server
npm start
# Run on specific platforms
npm run android # Android emulator
npm run ios # iOS simulator (Mac only)
npm run web # Web browser
# Linting and code quality
npm run lint # Check code style- Create components in the
components/directory - Add new screens in the
app/(tabs)/directory - Update the TaskContext for state management
- Test across all platforms
- Fork the repository
- Create a feature branch
- Make your changes
- Submit a pull request
This project is open source and available under the MIT License.

