Skip to content

CowboyGH/moveUP-flutter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

30 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🀸 moveUP Mobile Fitness App

Mobile client for the moveUP fitness platform.

Dart Version Flutter Version


πŸ“š Table of Contents


πŸš€ Highlights

  • πŸ›οΈ Clean Architecture (Data β†’ Domain β†’ Presentation)
  • πŸ’‰ Dependency Injection (GetIt + Provider)
  • ⚠️ Error Handling (Result pattern + Failure hierarchy)
  • πŸ“ Logging with AppLogger abstraction and Mixin for Bloc/Cubit
  • 🧭 Navigation with GoRouter
  • 🌐 Connectivity Tracking with connectivity_plus
  • πŸ“¦ Modular Structure for scalable feature development

πŸ“¦ Tech Stack

Category Technology
Framework Flutter 3.41.0+
State Management flutter_bloc
Dependency Injection get_it, provider
Navigation go_router
Connectivity Tracking connectivity_plus
HTTP Client dio + retrofit
Code Generation freezed, json_serializable, build_runner
Logging logger
Testing mockito, bloc_test, flutter_test
UI Components flutter_svg, cached_network_image

πŸ—οΈ Architecture

This app follows Clean Architecture principles:

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚           Presentation Layer            β”‚
β”‚      (Pages, Widgets, BLoC/Cubit)       β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                    β”‚
                    β”‚ uses
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚             Domain Layer                β”‚
β”‚   (Entities, UseCases, Repositories*)   β”‚  * interfaces only
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–²β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                    β”‚
                    β”‚ implements
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚              Data Layer                 β”‚
β”‚  (DTOs, DataSources, Repositories Impl) β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸ“‚ Project Structure

lib/
β”œβ”€β”€ core/                  # Shared infrastructure
β”‚   β”œβ”€β”€ di/                # Dependency injection
β”‚   β”œβ”€β”€ failures/          # Error handling (Failure)
β”‚   β”œβ”€β”€ result/            # Result-pattern
β”‚   β”œβ”€β”€ router/            # Navigation (GoRouter)
β”‚   β”œβ”€β”€ services/          # Services (Network, etc.)
β”‚   └── utils/             # Utilities (Logger, Analytics)
β”œβ”€β”€ features/              # Feature modules (Clean Architecture)
β”‚   └── [feature_name]/
β”‚       β”œβ”€β”€ data/          # DTOs, DataSources, Repository Impl
β”‚       β”œβ”€β”€ domain/        # Entities, UseCases, Repository Interfaces
β”‚       └── presentation/  # Pages, Widgets, BLoC/Cubit
β”œβ”€β”€ uikit/                 # Shared UI components
└── main.dart              # App entry point

πŸ› οΈ Getting Started

Prerequisites

  • Flutter SDK: >=3.41.0
  • Dart SDK: >=3.11.0

Setup

  1. Install dependencies:

    flutter pub get
  2. Run code generation:

    flutter pub run build_runner build --delete-conflicting-outputs
  3. Run the app:

    flutter run

πŸ§ͺ Testing

Run tests:

# Unit tests
flutter test

# Widget tests
flutter test test/features/*/presentation/

# Coverage (requires lcov)
flutter test --coverage
genhtml coverage/lcov.info -o coverage/html

πŸ“– Documentation

Generate API docs from Dart doc-comments:

dart doc --output doc/api

Serve docs locally:

dart pub global activate dhttpd
dart pub global run dhttpd --path doc/api

Then open:

http://localhost:8080

πŸ‹ Docker Build

Build Android APK using Docker:

docker build \                                                  
  --build-arg BUILD_DATE=$(date -u +'%Y-%m-%dT%H:%M:%SZ') \
  --build-arg VCS_REF=$(git rev-parse --short HEAD) \
  --progress=plain \
  --no-cache \
  -t moveUP-app-android:latest .

Extract APK files:

docker create --name temp-flutter moveUP-app-android:latest
docker cp temp-flutter:/artifacts/. ./apk-output/
docker rm temp-flutter

πŸ“ Changelog

All notable changes to this project are documented in CHANGELOG.md.

About

Diploma project for Sibcode LLC πŸŽ“ Personalized training programs, workload adaptation system, progress tracking statistics, and Firebase Push notifications πŸ”₯

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors