Skip to content

kartikeyaa-k/crewmeister_app

Repository files navigation

🚀 crewmeister_app

The central entrypoint for the Crewmeister application. This Flutter app ties together all internal packages—including absence_manager as the feature module and crewmeister_core for shared utilities—to deliver a modular, high-performance, and well-architected solution.

Preview

📱 iOS

iOS Demo

💻 Web

Web Demo

🌐 Live Web App

👉 View Live App

Please use chrome for better compatibility. Hosted via GitHub Pages, built with flutter build web --base-href=/crewmeister_app/

📱 APK Download

  • Go to: Actions tab
  • Click latest run of Build & Deploy APK + Web
  • Download crewmeister_app_apk under Artifacts

🚀 Continuous Integration & Deployment

This repo uses GitHub Actions to:

  • ✅ Build & upload release APK as artifact
  • ✅ Build and deploy the web version to GitHub Pages
  • ✅ Run tests and validate formatting/lints

⚙️ Getting Started

📂 Folder Structure

crewmeister_app/
├── bootstrap.dart               # Entry bootstrap logic with environment setup
├── crewmeister_app.dart         # Root widget of the app
├── environment_config.dart      # Environment-specific configurations
├── main.dart                    # Main file for launching the app
├── service_locator.dart         # Dependency injection setup

🔨 Prerequisites

📥 Installation

# Clone the repo
git clone https://github.com/your-org/crewmeister.git
cd crewmeister

# Install dependencies
flutter pub get 
# or run the script if available
./build_runner.sh

▶️ Run the App

You can run the app using VS Code’s launch config or via CLI:

flutter run -t lib/main.dart --dart-define=BASE_URL=https://absence-manager-api-4245.onrender.com

📦 VS Code Launch Config Example:

{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "crewmeister_app",
      "request": "launch",
      "type": "dart",
      "program": "lib/main.dart",
      "args": [
        "--dart-define=BASE_URL=https://absence-manager-api-4245.onrender.com",
        "--web-browser-flag=--disable-web-security"
      ]
    }
  ]
}

🧪 Running Tests

flutter test

✅ 100% coverage for core business logic
🧪 Tests are located in absence_manager and crewmeister_core

🧩 Project Modules

This app depends on the following packages:

  • absence_manager – Absence management logic, including pages, components, state management, and API integration
  • crewmeister_core – Shared utilities, design system, theme, and network layer
  • absence_manager_api – Dart Frog backend for serving absence data

✨ Highlights

  • Cleanly separated concerns via modular packages
  • Uses GetIt for dependency injection
  • Applies GoogleFonts.poppins and Material3 theming
  • Tested state management using bloc_test
  • Member name mapping with absences handled on server side
  • Lint rules
  • Zero dart analyze issues.
  • Test cases
  • Githooks - missing
  • PR rules - missing
  • Light & Dark theme support, App changes theme as per device theme
  • 100% coverage unit test for business logic
  • Updated mock data to 2025 to be more relevant for testing or demo

📌 TODOs

  • Add pre-push git hook for test & lint
  • Enforce PR-based branch protection
  • CI badge + version badge
  • Changelog file and tag-based release notes

About

The central entrypoint for the Crewmeister application. This Flutter app ties together all internal packages—including absence_manager as the feature module and crewmeister_core for shared utilities—to deliver a modular, high-performance, and well-architected solution.

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors