A comprehensive Getting Things Done (GTD) mobile application built with React Native and Expo, designed to help users organize tasks, manage projects, and maintain productivity through the GTD methodology.
- Inbox Management: Capture and organize incoming tasks and ideas
- Project Organization: Group related tasks into projects with detailed management
- Next Actions: Define specific next actions for each project
- Context Management: Organize tasks by context (work, home, errands, etc.)
- Today's Focus: Prioritize and focus on today's most important tasks
- Create, edit, and delete tasks with rich details
- Set due dates, priorities, and categories
- Mark tasks as complete/incomplete
- Associate tasks with projects and contexts
- Real-time synchronization with backend API
- Create and manage multiple projects
- View project details with associated tasks
- Track project progress and completion
- Delete projects and associated tasks
- Clean, intuitive interface built with React Native Paper
- Smooth navigation with React Navigation
- Persistent data storage with AsyncStorage
- Real-time updates and synchronization
- Responsive design for both iOS and Android
- Framework: React Native 0.79.5
- Development Platform: Expo SDK 53
- Navigation: React Navigation v7
- UI Components: React Native Paper
- State Management: React Context API with useReducer
- Storage: AsyncStorage for local data persistence
- Date Handling: date-fns
- Icons: Expo Vector Icons
- Development: ESLint for code quality
The app includes the following main screens:
- Splash Screen: App loading and authentication
- Inbox Screen: Capture and organize incoming items
- Today Screen: Focus on today's priority tasks
- Projects Screen: Manage and view all projects
- Project Detail Screen: Detailed project view with associated tasks
- Next Actions Screen: Organize tasks by context
- Node.js (v16 or higher)
- npm or yarn package manager
- Expo CLI (
npm install -g @expo/cli) - iOS Simulator (for iOS development) or Android Studio (for Android development)
-
Clone the repository
git clone <repository-url> cd front-end-GTD
-
Install dependencies
npm install # or yarn install -
Start the development server
npm start # or expo start -
Run on device/simulator
- Press
ifor iOS simulator - Press
afor Android emulator - Scan QR code with Expo Go app on your physical device
- Press
npm start- Start the Expo development servernpm run android- Run on Android device/emulatornpm run ios- Run on iOS simulatornpm run web- Run in web browsernpm run lint- Run ESLint for code qualitynpm run install-safe- Install dependencies with legacy peer deps
The app connects to a backend API for data persistence. Update the apiConfig.js file with your backend URL:
export const API_BASE_URL = 'https://your-backend-url.com';The app uses JWT token-based authentication. Tokens are automatically stored in AsyncStorage upon successful login.
front-end-GTD/
├── assets/ # Images, icons, and static assets
├── components/ # Reusable UI components
│ ├── AddTaskModal.js
│ ├── FAB.js
│ ├── TaskCard.js
│ └── TaskDetailModal.js
├── context/ # React Context for state management
│ └── TaskContext.js
├── navigation/ # Navigation configuration
│ ├── AppNavigator.js
│ └── ProjectsStack.js
├── screens/ # Main application screens
│ ├── InboxScreen.js
│ ├── NextActionsScreen.js
│ ├── ProjectDetailScreen.js
│ ├── ProjectsScreen.js
│ ├── SplashScreen.js
│ └── TodayScreen.js
├── utils/ # Utility functions
│ ├── dateUtils.js
│ └── groupTasks.js
├── App.js # Main application component
├── apiConfig.js # API configuration
└── package.json # Dependencies and scripts
The app uses React Context API with useReducer for state management:
- TaskContext: Manages tasks, projects, and contexts
- AsyncStorage: Persists authentication tokens and user preferences
- API Integration: Real-time synchronization with backend services
- iOS: 13.0 and later
- Android: API level 21 and later
- Web: Modern browsers (Chrome, Firefox, Safari, Edge)
-
Install EAS CLI
npm install -g @expo/eas-cli
-
Configure EAS
eas build:configure
-
Build for platforms
eas build --platform ios eas build --platform android
-
Prebuild the project
npx expo prebuild
-
Build for iOS
npx expo run:ios --configuration Release
-
Build for Android
npx expo run:android --variant release
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
For support and questions:
- Create an issue in the repository
- Contact the development team
- Check the Expo documentation for general React Native/Expo questions
- Offline mode support
- Push notifications for due dates
- Data export/import functionality
- Advanced filtering and search
- Dark mode support
- Widget support for iOS/Android
- Integration with calendar apps
- Team collaboration features
FlowDo - Get things done, one task at a time! 🎯