npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

cra-template-mio

v1.0.3

Published

Create react app template for mio applications

Downloads

2

Readme

Tabela de Conteúdo

Sobre o Projeto

Este projeto é um template básico para a facilitar e agilizar a criação de aplicativos da família Data C MIO utiliando React Js.

Tecnologias

Abaixo segue as tecnologias que são instaladas e configuradas por este template:

  • React - O React é uma biblioteca JavaScript para construção de interfaces de usuários;

  • Material-UI - O Material-UI é uma biblioteca de componentes baseadas no Material Design da Google;

  • Axios - O axios é um cliente HTTP utilizado para fazer chamadas em APIs em um servidor backend;

  • Moment - O Moment é uma biblioteca para validação, manipulação e visualização de datas;

  • Brazilian-Values - Biblioteca para validar e formatar valores brasileiros como dinheiro (BRL), CPF, CNPJ, datas etc;

  • Formik - O Formik nos ajuda a construir formulários poderosos com validações e gerenciamento de estado;

  • Jwt Decode - Biblioteca para fazer o decode de Jason Web Tokens;

  • Mio Library Autenticação - Componente de interface e gerenciamente de autenticação do usuário.

  • Prop Types - Verificação de tipo em tempo de execução para propriedades (props) React e objetos semelhantes;

  • Reactotron - O Reactotron é um app Desktop para inspecionar projetos em React;

  • React Router DOM - O React Router DOM permite navegar entre diferentes componentes alterando a url do navegador, o histórico mantendo o estado da aplicação.

  • Redux - Redux é um container para gerenciamento de estado da aplicação

    • React Redux - Biblioteca para utilizar Redux no React
    • Redux Saga - O redux-saga é uma biblioteca que tem como objetivo tornar os efeitos colaterais dos aplicativos mais fáceis de gerenciar, mais eficientes de executar, fáceis de testar e melhores em lidar com falhas;
  • Babel - O Babel é um compilador JavaScript gratuito e de código aberto e transpiler configurável usado no desenvolvimento de aplicações Javascript;

    • babel-eslint - Este pacote é um wrapper do parser do Babel para o ESLint;
    • babel-plugin-root-import - Esse plugin do Babel permite que sejam feitos imports e requires em caminhos baseados em uma raiz(root);
  • Eslint - O ESLint é uma ferramenta de lint plugável para JavaScript e JSX;

  • EditorConfig - O EditorConfig é um formatador de arquivos e coleções em forma de Plugin para Editores de código/texto com o objetivo de manter um padrão de código consistente entre diferentes editores, IDE's ou ambientes;

Instalação

  1. Para instalar e utilizar o template basta executar o comando:
npx create-react-app mio-app --template mio
  1. Acesse a pasta mio-app que foi criada pelo template e rode o npm start para inciar o aplicativo.
cd mio-app
npm start

Acesse http://localhost:3000/ para ver o aplicativo funcionando.

Estrutura de Arquivos

mio-app
├── README.md
├── node_modules
├── package.json
├── .gitignore
├── .Dockerfile
├── .dockerignore
├── .env
├── .eslintrc.json
├── .config-overrides.js
├── .jsonconfig.json
├── public
│   ├── favicon.ico
│   ├── index.html
│   └── manifest.json
└── src
    ├── App.js
    ├── index.js
    ├── routes.js
    ├── serviceWorker.js
    ├── assets
    |   └── images
    |       ├── background.png
    |       ├── [email protected]
    |       ├── Logo.png
    |       └── [email protected]
    ├── configs
    |   └── ReactotronConfig.png
    ├── pages
    |   |── Home
    |   |   ├── index.js
    |   |   └── styles.js
    |   |── Layout
    |   |   ├── index.js
    |   |   └── LeftMenu.js
    |   └── Login
    |       ├── index.js
    |       └── styles.js
    ├── services
    |   └── api.js
    ├── stores
    |   |── index.js
    |   |── ducks
    |   |   |── app.js
    |   |   └── index.js
    |   └── sagas
    |       └── index.js
    └── styles

Guia de Uso

The mio template provide a starter configurations to begin write your code, let´s know about the reason behind each folder.

  • src - Diretório contendo todos os arquivos da aplicação, é criado um diretório src para que o código da aplicação possa ser isolado em um diretório e facilmente portado para outros projetos, se necessário;

    • config - Diretório para guardar os arquivos de configuração da aplicação, por exemplo, a configuração de uso do Reactotron e configuração de inicialização do Firebase;

      • ReactotronConfig.js - Arquivo contendo a configuração do Reactotron para ser usado na aplicação;
  • pages - Diretório onde ficam as páginas (telas) da aplicação, como forma de padronização e boas práticas toda página fica dentro de um diretório com seu nome;

    • Home - Diretório de exemplo para páginas que só permitem acesso para usuários autenticados;

      • index.js - Arquivo com toda a lógica da página, tal como os componentes visuais a serem renderizados;
      • styles.js - Arquivo com as definições de estilo da página Home;
  • Layouts - Diretório que contém os arquivos de Layout.

    • index.js - Arquivo com toda a lógica do layout;
    • LeftMenu.js - Componenete responsável por renderizar o menu lateral esquerdo;
  • Login - Página que contém um formulário de Login para realizar a autenticação no sistema;

    • index.js - Arquivo com toda a lógica da página, tal como os componentes visuais a serem renderizados;
    • styles.js - Arquivo com as definições de estilo da página de Login;
  • services - Diretório contendo arquivos para acesso a serviços externos como API, banco de dados, storages, etc.

    • api.js - Arquivo de exemplo que define um cliente HTTP axios para consumir uma API;
  • store - Diretório contendo arquivos de uso do Redux para realizar a manipulação do estado da aplicação

    • ducks - Diretório para estruturar os arquivos do Redux utilizando o duck pattern, saiba mais neste blog Estrutura Redux escalável com Ducks;

      • index.js - Arquivo responsável por importar cada Duck criado e combiná-los em um só para serem usados no Redux através da função combineReducers();
      • app.js - Módulo de exemplo mas que pode ser utilizado com a intenção de gerenciar estados de aspecto global da aplicação
    • sagas - Diretório para estruturar os arquivos do Redux utilizando o duck pattern, saiba mais neste blog Estrutura Redux escalável com Ducks;

      • index.js - Arquivo responsável por relacionar as Actions disparadas pela aplicação às funções do Saga, que são Funções Generator, nele é definido os Action Types a serem "escutados" e qual função executar quando um Action Creator for executado;
    • index.js - Arquivo responsável por executar a configuração para o funcinamento do Redux + Redux Saga, dentre suas funções estão: criar um Middleware para monitorar as Actions disparadas na aplicação, aplicar o middleware criado juntamente com um Enhancer que monitora o fluxo de uma função do Saga, criar o store global da aplicação combinando os reducers existentes e exportar o state criado;

  • styles - Diretório contendo arquivos de definição de estilos da aplicação

    • global - Estilo global da aplicação
    • theme - Configuração do tema da aplicação utilizado pelo Material-UI
  • routes.js - Arquivo com as configurações de navegação da aplicação, e gerenciamento de permissão de cada página;

  • jsconfig.json - Arquivo de configuração do JavaScript no Editor, ele é o responsável por ativar o Auto Complete de códigos JavaScript na aplicação;

  • package.json - Diferente dos projetos comuns, esse arquivo tem as configurações necessárias para a publicação do Template no NPM.

  • config-overrides.js - Arquivo para sobrescrever configurações padrões do cra padrão

  • eslintrc.json - Arquivo de configuração do ESLint, é nele que são inseridas as regras e configurações de Linting do projeto, tal como a configuração do Resolver para o Babel Plugin Root Import e configuração da variável global DEV;

  • .env - Arquivo com variáveis de ambiente;