Coder Social home page Coder Social logo

frontend-onion-architecture's Introduction

To-Do List Application

Esse projeto é um exemplo prático de uma composição baseada padrão de projeto conhecido como Onion Architecture. Nenhuma das funcionalidades aqui possuí algum endpoint com back-end ou integração com o Goolgle, todos os dados são salvos localmente.

Para entender um pouco melhor dessa estrura vale a pena conferir as duas publicações que explicam o porque de cada camada dessa aplicação:

Cebolas e camadas para pradrões de Projetos no Front-end parte I

Cebolas e camadas para pradrões de Projetos no Front-end parte II

Getting Started

  1. Run yarn install or yarn.
  2. Run yarn start.

Features

  • Login
  • Cadastro
  • Logout
  • Cadastrar com Google
  • Gerenciamento de tarefas

Development

Project organization

Aqui uma breve descrição de cada layer que compõe a aplicação.

Folder Description
/ Conteúdo raiz do projeto e configurações como: lint, testes, envs e etc.
/.github/ Configuração do Github como modelos de PR e ações de pipeline para compilação e implantação
/cypress/ Configuração e cenários de testes E2E
/public/ Pasta para arquivos estáticos como index.html, imagens, fontes e scripts
/src/ Estrutura principal do projeto
/src/@fixtures Mocks e abstração para testes unitários e de integração
/src/@types Tipos, interfaces e entidades
/src/adapters Configuração do projeto como criação de banco de dados ou configurações de armazenamento na web
/src/constants Variáveis constantes
/src/layouts Componentes de UI, um forte candidato a ser extraído e se tornar uma biblioteca compartilhada entre projetos, evite usar hooks relacionados a um módulo, store ou requisição de api nesta pasta.
/src/modules Módulos de aplicação baseados em domínios, todos os módulos devem ter um baixo acoplamento, todos os módulos devem ser fortes candidatos a serem extraídos e se tornarem um micro-frontend.
/src/pages Componentes que compõem módulos e layout com composição de rotas e aplicação, esta camada não deve ser extraída do projeto para um micro-frontend.
/src/services Abstração de solicitação de API e componentes externos, como: Apis, Web storages, analytics e outros coletores de eventos
/src/stores Composição de stores que mescla todas as stores de cada módulo e cria um vínculo entre elas.
/src/wrappers Wrappers para páginas ou componentes que precisam executar uma configuração ou comportamento padrão
/src/**/__tests__ Todos os testes de unidade e integração
/src/**/__snapshots__ Snapshots, testes de contrato de HTML.

Commands

Build:

yarn build

Dev open on port 3000:

yarn start

Lint:

yarn lint

Format code:

yarn format

Unit test:

yarn test

Integration test:

yarn test:integration

E2E Test:

yarn e2e

To debug and open cypress browser management run:

yarn e2e:dev

frontend-onion-architecture's People

Contributors

robsonmathias avatar

Stargazers

Rafael Escobar avatar Rafael Escobar avatar Rafael Uchôa avatar  avatar Isac Fadoni avatar  avatar Antônio Della Flora avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.