Giter VIP home page Giter VIP logo

movies-bunker's Introduction

Movies Bunker

Sobre o repositório

Este repositório é um fork do desafio da Junto Seguros para a vaga de Desenvolvedor Frontend, a descrição completa do desafio pode ser encontrada no link.

Iniciando

A base do desafio é criar um SPA que conectado a API fornecida pela The Open Movie Database OMDb e permita que nosso usuário faça buscas no catálogo de filmes.

Para o desafio optei por utilizar React e construir uma Single Page Application algumas bibliotecas para chegar ao resultado esperado e entregar uma boa experiência para o usuário.

Solução

Mobile

Página principal Loader Página de favoritos Página de favoritos (Vazia)
Screen Screen Screen Screen

Desktop

Página de principal Página de favoritos
Screen Screen

A página busca na base da OMDb os filmes digitados pelo usário e entrega algumas informações básicas sobre o filme, como incremento o usuário pode clicar no icone de estrela e favoritar seus filmes preferidos, que podem ser consultados na aba lateral.

Utilizei como base para o desenvolvimento me guiar seguindo o conceito de mobile first e projetei toda a solução direcionada inicialmente para dispositivos movéis.

Pré requisitos

Para utilizar os projetos é necessário ter o Node instalado na máquina, o projeto foi criado utilizando node na versão 12.16.3 download aqui.

O projeto utilizou como base de sua criação o create react app.

Instalação

Para rodar o projeto basta utilizar o comando:

  $ npm install
  # ou caso utilize yarn
  $ yarn install

Rodando o projeto

$ npm start
# ou caso utilize yarn
$ yarn start

O projeto utiliza além do react, as seguintes bibliotecas:

  • Axios (recuperar os dados da Api).
  • React Router Dom (gerenciar a navegação entre as páginas)
  • Redux & React Redux (estado global para a aplicação)
  • Redux Persist (persistir dados na página mesmo após fecharmos a página, persistindo os dados no navegador)
  • Styled Components (auxiliar na criação dos componentes, estilos, e temas)
  • Styled Icons (opções de ícones para a página)

Estrutura do projeto

src/
  -assets/
  -components/
  -pages/
    -Favorites/
    -Home/
  -redux/
  -routes/
  -services/

assets

Pasta para a definicação do tema padrão da nossa aplicação.

components

Nesse diretório ficam os componentes que podem ser compartilhados no nosso projeto, componentes 'comuns' para todo o projeto.

pages

O diretório onde ficam armazenadas as páginas, cada página fica dentro do seu respectivo diretório, a página tem como principal responsabilidade buscar e tratar dados (através do services e redux) para serem repassados para os componentes.

Observação

Caso a pagina necessite de estilos própios eles são encontrados no arquivos styles.js que ficam dentro do diretório da página e não devem ser importados por nenhuma outra página, caso isso ocorra ele deve ser deslocado para o diretório _components- e virar dependência de ambas as páginas.

redux

A pasta contém a configuração da nossa store, da biblioteca redux-persist. O projeto utiliza o conceito a estrutura do Redux com o padrão Duck, nesse padrão agregamos as actions, reducers e types em um único arquivo, caso queira conhecer mais sobre o padrão sugiro os links:

Nosso aplicativo utiliza a biblioteca redux-persist para persistir os dados em conjunto com o LocalStorage, o nome da nossa store é movieStorage e ela é criada no redux e no localStorage assim que a página é aberta.

routes

Organização das rotas da aplicação utilizando react router dom, nosso roteamento também depende do componente de TabBar criado na pasta components.

services

O diretório services armazena os arquivos responsáveis por recuperar e enviar dados para nossas API's.

movies-bunker's People

Contributors

nikolasbrandao avatar

Watchers

 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.