Skip to content

luckslima/rebase-labs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Desafio Rebase Labs

Projeto desenvolvido durante o Rebase Labs da turma 12.

Sobre o Projeto

Uma pequena aplicação web para listagem de exames médicos.

Estrutura do Projeto

  • API: Servidor backend para gerenciar exames e importar arquivos CSV.
  • SPA: Aplicação frontend para buscar e exibir dados dos exames.

Pré-requisitos

  • Docker
  • Docker Compose

Tecnologias

  • Ruby
  • Javascript
  • HTML
  • CSS
  • Bootstrap

Como Rodar a app? ▶️

  • No terminal, clone o projeto:

    git clone git@github.com:luckslima/rebase-labs.git

  • Em seguida, dentro da pasta do projeto, construa e inicie os containers:

    docker-compose up --build

Pronto! Agora é possível acessar a aplicação através das rotas:

API: http://localhost:4567/ SPA: http://localhost:4568/

😉

  • Testes:

  • Para executar os testes da API rode o comando:

    docker-compose exec api rspec

  • Para executar os testes da SPA rode o comando:

    docker-compose exec spa npx cypress run

  • Scripts:

  • Para importar um arquivo csv de exames através do terminal, execute o comando:

    docker-compose exec api ruby import_from_csv.rb caminho/do/arquivo.csv

API

Endpoints

  • 'GET /tests'

Nesse endpoint é retornado uma listagem de todos os exames médicos importados do CSV no formato JSON e agrupados pelo token.

Exemplo de resposta:

[
    {
        "result_token": "IQCZ17",
        "result_date": "2021-08-05",
        "cpf": "048.973.170-88",
        "name": "Emilly Batista Neto",
        "email": "gerald.crona@ebert-quigley.com",
        "birthday": "2001-03-11",
        "doctor": {
            "crm": "B000BJ20J4",
            "crm_state": "PI",
            "name": "Maria Luiza Pires"
        },
        "tests": [
            {
                "type": "hemácias",
                "limits": "45-52",
                "result": "97"
            },
            {
                "type": "leucócitos",
                "limits": "9-61",
                "result": "89"
            }
        ]
    },
    ...
]
  • 'GET /tests/:token'

Nesse endpoint é retornado detalhes de um exame médico através do token informado nos parametros.

Exemplo de resposta:

{
    "result_token": "0W9I67",
    "result_date": "2021-07-09",
    "cpf": "048.108.026-04",
    "name": "Juliana dos Reis Filho",
    "email": "mariana_crist@kutch-torp.com",
    "birthday": "1995-07-03",
    "doctor": {
        "crm": "B0002IQM66",
        "crm_state": "SC",
        "name": "Maria Helena Ramalho"
    },
    "tests": [
        {
            "type": "hemácias",
            "limits": "45-52",
            "result": "28"
        },
        {
            "type": "leucócitos",
            "limits": "9-61",
            "result": "91"
        }
    ]
}
  • 'POST /import'

Esse endpoint permite a importação assíncrona de um arquivo CSV com exames médicos.

Exemplo de corpo da requisição:

{file: arquivo.csv}

Exemplo de resposta em caso de sucessso:

status: 200
body: "Importação iniciada em background!"

Exemplo de resposta em caso de erro:

status: 400
body: 'Arquivo CSV não encontrado'

SPA

A SPA (Single Page Application) é responsável pela interface do usuário da aplicação, permitindo a interação com os dados dos exames médicos através de uma interface web.

Funcionalidades

  • Importação de CSV: Permite a importação de exames médicos a partir de um arquivo CSV que contenha todos os dados necessários para a exibição.
  • Listagem de exames: Após a importação do csv é possível ver a lista exames que contem o Token do exame, a data do resultado, o CPF do paciente, o nome do paciente, o nome do médico e o seu respectivo CRM.
  • Busca por Token: Permite a busca de exames médicos utilizando um token específico, mostrando assim mais detalhes daquele exame específico, como por exemplo os resultados do exame.

Tecnologias Utilizadas

  • HTML
  • JavaScript
  • CSS
  • Bootstrap
  • Cypress

Como Rodar a SPA?

  1. Iniciar a Aplicação:

    Após iniciar os containers com docker-compose up --build, a SPA estará disponível em http://localhost:4568/.

  2. Interação com a SPA:

    • Buscar Exames: Utilize o campo de busca para inserir o token do exame e visualize os detalhes.
    • Importar Exames: Utilize o campo de upload para enviar um arquivo CSV e importar exames para a base de dados.

Telas do Sistema

Tela incial, sem dados inseridos

image

Tela após a importação do arquivo CSV contendo os dados (zoom reduzido, para melhor visualizaçao)

image

Tela de detalhes de um exame (zoom reduzido, para melhor visualizaçao)

image

Contribuições

Contribuições são bem-vindas! Se você encontrar um bug ou tiver uma sugestão, abra um issue ou envie um pull request.

Agradecimentos

Gostaria de expressar minha mais sincera gratidão à Rebase e ao TreinaDev por propocionarem essa experiência única, intensa e enriquecedora. Encarar esse desafio alterou pra sempre minhas configurações. 💙
Agradeço também a todos os meus colegas, e a todos que contribuíram e forneceram feedback ao longo do caminho. Sua ajuda foi fundamental para o desenvolvimento e sucesso deste projeto e do meu crescimento como desenvolvedor.

Muito obrigado a todos!

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors