A modern, feature-rich task management mobile application built with React Native and Expo. TaskBuddy helps you organize your tasks efficiently with a clean, intuitive interface and powerful features.
-
🔐 Authentication System
- User registration and login
- Email verification
- Password reset functionality
- Secure token management
-
📋 Task Management
- Create, edit, and delete tasks
- Task dashboard with overview
- Task status tracking
- Intuitive task organization
-
👤 Profile Management
- User profile customization
- Change password
- Edit user information
- Settings configuration
-
🌐 Internationalization
- Support for English and Bengali languages
- Easy language switching
-
🎨 Modern UI/UX
- Beautiful animated splash screen
- Side drawer navigation
- Dark/light theme support
- Responsive design
-
🔄 Offline Support
- No internet connection dialog
- Local data persistence
- Framework: React Native with Expo
- Language: TypeScript
- Navigation: Expo Router (File-based routing)
- State Management: React Context API
- Styling: Custom theme system
- Internationalization: Custom i18n implementation
- API Integration: RESTful API services
- Validation: Form validation with custom rules
- Node.js (v18 or higher)
- npm or yarn
- Expo CLI
- Android Studio (for Android development)
- Xcode (for iOS development, macOS only)
-
Clone the repository
git clone <repository-url> cd TaskBuddy
-
Install dependencies
npm install
-
Start the development server
npx expo start
After starting the development server, you'll see options to open the app in:
- Development Build: Full-featured development environment
- Android Emulator: Test on Android devices/simulators
- iOS Simulator: Test on iOS devices/simulators (macOS only)
- Expo Go: Quick testing on physical devices
TaskBuddy/
├── app/ # Main application code
│ ├── _layout.tsx # Root layout
│ ├── index.tsx # Home screen
│ ├── (app)/ # Authenticated app screens
│ │ ├── _layout.tsx
│ │ ├── dashboard.tsx # Main dashboard
│ │ ├── tasks.tsx # Task list
│ │ ├── create-task.tsx # Create new task
│ │ ├── edit-task.tsx # Edit existing task
│ │ ├── profile.tsx # User profile
│ │ ├── edit-name.tsx # Edit user name
│ │ ├── change-password.tsx # Change password
│ │ ├── settings.tsx # App settings
│ │ └── about.tsx # About page
│ └── (auth)/ # Authentication screens
│ ├── _layout.tsx
│ ├── sign-in.tsx # Sign in
│ ├── sign-up.tsx # Sign up
│ ├── forgot-password.tsx # Password reset
│ └── verify-email.tsx # Email verification
├── assets/ # Static assets
│ └── images/ # Image files
├── components/ # Reusable components
│ ├── AnimatedSplash.tsx # Splash screen animation
│ ├── NoInternetDialog.tsx # Offline indicator
│ └── SideDrawer.tsx # Navigation drawer
├── constants/ # App constants
│ └── theme.ts # Theme configuration
├── context/ # React contexts
│ ├── auth.tsx # Authentication context
│ └── theme.tsx # Theme context
├── i18n/ # Internationalization
│ ├── index.ts # i18n configuration
│ ├── en.ts # English translations
│ └── bn.ts # Bengali translations
├── services/ # API and external services
│ ├── api.ts # Base API configuration
│ ├── auth.ts # Authentication services
│ ├── task.ts # Task management services
│ └── token-manager.ts # Token management
├── validations/ # Form validations
│ ├── auth.ts # Authentication validations
│ └── task.ts # Task validations
├── app.json # Expo app configuration
├── eas.json # EAS build configuration
├── package.json # Dependencies and scripts
├── tsconfig.json # TypeScript configuration
└── eslint.config.js # ESLint configuration
Create a .env file in the root directory with the following variables:
API_BASE_URL=your_api_base_urlModify constants/theme.ts to customize the app's color scheme and styling.
Add new languages by creating translation files in the i18n/ directory and updating i18n/index.ts.
- Sign Up: Create a new account or sign in with existing credentials
- Dashboard: View task overview and quick actions
- Tasks: Browse, create, edit, and manage your tasks
- Profile: Update your personal information and preferences
- Settings: Configure app settings and preferences
# Run tests
npm test
# Run tests in watch mode
npm run test:watchnpx expo run:android # For Android
npx expo run:ios # For iOS# Using EAS Build
eas build --platform android
eas build --platform ios
# Or using Expo Application Services
npx expo build:android
npx expo build:ios- Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Built with Expo
- Icons and assets from Expo Vector Icons
- UI inspiration from modern mobile design patterns
If you have any questions or need help, please open an issue on GitHub or contact the development team.
Happy task managing with TaskBuddy! 🚀