A compact, interview-oriented monorepo that demonstrates how I structure and approach multi-stack development with a focus on clean architecture, testability, and reusability.
This repository starts with a Flutter workspace managed by Melos MELOS.md and is designed to expand with small examples and reusable packages. Additional folders for React/React Native and .NET are planned to illustrate cross-stack organization within a single repository.
- Show how I organize codebases for clarity and reuse (packages, separation of concerns).
- Demonstrate fundamentals: design patterns and state management in Dart/Flutter.
- Provide a minimal app that consumes reusable packages (e.g., adaptive layout, login facade).
- Prepare room for future web (React / React Native) and backend (.NET) examples.
monorepo-showcase/
├─ flutter/
│ ├─ dart\_design\_patterns/ # Small, focused pattern demos (factory, strategy, etc.)
│ ├─ state\_management\_examples/ # Provider, Riverpod, Bloc, Cubit mini-examples
│ ├─ packages/
│ │ ├─ adaptive\_layout\_menu/ # Reusable responsive UI & adaptive scaffold
│ │ └─ dynamic\_login/ # Login facade (HTTP/mock), backend-agnostic
│ └─ apps/
│ └─ simple\_app/ # Minimal app using the packages above
├─ web/ # (planned) React examples
├─ mobile/ # (planned) React Native (Expo) examples
└─ dotnet/ # (planned) .NET Minimal API (e.g., /auth/login)
Status: Flutter workspace initialized; examples and packages will be added iteratively.
- Flutter + Melos for modularization and local package development.
- Design Patterns (Dart) to demonstrate reasoning beyond “just code”.
- State Management side-by-side: Provider, Riverpod, Bloc, Cubit.
- Login Facade package to decouple UI from backend (HTTP/mock), enabling easy swaps (.NET/Firebase/etc.).
Prerequisites
- Flutter SDK (3.3+)
- Dart SDK (3.3+)
- Melos (global):
dart pub global activate melos
Bootstrap
flutter --version
dart --version
dart pub global activate melos
melos bootstrapRun the sample app (once available)
cd flutter/apps/simple_app
flutter runBackend note (optional): when the .NET Minimal API is added (
POST /auth/login),
- iOS/macOS:
http://localhost:5000- Android emulator:
http://10.0.2.2:5000- Physical device: use your machine’s LAN IP (e.g.,
http://192.168.1.x:5000)
- Clean architecture first: clear boundaries, testable code, reusable packages.
- Separation of concerns: UI, domain, and infrastructure isolated where it matters.
- Linting & tests: prefer simple, focused unit/widget tests; keep examples small and readable.
- Docs: each example/package includes a short README with purpose and trade-offs.
- Add Dart design pattern demos.
- Add state management examples (Provider, Riverpod, Bloc/Cubit).
- Create reusable packages: adaptive_layout_menu, dynamic_login.
- Build simple_app consuming those packages.
- (Optional) Add .NET Minimal API for
/auth/login. - (Optional) Add React / React Native micro-examples.