Giter Club home page Giter Club logo

murabei-test's Introduction

Murabei test

Description

Esse e o teste para Desenvolvedor FullStack na Murabei Data Science, usando Docker, Python, Nextjs and sqlite3.

O objetivo deste teste e avaliar a capcidade do desenvolvedor em criar uma aplicacao Frontend e integra-la em uma API Python. Toda a aplicacao e mantida em containers Docker, e roda usando docker compose. Esta e a mesma arquitetura usada em todos os projetos internos da Murabei.

Instrucoes

O repositorio e dividido em 3 pastas:

  • _docker-compose
  • backend
  • frontend

Na pasta _docker-compose, estao os arquivos responsaveis por subir todas as imagens Docker. Um docker-compose.yml, que possui as informacoes de quais containers e imagens devem subir; um script docker-up.bash que sobe os containers baseado no arquivo docker-compose.yml; e um arquivo docker.log, que armazena todos os logs da aplicacao.

Ja na pasta backend esta a API de livros, em Python Flask. Esta API tem uma gama de operacoes basicas, como listagem de livros, criacao, busca por autor e titulo. Esta API ja esta pre-pronta, mas pode ser alterada de acordo com a sua necessidade, sem problemas.

Esta pasta possui um script build.bash, que builda a imagem docker a ser utilizada no docker-compose.yml.

E, a pasta frontend, onde devem ser colocados codigos do FE. Aqui na Murabei, utilizamos o NextJS como framework de React, logo, seu FE deve ser desenolvido em NextJS, pelo menos, na versao 13, que ja possui Server Components e Server Actions.

Inicializacao

Clone o repositorio do Github, e va na pasta backend, e rode o script build.bash. Esse script ira buildar uma imagem docker local para o seu backend. Depois, va na pasta _docker-compose e rode o script docker-up.bash, que ira subir o docker-compose.yml, subindo todos os servicos.

Objetivos do Teste

O objetivo deste teste e criar uma aplicacao FE em NextJS que faz as operacoes basicas de CRUD, como listar, criar e deletar livros, alem de permitir buscar esses livros pelo titulo ou pelo autor.

O FE deve rodar junto com os outros servicos em docker, ou seja, deve ser adicionado um servico ao docker-compose.yml com o nome frontend. Para isso, o FE precisa de um Dockerfile, e de um script build.bash, como o servico da API.

IMPORTANTE: ao rodar o docker-compose.yml, o FE deve subir junto com os outros servicos.

Avaliacao

Aqui vao os pontos que sera avaliados no teste:

Obrigatorios

  • O FE deve possuir uma imagem docker, e rodar junto com os outros servicos no docker-compose.yml (1 ponto)
  • O FE deve possuir uma tela de listagem dos livros (1 ponto)
  • O FE deve possuir uma tela de busca de livros por titulo (1 ponto)
  • O FE deve possuir uma tela de busca de livros por autor (1 ponto)
  • O FE deve possuir uma tela de criacao de livros (1 ponto)
  • O FE deve possuir uma funcao de de deletar livros (1 ponto)
  • As telas devem ser feitas usando componentes da biblioteca shadcn/ui (1 ponto)

Total: 7 pontos

Pontos extras

  • Fazer o deploy publico da aplicacao em qualquer servico que aceite as imagens docker (1 ponto)
  • Adicionar testes (unitarios ou end-to-end) (1 pontos)
  • Uso do Typescript (1 ponto)

Total: 3 pontos

Criterios tecnicos

Alem da avaliacao das funcionalidades do FE, tambem serao levados em consideracao aspectos tecnicos como:

  • Componentizacao:
    • Criacao de componentes reutilizaveis
  • Organizacao
    • Clareza e legibilidade do codigo
    • Comentarios e documentacao
    • Organizacao clara das pastas e arquivos
  • Principios
    • Clean Code
    • DRY
    • MVC

murabei-test's People

Contributors

acf77 avatar

Stargazers

Amanda 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.