Skip to content

Enzo008/maritask

Repository files navigation

Maritask πŸ“‹

A modern, intuitive task management application built with React Native and Expo

Maritask is a mobile-first task management app designed to help you organize your daily tasks, manage priorities, and stay productive. Built with React Native, Expo, and TypeScript, it offers a clean, Material Design 3.0 interface with powerful features for personal task management.

✨ Features

Core Functionality

  • Task Management - Create, edit, complete, and delete tasks with rich metadata
  • Smart Organization - Organize tasks by categories with custom colors and icons
  • Calendar Views - Visualize your tasks in day, week, and month views
  • Priority System - Set task priorities (Low, Medium, High, Urgent)
  • Due Dates & Times - Schedule tasks with specific dates and times
  • Task Status - Track progress with multiple status states (Todo, In Progress, Completed, Archived)

Advanced Features

  • Smart Lists - Pre-built filtered views (Today, Upcoming, Overdue, High Priority)
  • Search & Filters - Full-text search and advanced filtering capabilities
  • Local Notifications - Automatic reminders (5min and 3min before due time)
  • Recurring Tasks - Support for repeating tasks with flexible patterns
  • Subtasks - Break down complex tasks into manageable subtasks
  • Dark Mode - System-aware theme switching with manual override

User Experience

  • Offline-First - All data stored locally in SQLite, no internet required
  • Multi-language - Support for English and Spanish
  • Material Design 3.0 - Clean, modern interface following Google's design principles
  • Smooth Animations - Powered by React Native Reanimated
  • Gesture Support - Swipe actions for quick task management

πŸš€ Tech Stack

Core Framework

  • React Native 0.81.4
  • React 19.1.0
  • Expo ~54.0.12
  • Expo Router ~6.0.10 (file-based routing)
  • TypeScript ~5.9.2 (strict mode)

UI & Styling

  • React Native Paper 5.14.5 (Material Design 3.0)
  • React Native Reanimated ~4.1.1
  • React Native Gesture Handler ~2.28.0
  • Expo Symbols ~1.0.7 (SF Symbols for iOS)

State & Data

  • Zustand 5.0.8 (global state management)
  • Expo SQLite ~16.0.8 (local database)
  • AsyncStorage 2.2.0 (settings/theme persistence)
  • Expo SecureStore ~15.0.7 (sensitive data)

Forms & Validation

  • React Hook Form 7.64.0
  • Zod 3.25.76

Internationalization

  • i18next 25.6.0
  • react-i18next 16.0.0
  • expo-localization ~17.0.7

Calendar & Dates

  • React Native Calendars 1.1313.0
  • date-fns 4.1.0

Notifications

  • Expo Notifications ~0.32.12
  • Expo Task Manager ~14.0.7

πŸ“¦ Installation

Prerequisites

  • Node.js 18+ and npm
  • Expo CLI (npm install -g expo-cli)
  • EAS CLI (npm install -g eas-cli) for building
  • Android Studio (for Android development)
  • Xcode (for iOS development, macOS only)

Setup

  1. Clone the repository

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

    npm install
  3. Start the development server

    npm start
  4. Run on your device

    • Scan the QR code with Expo Go (Android) or Camera app (iOS)
    • Or press a for Android emulator, i for iOS simulator

πŸ—οΈ Building

Development Build

eas build --platform all --profile development

Preview Build (Internal Testing)

eas build --platform android --profile preview
eas build --platform ios --profile preview

Production Build

eas build --platform all --profile production

πŸ“± Project Structure

maritask/
β”œβ”€β”€ app/                          # Expo Router screens (file-based routing)
β”‚   β”œβ”€β”€ (tabs)/                   # Tab navigation group
β”‚   β”‚   β”œβ”€β”€ index.tsx             # Today screen (home)
β”‚   β”‚   β”œβ”€β”€ calendar.tsx          # Calendar views
β”‚   β”‚   β”œβ”€β”€ categories.tsx        # Category management
β”‚   β”‚   └── settings.tsx          # App settings
β”‚   β”œβ”€β”€ task/                     # Task-related screens
β”‚   β”‚   β”œβ”€β”€ create.tsx            # Create new task
β”‚   β”‚   └── edit/[id].tsx         # Edit task
β”‚   └── category/                 # Category screens
β”‚
β”œβ”€β”€ src/                          # Source code
β”‚   β”œβ”€β”€ components/               # React components
β”‚   β”‚   β”œβ”€β”€ ui/                   # Base UI components
β”‚   β”‚   β”œβ”€β”€ tasks/                # Task-specific components
β”‚   β”‚   β”œβ”€β”€ calendar/             # Calendar components
β”‚   β”‚   └── categories/           # Category components
β”‚   β”‚
β”‚   β”œβ”€β”€ services/                 # Business logic
β”‚   β”‚   β”œβ”€β”€ database/             # SQLite operations
β”‚   β”‚   β”œβ”€β”€ notifications/        # Notification services
β”‚   β”‚   └── storage/              # AsyncStorage wrappers
β”‚   β”‚
β”‚   β”œβ”€β”€ store/                    # Zustand state management
β”‚   β”‚   β”œβ”€β”€ taskStore.ts          # Task state & actions
β”‚   β”‚   β”œβ”€β”€ categoryStore.ts      # Category state
β”‚   β”‚   └── themeStore.ts         # Theme state
β”‚   β”‚
β”‚   β”œβ”€β”€ i18n/                     # Internationalization
β”‚   β”‚   β”œβ”€β”€ locales/              # Translation files
β”‚   β”‚   └── index.ts              # i18n configuration
β”‚   β”‚
β”‚   β”œβ”€β”€ types/                    # TypeScript definitions
β”‚   β”œβ”€β”€ constants/                # Design system constants
β”‚   β”œβ”€β”€ hooks/                    # Custom React hooks
β”‚   └── utils/                    # Utility functions
β”‚
β”œβ”€β”€ assets/                       # Static assets
β”‚   └── images/                   # App icons and images
β”‚
└── .kiro/                        # Kiro AI configuration

🎨 Design System

Color Palette

  • Primary: Blue (#2196F3)
  • Light: #E3F2FD
  • Background: #E6F4FE
  • Success: Green (#4CAF50)
  • Warning: Orange (#FF9800)
  • Error: Red (#F44336)

Typography

  • System fonts with fallbacks
  • 8pt grid spacing system
  • Material Design 3.0 elevation and shadows

πŸ§ͺ Development

Available Scripts

# Start development server
npm start

# Run on specific platform
npm run android
npm run ios
npm run web

# Lint code
npm run lint

# Type checking
npx tsc --noEmit

Code Quality

  • ESLint for code linting
  • Prettier for code formatting
  • Husky for git hooks
  • lint-staged for pre-commit checks
  • TypeScript strict mode enabled

πŸ—„οΈ Database

  • Engine: SQLite (local)
  • Schema: Version-controlled migrations
  • Connection: Singleton pattern
  • File: maritask.db

Database Schema

  • tasks - Main task data
  • categories - Task categories
  • notifications - Scheduled notifications
  • settings - App settings
  • migration_history - Schema version tracking

🌍 Internationalization

Currently supported languages:

  • πŸ‡ΊπŸ‡Έ English (en)
  • πŸ‡ͺπŸ‡Έ Spanish (es)

To add a new language:

  1. Create a new locale file in src/i18n/locales/[lang]/common.json
  2. Add translations following the existing structure
  3. Import and register in src/i18n/index.ts

πŸ“„ License

This project is private and proprietary.

πŸ‘¨β€πŸ’» Author

Built with ❀️ using React Native and Expo

πŸ™ Acknowledgments

  • Expo - The framework that makes React Native development a joy
  • React Native Paper - Beautiful Material Design components
  • Zustand - Simple and powerful state management
  • date-fns - Modern JavaScript date utility library

Note: This is a mobile-first application optimized for iOS 13+ and Android 6.0+ (API 23+)

About

No description, website, or topics provided.

Resources

License

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors