Skip to content

vfthome/ca_flutter_ecommerce

 
 

Repository files navigation

Controle seu negócio e ganhe tempo como ERP Conta Azul

Conta Azul Flutter Test - 1 Conta Azul Flutter Test - 2

Flutter Test - GitHub Repository (you should create a fork)

GitHub - dtodt/ca_flutter_test: Conta Azul Flutter Test

Proposed Solution

Development process, step by step.

Figma Design System & Frontend Reference (Created by VFTHOME)

FIGMA DESIGN SYSTEM & FRONTEND REFERENCE

E-commerce Instructions

Features Required

The project goal is to develop a mobile application with test coverage and the following features:

  • Splash Art: Animation, responsive UI/UX, Cropping container effect on “Conta Azul” logo, Circle animation and BG color transitions, logo color changing animation from: blue > white.
  • Authentication: Login, Logout, User Creation, Password Recovery, Delete User.
  • Home (fake API list): Fake API response list.
  • Favorites: Items that were marked as favorite by the user.
  • User Offline Warning: User offline popup banner that gets displayed when user is offline.

Software Architecture Adopted

The proposed software architecture used by the project is detailed below, including MiniCore Arc images and diagrams.

Architecture Reference

ARCHITECTURE.md TDD - Test Driven Design with Clean Architecture

Additional Documentation

  • MiniCore Arc - Documentation:

    Software architecture proposal for Flutter/Dart Inspired by Robert C. Martin’s - Clean Architecture.

    MiniCore Arc

    1. UI (Presentation Layer): Flutter widgets that compose the user interfaces of the application.
    2. Interactor (Business Logic Layer): Responsible for defining business logic of the feature, managing its state, entities, interfaces, repositories, services, validations, DTOs, and current state.
    3. Data (Data Layer): Responsible for implementing the services and repositories defined in the Interactor Layer (business logic layer).
  • Flutter Modular - Documentation:

    Flutter Modular

  • Flutter TDD - Step by step:

General Rules - Must Read

1) Commits

Conventional Commits

Common commit title types

  • [FIX]
  • [FEAT]
  • [BREAKING CHANGE]
  • Other used titles: build, chore, ci, docs, feat, fix, perf, refactor, revert, style, test.

Commit Structure

[TYPE_CHOOSEN] FEATURE_NAME: mandatory description text goes here…

[OPTIONAL BODY HERE]

[Optional footer → “ Best regards, Vitor F. Thomé. ”]

EXAMPLE:

[FEAT] Onboarding Feature: fully functional onboarding feature.

Changelog:

  • Shared widgets updated.
  • Core project interfaces updated.
  • Assets added.
  • Design System improvements.
  • Testing architecture using a StateEntity for housing feature atoms.
  • Development of business logic for Onboarding feature.

Best regards, Vitor.

2) Language & Naming Conventions

Language used in the project is English. All comments and naming conventions should be in English and follow the rules below:

  • Data sources:
    • Class name: <Name>DataSource
    • File name: <name>_ds.dart
    • Folder name: datasources/
    • Parent folder name: data
  • Data source contracts:
    • Class name: I<Name>DataSource
    • File name: i_<name>_ds.dart
    • Folder name: datasources/
    • Parent folder name: interactor
  • Data transfer objects (DTOs):
    • Class name: <Name>DTO
    • File name: <name>_dto.dart
    • Folder name: dtos/
    • Parent folder name: data or interactor
  • Entities:
    • Class name: <Name>Entity
    • File name: <name>_entity.dart
    • Folder name: entities/
    • Parent folder name: interactor
  • Pages:
    • Class name: <Name>Page
    • File name: <name>_page.dart
    • Folder name: pages/
    • Parent folder name: ui or (public)
  • Repositories:
    • Class name: <Name>Repository
    • File name: <name>_repository.dart
    • Folder name: repositories/
    • Parent folder name: data
  • Repository contracts:
    • Class name: I<Name>Repository
    • File name: i_<name>_repository.dart
    • Folder name: repositories/
    • Parent folder name: interactor
  • Services:
    • Class name: <Name>Service
    • File name: <name>_service.dart
    • Folder name: services/
    • Parent folder name: data or interactor
  • Use Cases:
    • Class name: <Name>UseCase
    • File name: <name>_uc.dart
    • Folder name: usecases/
    • Parent folder name: interactor
  • Value Objects:
    • Class name: <Name>VO
    • File name: <name>_vo.dart
    • Folder name: vos/
    • Parent folder name: interactor
  • Widgets:
    • Class name: <Name>Widget
    • File name: <name>_widget.dart
    • Folder name: widgets/
    • Parent folder name: ui

Keep these files inside the feature that they belong or in a shared folder if its use is common.

Special case for pages if using routefly, they are kept inside the (public) folder.

3) Dependency Injection

Package Adopted: flutter_modular

4) App Routes

Package Adopted: flutter_modular

5) State Management

Package Adopted: asp

6) Use the company software architecture, and good luck!

vfthome

About

Conta Azul - Flutter Test

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Dart 81.5%
  • C++ 8.8%
  • CMake 7.0%
  • Ruby 1.0%
  • Swift 0.8%
  • C 0.5%
  • Other 0.4%