https://github.com/alyssonbarrera/ignite-spacetime-server
Projeto Back-end | NLW Spacetime - Rocketseat
https://github.com/alyssonbarrera/ignite-spacetime-server
aws aws-ec2 aws-s3 axios docker fastify nginx nodejs pm2 postgresql prisma supertest typescript vitest zod
Last synced: 2 months ago
JSON representation
Projeto Back-end | NLW Spacetime - Rocketseat
- Host: GitHub
- URL: https://github.com/alyssonbarrera/ignite-spacetime-server
- Owner: alyssonbarrera
- Created: 2023-05-16T02:39:48.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2023-07-08T14:39:51.000Z (almost 3 years ago)
- Last Synced: 2025-07-31T02:27:46.141Z (11 months ago)
- Topics: aws, aws-ec2, aws-s3, axios, docker, fastify, nginx, nodejs, pm2, postgresql, prisma, supertest, typescript, vitest, zod
- Language: TypeScript
- Homepage:
- Size: 452 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# API
Time capsule application API
## Memories
### Requisitos Funcionais
- [x] Deve ser possível cadastrar uma memória;
- [x] Deve ser possível consultar uma memória;
- [x] Deve ser possível consultar todas as memórias;
- [x] Deve ser possível atualizar uma memória;
- [x] Deve ser possível deletar uma memória.
## User
### Requisitos Funcionais
- [x] Deve ser possível cadastrar um usuário;
- [x] Deve ser possível autenticar um usuário.
---
Documentação: https://documenter.getpostman.com/view/20700565/2s93m34j4C
---
### 💻 Para rodar em sua máquina, siga os passos abaixo:
📄 Clone o projeto em sua máquina;
🔐 Tendo feito isso, entre na pasta do projeto e crie o arquivo .env;
📄 Uma vez criado, ele deverá conter:
```
# Database
DATABASE_URL="postgresql://docker:docker@localhost:5432/nlwspacetime?schema=public"
# Environment
NODE_ENV="dev"
#Server
PORT=3333
# Github
GITHUB_CLIENT_ID=""
GITHUB_CLIENT_SECRET=""
# Github web
GITHUB_WEB_CLIENT_ID="123456789"
GITHUB_WEB_CLIENT_SECRET="123456789"
# Github mobile
GITHUB_MOBILE_CLIENT_ID="123456789"
GITHUB_MOBILE_CLIENT_SECRET="123456789"
# Secret
JWT_SECRET="secret"
# Request
REQUEST_PROTOCOL="http"
REQUEST_HOSTNAME="localhost"
# AWS
AWS_REGION=""
AWS_BUCKET=""
AWS_ACCESS_KEY_ID=""
AWS_SECRET_ACCESS_KEY=""
# Storage
STORAGE_PROVIDER="s3"
```
💡 Lembre-se de atualizar as variáveis com base em suas configurações.
📂 Em seguinda, abra o terminal na pasta do projeto e rode o seguinte comando:
```shell
docker compose up
```
⌨ Após, será necessário instalar as dependências, então execute em seu terminal:
```shell
npm install
```
🌎 Em seguida, rode as migrations usando:
```shell
npx prisma migrate deploy
```
📡 Com tudo pronto, será possível acessar a aplicação usando:
```text
http://localhost:3333
```
🧪 Caso queira executar os testes unitários, use:
```shell
npm run test
```
🧪 Caso queira executar os testes E2E, use:
```shell
npm run test:e2e
```
---
## Stack
- TypeScript
- Node.js
- PostgreSQL
- Fastify
- Prisma ORM
- Zod
- Vitest
- Supertest
- Axios
- AWS S3
- AWS EC2
- Nginx
- PM2