Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/lrcampos97/golden-raspberry-awards

API RESTful para ler a lista de indicados e vencedores da categoria Pior Filme do Golden Raspberry Awards
https://github.com/lrcampos97/golden-raspberry-awards

express jest nodejs pnpm prisma sqlite3 typescript

Last synced: 3 days ago
JSON representation

API RESTful para ler a lista de indicados e vencedores da categoria Pior Filme do Golden Raspberry Awards

Awesome Lists containing this project

README

        

# Golden Raspberry Awards API

API RESTful para ler a lista de indicados e vencedores da categoria Pior Filme do Golden Raspberry Awards.

## Tecnologias Utilizadas

- Node.js
- Express
- TypeScript
- Redis (banco de dados em memória)
- Jest (para testes de integração)
- Pnpm (para gerenciamento de dependências)

## Estrutura do Projeto

- `src/`: Código fonte do projeto
- `src/api/`: Endpoints da API
- `src/utils/`: Utilitários e configurações
- `resources/`: Contém o arquivo `movies.csv` com os dados dos filmes

## Instruções para Rodar o Projeto

### Pré-requisitos

- Node.js instalado
- Pnpm instalado
- Redis instalado e rodando localmente (recomendo utilizar uma imagem [docker](https://hub.docker.com/_/redis))

### Instalação

1. Clone o repositório:

```sh
git clone https://github.com/lrcampos97/golden-raspberry-awards.git
cd golden-raspberry-awards
```

2. Instale as dependências:

```sh
pnpm install
```

## Variáveis de ambiente

No arquivo `.env.sample` voce vai encontrar um exemplo das variáveis de requisito para rodar a aplicação.

### Executando o Servidor

1. Para iniciar o servidor, execute:

```sh
pnpm start
```

Isso irá ler o arquivo `movies.csv` localizado na pasta `resources` e popular o banco de dados em memória sempre que o servidor for iniciado.

### Endpoint de produtores

O servidor disponibiliza um endpoint GET `/producers`, para buscar o produtor com maior intervalo entre dois prêmios consecutivos, e o produtor que obteve dois prêmios mais rápido. Os dados sao lidos de acordo com as informaçoes carregadas no banco de dados em memória no inicio da aplicação.

### Executando os Testes

1. Para executar os testes de integração, use:

```sh
pnpm test
```

## Banco de dados em memória

O banco de dados é populado automaticamente ao iniciar o servidor a partir do arquivo `resources/movies.csv`.