Source Code Creation Guide
Follow these instructions for implementing new features, widgets, and business logic in the FoodSavr project.
- •
Follow 3-Tier Architecture:
- •UI Layer (
views/,widgets/): Create views and reusable widgets that delegate to services. - •Application Layer (
services/): Implement business logic and orchestrate use cases. - •Data Layer (
repositories/,models/,interfaces/): Define models, repository contracts, and Firestore implementations.
- •UI Layer (
- •
Define the Domain Model:
- •Create models in
lib/models/withtoJson()andfromJson()for Firestore serialization.
- •Create models in
- •
Establish Repository Contracts:
- •Define abstract repository interfaces in
lib/interfaces/. - •Implement the repository in
lib/repositories/, typically using Firestore.
- •Define abstract repository interfaces in
- •
Implement Business Logic in Services:
- •Create services in
lib/services/to handle validation, orchestration, and business rules. - •Inject repository interfaces into services, not concrete implementations.
- •Create services in
- •
Register in Service Locator:
- •Add new services and repositories to the dependency injection container in
lib/service_locator.dart.
- •Add new services and repositories to the dependency injection container in
- •
Adhere to Naming Conventions:
- •File names:
snake_case.dart - •Classes:
PascalCase - •Variables/Functions:
camelCase - •Private members:
_prefixedWithUnderscore
- •File names: