Esta é uma aplicação de compra de viagens desenvolvida durante o Intensivo do Full Stack Week. A aplicação permite aos usuários buscar e reservar viagens, visualizar detalhes de viagens, gerenciar reservas, autenticar com o Google e realizar pagamentos usando a ferramenta Stripe.
-
Buscar Viagens: Os usuários podem buscar viagens por localidade, data e orçamento. Ver Detalhes de uma Viagem: Os usuários podem visualizar informações detalhadas sobre uma viagem, incluindo fotos, descrição, imagem de capa, destaques da acomodação, preço por noite, datas disponíveis e quantidade máxima de hóspedes.
-
Reservar uma Viagem: Os usuários podem fazer reservas para uma viagem. Ver Viagens Reservadas pelo Usuário: Os usuários podem visualizar as viagens que já foram reservadas por eles.
-
Cancelar uma Viagem: Os usuários podem cancelar uma reserva de viagem.
-
Autenticação com o Google: Os usuários podem autenticar usando suas contas do Google.
-
[x]Pagamento com o Stripe: A aplicação integra-se ao sistema de pagamentos Stripe para transações online seguras.
ReactJS Next.js Tailwind CSS PostgreSQL Prisma ORM Next Auth Stripe Entidades do Banco de Dados
A aplicação utiliza as seguintes entidades no banco de dados:
TRIP: Armazena informações sobre as viagens, incluindo localidade, datas, preço e detalhes da acomodação.
USER: Armazena informações dos usuários, incluindo detalhes de autenticação.
TRIPRESERVATION: Armazena informações sobre as reservas de viagens dos usuários, relacionando usuários com viagens específicas.
A aplicação disponibiliza as seguintes rotas da API:
Recupera as reservas feitas por um usuário específico.
GET
- /api/[userId]/reservations
Verifica a disponibilidade de uma viagem.
POST
- /api/trips/check
Busca viagens com base em critérios especificados.
GET
- /api/trips/search
Faz uma reserva para uma viagem.
POST
- /api/trips/reservation
Cancela uma reserva de viagem.
DELETE
- /api/trips/reservation/[reservationId]
Para executar a aplicação localmente, siga estas etapas:
Clone o repositório:
git clone https://github.com/RenanFachin/PD_Fullstack-trips.git
Instale as dependências:
npm install
Atualize as variáveis de ambiente
DATABASE_URL=
GOOGLE_CLIENT_ID=
GOOGLE_CLIENT_SECRET=
NEXT_PUBLIC_STRIPE_KEY=
STRIPE_SECRET_KEY=
HOST_URL=http://localhost:3000
NEXTAUTH_SECRET=
Configure o banco de dados
npx prisma migrate dev
Inicie a aplicação:
npm run dev
Acesse a aplicação
http://localhost:3000