Skip to content

Rafiul-Islam/TaskBuddy-Mobile-App

Repository files navigation

TaskBuddy 📱

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.

✨ 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

🛠️ Tech Stack

  • 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

🚀 Getting Started

Prerequisites

  • Node.js (v18 or higher)
  • npm or yarn
  • Expo CLI
  • Android Studio (for Android development)
  • Xcode (for iOS development, macOS only)

Installation

  1. Clone the repository

    git clone <repository-url>
    cd TaskBuddy
  2. Install dependencies

    npm install
  3. Start the development server

    npx expo start

Running the App

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

📁 Project Structure

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

🔧 Configuration

Environment Variables

Create a .env file in the root directory with the following variables:

API_BASE_URL=your_api_base_url

Theme Customization

Modify constants/theme.ts to customize the app's color scheme and styling.

Internationalization

Add new languages by creating translation files in the i18n/ directory and updating i18n/index.ts.

📱 Usage

  1. Sign Up: Create a new account or sign in with existing credentials
  2. Dashboard: View task overview and quick actions
  3. Tasks: Browse, create, edit, and manage your tasks
  4. Profile: Update your personal information and preferences
  5. Settings: Configure app settings and preferences

🧪 Testing

# Run tests
npm test

# Run tests in watch mode
npm run test:watch

📦 Build & Deployment

Development Build

npx expo run:android  # For Android
npx expo run:ios      # For iOS

Production Build

# Using EAS Build
eas build --platform android
eas build --platform ios

# Or using Expo Application Services
npx expo build:android
npx expo build:ios
  1. Open a Pull Request

📄 License

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

🙏 Acknowledgments

  • Built with Expo
  • Icons and assets from Expo Vector Icons
  • UI inspiration from modern mobile design patterns

📞 Support

If you have any questions or need help, please open an issue on GitHub or contact the development team.


Happy task managing with TaskBuddy! 🚀

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages