API desenvolvida durante a NLW#12 - Spacetime.
Está aplicação foi criada utilizando NodeJS
, Typescript
, Prisma
, Docker
e Postgresql
.
- Deve ser possível cadastrar uma memória
- Deve ser possível listar todos as memórias de um usuário
- Deve ser possível listar uma memória específica do usuário
- Deve ser possível atualizar os dados de uma memória
- Deve ser possível deletar uma memória
- Deve ser possível se autenticar utilizando o GITHUB
- Deve ser possível enviar uma foto/vídeo junto à uma memória
- Os dados da aplicação precisam estar persistidos em um banco PostgreSQL
- O usuário deve ser identificado por um JWT (Json Web Token)
- Os usuários precisam estar com uma autenticação válida para acessar as rotas '/memories'
- Gerar nomes aleatórios com no padrão UUID para os arquivos enviados nas memórias
- Os arquivos enviados devem ter no máximo 15mb de tamanho
# Faça o clone do repotório
git clone git@github.com:RenanFachin/RS_NLW_space-time-server.git
# Instalar as dependências do projeto
npm install
# Subindo o banco de dados com docker
docker compose up -d
# Rodar as migrations do projeto para criar o banco de dados
npx prisma migrate dev
# Executando o projeto no ambiente de desenvolvimento
npm run dev
- Autenticação
POST /register
- Criar uma nova memória
POST /memories
- Listar TODAS memórias
GET /memories
- Listar UMA memória específica
GET /memories/:{id}
- Atualizar UMA memória específica
PUT /memories/:{id}
- Deletar UMA memória
DELETE /memories/:{id}
- Enviar uma imagem ou vídeo
POST /upload/{file}