Skip to content

MTevangelista/trip-web

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

57 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Trip

Tabela de Conteúdo

Sobre o Projeto

A proposta do projeto é uma aplicação que possa ajudar uma grande quantidade de visitantes de outros países e de outros estados chegam em alguma cidade para passar vários dias. Durante este tempo eles têm necessidade de encontrar restaurantes, bares, podem querer ir à praia, podem precisar registrar uma ocorrência policial ou ir a um hospital. Logo, o objetivo da plataforma é dar apoio a esta pessoa.

Na plataforma, o usuário pode buscar por:

  • Hospitais
  • Delegacias
  • Pontos Turísticos
  • Praias
  • Onde Comer
  • Onde Dormir
  • Eventos
  • Banheiros

Após efetuar a busca, a plataforma vai informar dados específicos do lugar escolhido pelo usuário.

Feito Com

Abaixo segue o que foi utilizado na criação deste projeto:

  • Visual Studio Code - O Visual Studio Code é um editor de código-fonte desenvolvido pela Microsoft para Windows, Linux e macOS. Ele inclui suporte para depuração, controle Git incorporado, realce de sintaxe, complementação inteligente de código, snippets e refatoração de código.

  • Yarn - Yarn é um gerenciador de pacotes que também atua como gerente de projeto. Quer você trabalhe em projetos únicos ou grandes monorepos, como um aquarista ou um usuário corporativo, temos o que você precisa.

  • Typescript - TypeScript é um superconjunto de JavaScript desenvolvido pela Microsoft que adiciona tipagem e alguns outros recursos a linguagem. Anders Hejlsberg, arquiteto da linguagem C# e criador das linguagens Delphi e Turbo Pascal, trabalhou no desenvolvimento do TypeScript.

  • Node.js - Node.js é um interpretador de JavaScript assíncrono com código aberto orientado a eventos, criado por Ryan Dahl em 2009, focado em migrar a programação do Javascript do cliente (frontend) para os servidores, criando aplicações de alta escalabilidade (como um servidor web), manipulando milhares de conexões/eventos simultâneas em tempo real numa única máquina física.

  • Express - O Express.js, ou simplesmente o Express, é uma estrutura de aplicativo da Web para o Node.js, lançada como software livre e de código aberto sob a Licença MIT. Ele foi projetado para criar aplicativos da Web e APIs. Foi chamado de estrutura de servidor padrão de fato para o Node.js.

  • SQLite - SQLite é uma biblioteca em linguagem C que implementa um banco de dados SQL embutido. Programas que usam a biblioteca SQLite podem ter acesso a banco de dados SQL sem executar um processo SGBD separado.

  • Knex - Knex.js é um criador de consultas SQL com "baterias incluídas" para Postgres, MySQL, MariaDB, SQLite3 e Oracle, projetado para ser flexível, portátil e divertido de usar. Ele apresenta retornos de chamada de estilo de nó tradicional, bem como uma interface de promessa para controle de fluxo assíncrono mais limpo, uma interface de fluxo, consulta com recursos completos e construtores de esquema, suporte a transações (com pontos de salvamento), pool de conexão e respostas padronizadas entre diferentes clientes de consulta e dialetos.

  • React - O React é uma biblioteca JavaScript de código aberto com foco em criar interfaces de usuário em páginas web. É mantido pelo Facebook, Instagram, outras empresas e uma comunidade de desenvolvedores individuais. É utilizado nos sites da Netflix, Imgur, Feedly, Airbnb, SeatGeek, HelloSign, Walmart e outros.

Começando

Para conseguir utilizar ou visualizar o projeto, seja através do Visual Studio Code ou outro editor de código, siga os passos abaixo:

Pré-requisitos

Antes de começar, você vai precisar ter instalado em sua máquina as seguintes ferramentas:

  • É necessário possuir o Node.js instalado no computador
  • É necessário possuir o Git instalado e configurado no computador
  • É preciso ter um gerenciador de pacotes seja o NPM ou Yarn.

Estrutura de Arquivos

A estrutura de arquivos está da seguinte maneira:

trip
├── web/  
│   ├── public/
│   │       └── index.html
│   ├── src/
│   │    ├── assets/
│   │    │         ├── images/
│   │    │         │       ├── icons/
│   │    │         │       └── logo.png
│   │    │         └── styles/
│   │    │               └── global.css
│   │    ├── components/
│   │    │           ├── Input/
│   │    │           │      ├── index.tsx
│   │    │           │      └── styles.css
│   │    │           │       
│   │    │           ├── PageHeader/
│   │    │           │           ├── index.tsx
│   │    │           │           └── styles.css      
│   │    │           ├── PageCard/
│   │    │           │         ├── index.tsx
│   │    │           │         └── styles.css      
│   │    │           ├── Select/
│   │    │           │       ├── index.tsx
│   │    │           │       └── styles.css      
│   │    │           └── Textarea/ 
│   │    │                  ├── index.tsx
│   │    │                  └── styles.css
│   │    ├── pages/
│   │    │      ├── Landing/
│   │    │      │         ├── index.tsx
│   │    │      │         └── styles.css
│   │    │      ├── LeisurePoints/
│   │    │      │              ├── index.tsx
│   │    │      │              └── styles.css
│   │    │      ├── PlaceCard/
│   │    │      │          ├── index.tsx
│   │    │      │          └── styles.css
│   │    │      └──  UtilityPoints/
│   │    │                      ├── index.tsx
│   │    │                      └── styles.css
│   │    ├── services/
│   │    │         └── api.ts
│   │    │ 
│   │    ├── utils/
│   │    │      └── convertMinutesToHours.ts
│   │    │  
│   │    ├── App.tsx
│   │    ├── index.tsx
│   │    ├── react-app-env-ts
│   │    └── routes.tsx
│   ├── .gitignore
│   ├── package.json
│   ├── tsconfig.json
│   └── yarn.lock
│
├── server/
│   ├── src/
│   │    ├── controllers/
│   │    │            └── PlacesController.ts  
│   │    ├── database/
│   │    │         ├── migrations/
│   │    │         │           ├── 00_create_places.ts
│   │    │         │           └── 01_create_place_schedule.ts
│   │    │         ├── connection.ts
│   │    │         └── database.sqlite
│   │    ├── repositories/
│   │    │             └── placesRepository.ts   
│   │    ├── routes/
│   │    │       ├── place-route.ts
│   │    │       └── index-route.ts
│   │    ├── utils/
│   │    │      └── convertHourToMinutes.ts
│   │    └── server.ts
│   ├── .gitignore
│   ├── knexfile.ts
│   ├── package.json
│   ├── tsconfig.json
│   └── yarn.lock
├── .gitignore
├── package.json
├── README.md
└──yarn.lock

Instalação

Para instalar esse projeto, o processo é bem simples. Basta utilizar o seguinte comando no terminal:

# Clone este repositório
$ git clone https://github.com/MTevangelista/trip.git

Rode a API

# Vá para a pasta do servidor
$ cd trip/server

# Crie o banco de dados
$ yarn knex:migrate ou npm run knex:migrate

# Instale as depedencias
$ yarn install ou npm install

# Rode a aplicação
$ yarn start ou npm run start

# O servidor inciará na porta: 3333 - acesse http://localhost:3333 

Rode o projeto Web

# Vá para a pasta web
$ cd trip/web

# Instale as depedencias
$ yarn install ou npm install

# Rode a aplicação
$ yarn start ou npm run start

Contribuição

Contribuições são o que fazem a comunidade open source um lugar incrível para aprender, inspirar e criar. Qualquer contribuição que você fizer será muito apreciada.

  1. Faça um Fork do projeto
  2. Crie uma Branch para sua Feature (git checkout -b feature/FeatureIncrivel)
  3. Adicione suas mudanças (git add .)
  4. Comite suas mudanças (git commit -m 'Adicionando uma Feature incrível!)
  5. Faça o Push da Branch (git push origin feature/FeatureIncrivel)
  6. Abra um Pull Request

Contato

👤 Matheus Evangelista

Github Badge Linkedin Badge Gmail Badge Instagram Badge

About

Uma plataforma de viagens. Projeto final do bloco de Desenvolvimento Front-End. Feito com Typescript, React, NodeJs e Express

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published