Skip to content

mixin27/mmcalendar

Repository files navigation

πŸ—“οΈ Myanmar Calendar App

Myanmar Calendar Logo

A modern Myanmar calendar app with calendar views, astrology, events, conversion tools, and printable calendar generation.

Flutter Dart License Platform

Features β€’ Screenshots β€’ Quick Start β€’ Remote Config β€’ Architecture β€’ Contributing


πŸ“± Overview

Myanmar Calendar App combines Myanmar calendar data and Western dates in one app experience:

  • Home month calendar with rich date details
  • Year, week, and day calendar views
  • Date conversion and calendar utilities
  • Events with recurring support
  • Calendar generation (preview/beta) for image/PDF export
  • Remote-configurable holiday overrides

Core calculation runtime is powered by myanmar_calendar_dart, with app-level settings for language, timezone behavior, and display options.


✨ Features

πŸ—“οΈ Core Calendar

  • Myanmar and Western date rendering in month grid
  • Day details with moon phase, sabbath, holidays, and astrological data
  • Multiple calendar views:
    • Month (home)
    • Year view
    • Week view
    • Day view
  • Fast runtime config updates (language, timezone source, holiday overrides)

πŸŒ™ Myanmar Date & Astrology

  • Myanmar month/day/year and Sasana year
  • Fortnight day and moon phase information
  • Astrological indicators including:
    • Sabbath / Sabbath Eve
    • Yatyaza
    • Pyatthada / Afternoon Pyatthada
    • Mahabote / Nakhat / Nagahle related outputs

πŸ”„ Converter Tools

  • Myanmar ↔ Western date conversion
  • Date difference calculator
  • Date arithmetic tools
  • Moon phase finder

πŸ“Œ Events

  • Create, edit, and delete events
  • Recurring event support
  • Day-based event timeline and quick navigation
  • Event categories and priority support

πŸ–¨οΈ Calendar Generation (Preview/Beta)

  • Generate by selected month or full year
  • In-app page preview and export flow
  • PDF/image export and save/share actions
  • Theme/background customization
  • Overlay editor support for:
    • Text
    • Emoji
    • Sticker
    • User image
  • Layout tools for portrait/landscape and printable formats

Calendar Generation is currently preview/beta and still under active refinement.

🎨 Personalization

  • Light/dark theme modes
  • Multiple theme presets + custom colors
  • Dynamic app icon selection (platform dependent)
  • App language and calendar language controls
  • Display toggles (holidays, astrology, Myanmar/Western date visibility, etc.)
  • Timezone behavior:
    • Use device timezone (recommended default)
    • Or fixed Myanmar timezone fallback

☁️ Remote Config + Onboarding

  • Firebase Remote Config driven holiday overrides
  • App update prompts from remote config (optional/required update support)
  • First-run consent flow for analytics/crash reporting
  • Promo carousel for onboarding and new feature announcements

πŸ“² Integrations

  • Android home widgets (configurable theme/options)
  • Telegram web integration hooks
  • Local-first storage using SQLite (drift)

πŸ“Έ Screenshots

Home Month Day Details Year View
Home Month Day Details Year View
Week View Day View Converter
Week View Day View Convert
Calculator Arithmetic Moon Phase
Calculate Arithmetic Moon Phase
Events List Event Form Settings
Events List Event Form Settings
Generation Preview Generation Editor Export Result
Generation Preview Generation Editor Export Result
Widget Settings
Widget Settings

πŸš€ Quick Start

Prerequisites

  • Flutter SDK 3.x
  • Dart SDK 3.11+
  • Android Studio or VS Code with Flutter tooling
  • iOS builds require Xcode (macOS)

Run Locally

# Clone
git clone https://github.com/mixin27/mmcalendar.git
cd mmcalendar

# Install workspace dependencies
flutter pub get

# Run mobile app package
cd apps/myanmar_calendar
flutter pub get
flutter run

Run on Chrome (Web)

cd apps/myanmar_calendar
flutter run -d chrome

Production Builds

cd apps/myanmar_calendar

# Android
flutter build apk --release
flutter build appbundle --release

# iOS (macOS only)
flutter build ios --release

# Web
flutter build web --release

iOS Alternate App Icons (Testing Note)

  • Alternate icon switching is supported in the app for iOS.
  • iOS Simulator may fail with LaunchServices resource/token errors (NSPOSIXErrorDomain code=35) even when configuration is correct.
  • For reliable verification, test on:
    • a physical iPhone, or
    • a cloud real-device testing service (for example BrowserStack App Live).

Native Setup Recovery (Android Icons/Widgets + iOS Icons)

If platform folders are regenerated and native integrations are lost:

./scripts/restore_native_mobile_setup.sh --scope all
./scripts/verify_native_mobile_setup.sh --scope all

Reference: docs/architecture/native_mobile_setup.md


☁️ Remote Config

Holidays Config (required for holiday override feature)

  • Key: holidays_config_v2
  • Type: JSON string

Sample payload:

{
  "customHolidayRules": [
    {
      "id": "team_founding_day",
      "name": "Team Founding Day",
      "type": "other",
      "localizedNames": {
        "my": "α€‘α€žα€„α€Ία€Έα€α€Šα€Ία€‘α€±α€¬α€„α€Ία€”α€±α€·",
        "en": "Team Founding Day"
      },
      "rule": {
        "kind": "westernDate",
        "month": 9,
        "day": 1
      },
      "cacheKey": "team_founding_day",
      "cacheVersion": 1
    },
    {
      "id": "thingyan_special",
      "name": "Thingyan Special",
      "type": "other",
      "rule": {
        "kind": "myanmarDate",
        "month": 1,
        "day": 1
      }
    }
  ],
  "disabledHolidays": ["halloween"],
  "disabledHolidaysByYear": {
    "2027": ["valentinesDay"]
  },
  "disabledHolidaysByDate": {
    "2026-10-31": ["halloween"]
  }
}

Reference:

App Update Config (optional)

If you enable remote-config update checks, these keys are used:

  • app_update_enabled (bool)
  • app_update_latest_build_number (int)
  • app_update_latest_version (string)
  • app_update_min_supported_build_number (int)
  • app_update_force_title (string)
  • app_update_force_message (string)
  • app_update_optional_title (string)
  • app_update_optional_message (string)
  • app_update_release_notes (string)
  • app_update_android_url (string)
  • app_update_ios_url (string)
  • app_update_web_url (string)

πŸ—οΈ Architecture

This repository is a Flutter workspace with feature packages and shared layers.

mmcalendar/
β”œβ”€β”€ apps/
β”‚   └── myanmar_calendar/          # Main app
β”œβ”€β”€ packages/
β”‚   β”œβ”€β”€ shared/
β”‚   β”‚   β”œβ”€β”€ core/                  # Contracts, ports, constants, runtime utils
β”‚   β”‚   β”œβ”€β”€ localizations/         # i18n resources
β”‚   β”‚   β”œβ”€β”€ ui_kit/                # Shared UI building blocks
β”‚   β”‚   └── overlay_editor/        # Overlay editing package
β”‚   β”œβ”€β”€ features/
β”‚   β”‚   β”œβ”€β”€ calendar/
β”‚   β”‚   β”œβ”€β”€ views/
β”‚   β”‚   β”œβ”€β”€ converter/
β”‚   β”‚   β”œβ”€β”€ events/
β”‚   β”‚   β”œβ”€β”€ settings/
β”‚   β”‚   β”œβ”€β”€ calendar_generation/
β”‚   β”‚   β”œβ”€β”€ promo/
β”‚   β”‚   β”œβ”€β”€ holidays/
β”‚   β”‚   └── home_widgets/
β”‚   └── integrations/
β”‚       β”œβ”€β”€ database/              # Drift/SQLite
β”‚       β”œβ”€β”€ firebase/              # Remote config + analytics/crash adapters
β”‚       β”œβ”€β”€ app_update/
β”‚       └── telegram_web/
└── scripts/

Stack

  • Flutter + Dart
  • flutter_bloc (state management)
  • go_router (navigation)
  • drift (local database)
  • get_it + injectable (dependency injection)
  • myanmar_calendar_dart (calendar engine)

🀝 Contributing

Contributions are welcome. See CONTRIBUTING.md.

Development Commands

# Workspace dependencies
flutter pub get

# Codegen (from workspace root)
dart run build_runner build --delete-conflicting-outputs

# Analyze
flutter analyze

πŸ“ License

This project is licensed under the MIT License. See LICENSE.


πŸ™ Acknowledgments

  • Myanmar calendar calculations based on Yan Naing Aye's algorithm
  • Traditional Myanmar astrology sources and community feedback
  • Flutter and open-source ecosystem contributors

πŸ“ž Support


🌟 Star History

Star History Chart


Made for the Myanmar calendar community

⬆ Back to Top

About

Myanmar calendar application.

Topics

Resources

Contributing

Stars

Watchers

Forks