{"id":14969200,"url":"https://github.com/dedo-finger2/nlw-journey-node","last_synced_at":"2026-03-10T10:03:12.411Z","repository":{"id":247582633,"uuid":"826262369","full_name":"Dedo-Finger2/nlw-journey-node","owner":"Dedo-Finger2","description":"Plann.er é uma aplicação para gestação de viagens com funcionalidade de compartilhamento entre participantes.","archived":false,"fork":false,"pushed_at":"2024-07-11T19:23:34.000Z","size":1586,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-11T10:42:08.505Z","etag":null,"topics":["fastify","nlw-16","nlw-journey","nlw-journey-node","nodejs","prisma","sqlite","zod"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Dedo-Finger2.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-07-09T11:19:58.000Z","updated_at":"2024-07-11T19:23:45.000Z","dependencies_parsed_at":null,"dependency_job_id":"143859fa-8b3a-439f-8db7-a8a221e47a80","html_url":"https://github.com/Dedo-Finger2/nlw-journey-node","commit_stats":null,"previous_names":["dedo-finger2/nlw-journey-node"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dedo-Finger2%2Fnlw-journey-node","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dedo-Finger2%2Fnlw-journey-node/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dedo-Finger2%2Fnlw-journey-node/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dedo-Finger2%2Fnlw-journey-node/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Dedo-Finger2","download_url":"https://codeload.github.com/Dedo-Finger2/nlw-journey-node/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":242157277,"owners_count":20081041,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["fastify","nlw-16","nlw-journey","nlw-journey-node","nodejs","prisma","sqlite","zod"],"created_at":"2024-09-24T13:41:20.113Z","updated_at":"2026-03-10T10:03:12.209Z","avatar_url":"https://github.com/Dedo-Finger2.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg style=\"width: 250px\" src=\"https://raw.githubusercontent.com/Dedo-Finger2/nlw-journey-node/master/pulbic/images/nlw-journey-logo.png\" /\u003e\n\u003c/p\u003e\n\n# Plann.er - NLW Journey\n\n![project-banner](https://raw.githubusercontent.com/Dedo-Finger2/nlw-journey-node/master/pulbic/images/nlw-journey-banner.png)\n\n\u003ch3 align=\"center\"\u003e💫 Organização de Viagens com Facilidade 💫\u003c/h3\u003e\n\n---\n\n\u003cp align=\"center\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/typescript-%23007ACC.svg?style=for-the-badge\u0026logo=typescript\u0026logoColor=white\"/\u003e\n  \u003cimg src=\"https://img.shields.io/badge/fastify-%23000000.svg?style=for-the-badge\u0026logo=fastify\u0026logoColor=white\"/\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Prisma-3982CE?style=for-the-badge\u0026logo=Prisma\u0026logoColor=white\"/\u003e\n\u003c/p\u003e\n\n[![Minimum node.js version](https://badgen.net/npm/node/express)](https://npmjs.com/package/express)\n[![GitHub license](https://badgen.net/github/license/Dedo-Finger2/nlw-journey-node)](https://github.com/Dedo-Finger2/nlw-journey-node/blob/master/LICENSE)\n[![GitHub latest commit](https://badgen.net/github/last-commit/Dedo-Finger2/nlw-journey-node)](https://github.com/Dedo-Finger2/nlw-journey-node/commit/)\n[![GitHub forks](https://badgen.net/github/forks/Dedo-Finger2/nlw-journey-node/)](https://github.com/Dedo-Finger2/nlw-journey-node/network/)\n[![Github all releases](https://img.shields.io/github/downloads/Dedo-Finger2/nlw-journey-node/total.svg)](https://github.com/Dedo-Finger2/nlw-journey-node/releases/)\n\nO Plann.er é uma API desenvolvida durante o evento NLW Journey, um evento 100% prático da Rocketseat em 2024.\n\nCom o Plann.er, os usuários encontram uma maneira prática e simples de organizar e gerenciar suas viagens, sejam elas solo ou em grupo! Tornando o gerenciamento das viagens fácil e livrando os usuários de estresse.\n\n---\n\n### 📋 Funcionalidades da API\n\n- **Crie roteiros detalhados:** Organize as etapas da sua viagem, incluindo destinos, atividades, datas e horários.\n- **Gerencie links importantes:** Armazene links para reservas, voos, hotéis, restaurantes e outras informações relevantes em um só lugar.\n- **Compartilhe com amigos e/ou familiares:** Compartilhe seu roteiro e links com outros membros da sua viagem usando apenas o endereço de email.\n\n---\n\n### 🌟 Benefícios do Uso da API\n\n- **Planeje viagens perfeitas:** Organize seus roteiros com antecedência para aproveitar ao máximo o seu tempo e evitar imprevistos.\n- **Centralize informações importantes:** Tenha todas as informações da sua viagem em um só lugar, acessíveis a qualquer momento e em qualquer dispositivo.\n- **Colabore com seus participantes:** Planeje e organize a viagem em conjunto com seus amigos e familiares, compartilhando responsabilidades e informações.\n- **Tenha uma viagem tranquila:** Minimize o estresse e maximize a diversão com um planejamento completo e organizado.\n\n---\n\n### 🛠️ Tecnologias Utilizadas\n\n| Biblioteca        | Motivação do Uso                                                                 |\n|-------------------|----------------------------------------------------------------------------------|\n| Fastify           | Criação do servidor web.                                                         |\n| Zod               | Validação de dados para TypeScript.                                              |\n| PrismaORM         | ORM para trabalhar com bancos de dados em ambientes TypeScript de forma nativa.  |\n| Nodemailer        | Envio de emails.                                                                 |\n| ESLint            | Formatação e padronização do código.                                             |\n| Prettier          | Embelezamento e padronização do código.                                          |\n| Lint-Staged       | Aplicação de scripts específicos em apenas arquivos \"staged\".                    |\n| Husky             | Automação de tarefas e execução de scripts em situações específicas (antes de um commit, por exemplo). |\n| Jest \u0026 Supertest  | Testes end-to-end.                                                               |\n\n---\n\n### 🚀 Requisitos para Uso\n\n1. NodeJS instalado;\n2. Gerenciador de pacotes instalado (npm, yarn ou pnpm);\n\n---\n\n### 📦 Como Usar\n\n\u003e Clone o repositório do projeto\n```bash\ngit clone https://github.com/Dedo-Finger2/nlw-journey-node.git\n```\n\n\u003e Acesse a pasta do projeto e instale as dependências\n```bash\ncd nlw-journey-node/\nyarn install\n```\n\n\u003e Faça o seed do banco de dados\n```bash\nyarn db:seed\n```\n\n\u003e Inicie o servidor de desenvolvimento\n```bash\nyarn start:dev\n```\n\n\u003e Execute os testes end-to-end\n```bash\nyarn test:e2e\n```\n\n\u003e Tenha acesso a uma visualização do banco de dados\n```bash\nyarn db:studio\n```\n\n\u003e Crie e execute a build do projeto\n```bash\nyarn build\nyarn start\n```\n\n---\n\n### 🏗️ Arquitetura\n\n### Requisitos Funcionais (RFs)\n\n- [x] O usuário deve poder criar uma nova viagem\n- [x] O usuário deve poder criar uma atividade para uma viagem\n- [x] O usuário deve poder criar links para as viagens\n- [x] O usuário deve poder atualizar dados de uma viagem\n- [x] O usuário deve poder criar um link de convite mesmo depois de ter criado a viagem\n- [x] O participante deve poder confirmar sua presença em uma viagem\n- [x] O usuário deve poder visualizar detalhes de uma viagem\n- [x] O usuário deve poder visualizar uma lista dos participantes de uma viagem\n- [x] O usuário deve poder visualizar as atividades marcadas para uma viagem\n- [x] O usuário deve poder visualizar os links de uma viagem\n- [x] O usuário deve poder visualizar detalhes de um participante específico\n- [x] O usuário deve poder confirmar sua viagem\n\n### Regras de Negócio (RNs)\n\n- [x] Não deve ser possível criar uma viagem com dados inválidos\n- [x] Não deve ser possível confirmar presença em uma viagem que não exista\n- [x] Não deve ser possível criar um convite, link ou atividade para viagens que não existem\n- [x] Não deve ser possível editar dados de viagens que não existem\n- [x] Não deve ser possível confirmar uma viagem que não exista\n- [x] Ao criar uma viagem o usuário deve poder fornecer um conjunto de emails para adicionar como participantes na criação da viagem\n\n### Requisitos Não Funcionais (RNFs)\n\n- [x] O convite de participantes deve ser feito através de envio de e-mail\n- [ ] A plataforma deve usar banco de dados PostgreSQL\n- [ ] Deve haver testes end to end para todas as rotas e suas ramificações / possíveis caminhos\n- [ ] Deve ser usado um banco de dados dedicado a testes usando SQLite\n- [ ] Antes de executar os testes uma factory deve ser acionada para adicionar dados de teste iniciais\n\n---\n\n### 🔮 Implementações Futuras\n\n- [ ] Front-End com Vue.JS\n- [ ] Sistema de autenticação baseado em JWT\n- [ ] Refatoração seguindo princípios de SOLID e Clean Arch\n- [ ] Deploy completo da API\n- [ ] Deploy completo do Front-End\n- [ ] Criar um script de Build\n\n---\n\n### 🔗 Links Úteis\n\n- **Repositório do Projeto:** [https://github.com/Dedo-Finger2/nlw-journey-node](https://github.com/Dedo-Finger2/nlw-journey-node)\n- **Meu LinkedIn:** [https://www.linkedin.com/in/antonio-mauricio-4645832b3/](https://www.linkedin.com/in/antonio-mauricio-4645832b3/)\n- **Meu Instagram:** [https://www.instagram.com/antonioalmeida2003/](https://www.instagram.com/antonioalmeida2003/)\n- **Canal da Rocketseat no YouTube:** [https://m.youtube.com/@rocketseat](https://m.youtube.com/@rocketseat)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdedo-finger2%2Fnlw-journey-node","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdedo-finger2%2Fnlw-journey-node","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdedo-finger2%2Fnlw-journey-node/lists"}