About | Routes | Setup | Technologies | License
Esta é a API da aplicação de nome Plann.er, a qual consiste em um sistema de planejamento de viagens, na qual você pode montar planos de viagens com amigos, registrar atividades, adicionar links úteis sobre a viagem e outras funcionalidades.
Essa aplicação foi desenvolvida durante o evento NLW Journey da Rocketseat utilizando principalmente tecnologias como Node
, TypeScript
, Fastify
e Prisma
.
Cria uma nova viagem.
{
"destination": "Costa Rica",
"starts_at": "2024-08-01 18:00:00",
"ends_at": "2024-08-04 18:00:0",
"owner_name": "John Doe",
"owner_email": "[email protected]",
"emails_to_invite": [
"[email protected]",
"[email protected]",
"[email protected]"
]
}
{
"tripId": "f944daf7-e7e6-47a2-b050-1556d6a9e963"
}
Retorna os detalhes de uma viagem.
{
"trip": {
"id": "f944daf7-e7e6-47a2-b050-1556d6a9e963",
"destination": "Cabo Verde",
"starts_at": "2024-08-01T21:00:00.000Z",
"ends_at": "2024-08-04T21:00:00.000Z",
"is_confirmed": true
}
}
Altera uma viagem.
{
"destination": "Rio de Janeiro",
"starts_at": "2024-08-01 18:00:00",
"ends_at": "2024-08-04 18:00:0"
}
{
"tripId": "f944daf7-e7e6-47a2-b050-1556d6a9e963"
}
Confirma uma viagem.
Envia um convite a um participante para uma viagem.
{
"email": "[email protected]"
}
{
"participantId": "f944daf7-e7e6-47a2-b050-1556d6a9e963"
}
Retorna os participantes de uma viagem.
{
"participants": [
{
"id": "a91c91e1-8cca-4649-88e8-91cdf143df22",
"name": "John Doe",
"email": "[email protected]",
"is_confirmed": true
},
{
"id": "dce0de32-421a-4512-9580-21c75648350d",
"name": null,
"email": "[email protected]",
"is_confirmed": false
},
{
"id": "d673c4eb-f39a-4de4-8617-ef23b3707693",
"name": null,
"email": "[email protected]",
"is_confirmed": true
}
]
}
Retorna os detalhes de um participante.
{
"participant": {
"id": "a91c91e1-8cca-4649-88e8-91cdf143df22",
"name": "John Doe",
"email": "[email protected]",
"is_confirmed": true
}
}
Confirma um participante na viagem.
Cria uma atividade em uma viagem.
{
"title": "Play",
"occurs_at": "2024-08-01 18:00:00"
}
{
"activityId": "f944daf7-e7e6-47a2-b050-1556d6a9e963"
}
Retorna as atividades de uma viagem.
{
"activities": [
{
"date": "2024-08-01T21:00:00.000Z",
"activities": [
{
"id": "6e444c9e-11b8-4b95-b5ff-73288f3c0b5e",
"title": "Play",
"occurs_at": "2024-08-01T22:00:00.000Z",
"trip_id": "f944daf7-e7e6-47a2-b050-1556d6a9e963"
}
]
},
{
"date": "2024-08-02T21:00:00.000Z",
"activities": [
{
"id": "6e444c9e-11b8-4b95-b5ff-73288f3c0b5e",
"title": "Play",
"occurs_at": "2024-08-02T22:00:00.000Z",
"trip_id": "f944daf7-e7e6-47a2-b050-1556d6a9e963"
}
]
}
]
}
Cria um link em uma viagem.
{
"title": "Website",
"url": "https://www.airbnb.com.br"
}
{
"linkId": "f944daf7-e7e6-47a2-b050-1556d6a9e963"
}
Retorna os links de uma viagem.
{
"links": [
{
"id": "f944daf7-e7e6-47a2-b050-1556d6a9e963",
"title": "Website",
"url": "https://www.rocketseat.com.br",
"trip_id": "f944daf7-e7e6-47a2-b050-1556d6a9e963"
},
{
"id": "f944daf7-e7e6-47a2-b050-1556d6a9e963",
"title": "Website 2",
"url": "https://www.rocketseat2.com.br",
"trip_id": "f944daf7-e7e6-47a2-b050-1556d6a9e963"
}
]
}
Antes de baixar o projeto você vai precisar ter instalado na sua máquina as seguintes ferramentas:
Além disto é bom ter um editor para trabalhar com o código como VSCode
Para testar as rotas da aplicação você pode usar o cliente HTTP Insomnia
Passo a passo para clonar e executar a aplicação na sua máquina:
# Clone este repositório
$ https://github.com/dscarv27/nlw-journey-nodejs.git
# Acesse a pasta do projeto no terminal
$ cd backend
# Instale as dependências
$ npm install
# Crie o arquivo '.env' e preencha as variáveis conforme o arquivo '.env.example'
# Execute as migrations para criar as tabelas necessários no banco
$ npx prisma migrate-dev
# Execute a aplicação em modo de desenvolvimento
$ npm run dev
# Para verificar as informações testadas no banco de dados:
$ npx prisma studio
# A aplicação inciará na porta que você configurou no arquivo '.env'
# Para conectar com o frontend (opcional), acessar e seguir o readme em:
[frontend-react](https://github.com/dscarv27/nlw-journey-react)
As principais ferramentas foram usadas na construção do projeto:
Para mais detalhes das dependências gerais da aplicação veja o arquivo package.json
Este projeto está sob a licença MIT. Consulte o arquivo LICENSE para mais informações
Feito com 💜 por Daniel Carvalho 👋🏽 Entre em contato!