Skip to content

Aplicação para o controle de exames realizados utilizando Express, Typescript, TypeORM, Postgres e JWT.

License

Notifications You must be signed in to change notification settings

marcosribeirodacunha/abc-gestao-de-exames-api

Repository files navigation


Aurora Events

API para a aplicação ABC Gestão de exames onde é possível realizar o cadastro e controle de exames de uma empresa

Linguagem mais usada Objetivo: estudo GitHub ESlint Prettier Code style: Airbnb Code style: Airbnb

Recursos  |   Rotas  |   Instalação  |   Configuração  |   Executando a API  |   Insomnia  |   Tecnologias  |   Licença

🗃 Recursos

  • CRUD de cargos, usuários, tipos de exames, categorias, e exames;
  • Login com matricula ou email e senha;
  • Listagem dinâmica para usuários com os seguintes filtros (via query params):
    • Nome;
    • Matrícula;
    • Cargo;
  • Listagem dinâmica para exams com os seguintes filtros (via query params):
    • Nome do funcionário;
    • Matrícula do funcionário;
    • Cargo do funcionário;
    • Tipo do exame;
    • Categoria do exame;
    • Validade (por período);
  • Upload de imagem do usuário para um diretório local ou;
  • Upload de imagem do usuário para o IBM Cloud Object Storage.

↖ Rotas

  • CRUDs seguindo o seguinte modelo:
    • GET /
    • GET /:id
    • POST /
    • PATCH /:id
    • DELETE /:id
      • Cargo de usuário: prefixo jobs
      • Usuário: prefixo users
      • Tipos de exame: prefixo exam-types
      • Categorias: prefixo categories
      • Exames: prefixo exams
  • Login: POST sessions
  • Rotas "secretas" para que não necessitam de autenticação:
    • POST secret/jobs - Criar cargo
    • POST secret/users - Criar usuário

Obs.: As rotas "secretas" permitem criar um cargo e um usuário usuário enquanto não há nenhum registro, portanto, não havendo usuário que possa fazer login na aplicação.

⚙ Instalação

Para clonar e executar esta aplicação é necessário possuir instalado Git e NodeJS (que instala também o npm). Em sua linha de comando:

# Clone o repositório
$ git clone https://github.com/marcosribeirodacunha/abc-gestao-de-exames-api.git

# Entre no repositório
$ cd abc-gestao-de-exames-api

# Instale as dependências
$ yarn
// ou npm install

🛠 Configurando as variáveis de ambiente

Renomeie o arquivo .env.example para .env.

  • Na variável APP_URL adicione a url do servidor no qual a aplicação está sendo executada. (Pode não ser necessário modificar esta variável);
  • Insira na variável AUTH_SECRET uma string que servirá para geração do token JWT. É recomendável que esta string seja um hash md5 aleatório. Caso deseje, é possível gerar uma hash md5 aqui.

Siga os passos seguintes para concluir a configuração das variáveis de ambiente.

🎲 Banco de dados

Esta aplicação utiliza como banco de dados o Postgres em um container do Docker. Entretanto é possível utilizar o banco instalado localmente.

Antes de realizar as migrations realize os seguintes passos:

  • Crie um banco de dados com o mesmo nome daquele contido na variável TYPEORM_DATABASE do arquivo .env;
  • Adicione os dados de conexão do banco de dados postgres nas seguintes variáveis:
    • TYPEORM_HOST
    • TYPEORM_PORT
    • TYPEORM_USERNAME
    • TYPEORM_PASSWORD
    • TYPEORM_DATABASE

📤 Upload de arquivos

Para o upload de arquivos é possível, por padrão, utilizar duas opções:

Caso opte pelo upload no diretório local basta modificar a variável STORAGE_TYPE para local.

Caso opte pelo upload para o IBM COS, certifique-se de possuir uma conta na plataforma. É possível adquirir uma conta gratuíta com diversos benefícios. Modifique a variável STORAGE_TYPE para cos. Em seguida modifique as seguintes variáveis:

  • IBM_ENDPOINT
  • IBM_API_KEY_ID
  • IBM_SERVICE_INSTANCE_ID
  • IBM_BUCKET

Em caso de dúvidas para localizar os valores destas variáveis é possível encontrar informações detalhadas aqui e aqui.

▶ Executando a API

Após concluir os passos anteriores execute os seguintes comandos:

# Executa as migrations
# Uma vez que todas as migrações estão feitas não é necessário-las

$ yarn typeorm migration:run
// ou npm run typeorm migration:run

# Para executar a API em ambiente de desenvolvimento
$ yarn dev
// ou npm run dev

🟣 Insomnia

Para testar a aplicação utilizando o Insomnia clique no botão abaixo para criar um workspace com todas as rotas necessárias.

Run in Insomnia}

👨🏽‍💻 Tecnologias

📜 Licença

Esse projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.

About

Aplicação para o controle de exames realizados utilizando Express, Typescript, TypeORM, Postgres e JWT.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published