Viagem365 é uma plataforma projetada para promover turismo sustentável, permitindo que os usuários explorem, descubram, e compartilhem experiências sobre destinos turísticos, praias, atrações naturais e atividades recreativas. A plataforma serve como um recurso valioso para aqueles que buscam aventuras sustentáveis e experiências autênticas ao redor do mundo.
O Viagem365 endereça a necessidade crescente de turismo responsável, fornecendo informações detalhadas sobre práticas sustentáveis e destinos que suportam a preservação ambiental. Ajudando os usuários a fazer escolhas conscientes, contribui para a redução do impacto ambiental associado ao turismo.
Este projeto utiliza as seguintes tecnologias:
- Node.js: Plataforma de desenvolvimento para o backend. Documentação
- Express: Framework para aplicação web para Node.js. Documentação
- PostgreSQL: Sistema de banco de dados relacional. Documentação
- Sequelize: ORM de Node.js para Postgres, MySQL, MariaDB, SQLite e Microsoft SQL Server. Documentação
- JWT (JSON Web Tokens): Utilizado para a autenticação de usuários.
- Bcrypt.js: Biblioteca para hashing de senhas.
- dotenv: Módulo para carregar variáveis de ambiente.
- Trello: Ferramenta Kanban para organização das tarefas antes de começar a desenvolver.
npm install node
npm init -y
npm install --save sequelize
npm install --save-dev sequelize-cli
npm install --save express
npm install --save pg
npm install --save cors
npm install --save dotenv
npm install --save pg connection-string
- |-- .env_example .env
cp .env_example .env
npx sequelize-cli migration:generate --name criar_tabela_usuarios
npx sequelize-cli migration:generate --name criar_tabela_destinos
npx sequelize-cli init
npm install --save-dev nodemon dotenv
npm install bcryptjs
npm install jsonwebtoken
npm install axios
npm install yup
npm install express-validator
- Node.js instalado.
- PostgreSQL rodando localmente ou em um servidor remoto.
npm install
- Se for em ambiente local:
npm install --dev
cp .env_example .env
npm run start:dev
npx sequelize-cli migration:generate --name criar_tabela_usuarios
npx sequelize-cli migration:generate --name criar_tabela_destinos
npx sequelize db:migrate
npx sequelize-cli db:migrate:undo
npx sequelize-cli seed:generate --name usuarios
npx sequelize-cli db:seed:all
- Reverter o último seed:
npx sequelize-cli db:seed:undo
- Reverter um seed específico:
npx sequelize-cli db:seed:undo --seed name-of-seed-as-in-data
- Reverter todos os seeds:
npx sequelize-cli db:seed:undo:all
A documentação da API é realizada através do Swagger, facilitando o entendimento e teste dos endpoints disponíveis.
npm install swagger-ui-express
npm install swagger-autogen
Passo 1: Instalação dos Pacotes
npm install swagger-autogen swagger-ui-express
Passo 2: Configuração do Swagger Autogen
autoGen.swagger.js
Passo 3: Configurar as Rotas para Usar Swagger
./src/routes/routes.js
Passo 4: Documentação Específica das Rotas
/** #swagger */
Passo 5: Executar o Swagger Autogen
node swagger
Passo 6: Executar o Servidor
Após executar o swagger executar o servidor: npm run start:dev
Para acessar a documentação da API, após iniciar o servidor, visite: localhost:3000/docs
npm install sequelize
npm install pg
npm install -g sequelize-cli
npm install dotenv
npm install jsonwebtoken
npm install bcrypt.js
npm install axios
npm install express-async-errors
npm install cors
npm install yup
npm install express-validator
Abordagem GitFlow para o desenvolvimento, com branches principais e secundárias organizadas da seguinte maneira:
- Main (produção)
- Develop (desenvolvimento)
Comandos típicos
git checkout develop
git merge feature/branch_name
git push origin develop
Branchs Utilizadas
- develop
- feature/src
- feature/modelagem-dados
- rotas
- rota_destino
- auth
Viagem365 se dedica a promover o turismo sustentável. Para continuar aprimorando nossa plataforma e enriquecer a experiência do usuário, propomos as seguintes melhorias:
- Design Responsivo: Otimizar a plataforma para dispositivos móveis.
- Interface Multilíngue: Adicionar suporte para vários idiomas para atrair um público global.
- Fóruns de Discussão: Criar espaços para usuários discutirem e compartilharem experiências.
- Sistema de Recompensas: Implementar recompensas para usuários que contribuem ativamente na plataforma.
- Recomendações Personalizadas: Desenvolver algoritmos para sugerir destinos e atividades baseados nas preferências dos usuários.
- Itinerários Personalizáveis: Permitir que os usuários criem e compartilhem seus próprios itinerários de viagem.
- Reservas e Check-ins: Integrar funcionalidades de reserva de hotéis, voos e atrações diretamente na plataforma.
- Parcerias com Organizações Locais: Estabelecer colaborações para promover experiências autênticas e sustentáveis.
- Autenticação de Dois Fatores (2FA): Adicionar uma camada extra de segurança para as contas dos usuários.
- Controles de Privacidade: Aumentar o controle dos usuários sobre suas informações pessoais compartilhadas.
- Dashboards de Analytics: Desenvolver painéis para visualizar estatísticas de uso e impactos ambientais.
- Relatórios de Sustentabilidade: Oferecer insights sobre como as viagens estão alinhadas com práticas sustentáveis.
- Campanhas de Conscientização: Promover educação sobre turismo sustentável dentro da plataforma.
- Engajamento Social: Facilitar o compartilhamento de conteúdo nas redes sociais para aumentar a visibilidade.
Estas melhorias visam não só enriquecer a funcionalidade e a usabilidade de Viagem365, mas também fortalecer nosso compromisso com o turismo responsável e sustentável.