Hotel Trancinvânia é um projeto de sistema de gerenciamento de reservas de hotel, desenvolvido para a disciplina de Engenharia de Software e Sistemas (IF682) do CIn-UFPE, no curso de Engenharia da Computação. Este repositório contém tanto o backend quanto o frontend da aplicação.
- Visão Geral
- Equipe
- Tecnologias Utiizadas
- Estrutura do Projeto
- Configuração e Instalação
- Comandos Úteis
Este projeto é um sistema completo de gerenciamento de hotel, permitindo as seguintes features:
- Cadastro e Login
- Usuário Hoteleiro e Cliente
- Login com autenticação local e JWT
- Alteração de cadastro, podendo alterar e-mail, username e senha
- Recuperação de senha através de token enviado por e-mail
- Publicar, Gerenciar e Realizar Reservas
- Salvar, Gostar, Compartilhar e Avaliar Reservas
- Busca de Reservas com Filtros
- Cadastro e Manutenção de Métodos de Pagamento
- Cadastro e Manutenção de Promoções
- Disparo de E-mails
O usuário cliente é aquele que pode realizar, salvar, gostar e compartilhar reservas. Reservas só podem ser avaliadas após ter passado o período de estadia.
O usuário hoteleiro é aquele que publica e gerencia reservas en seu hotel, podendo cadastrar e gerenciar promoções.
As pessoas que compõem a equipe são:
- Amanda Cristina Fernandes Medeiros de Lima (acfml)
- Bianca Duarte Santos (bds)
- Maria Letícia do Nascimento Gaspar (mlng)
- Matheus Augusto Monte Silva (mams4)
- Mateus Galdino de Lima Guilherme (mglg)
- Victoria Barbosa Cesar Figueiredo (vbcf)
- Node.js, Express e TypeScript
- WSL, Docker, Prisma, PostgreSQL
- Zod
- Passport, JWT e bcrypt
- React e TypeScript
- React Hook Form
- Chakra UI e Aceternity UI
- ViaCEP API
- Render (back-end)
- Vercel (front-end)
- Jest-Cucumber (back-end)
- Cypress (front-end)
- Gerenciamento de Projetos: Notion
- Design: Figma, Canva e Calligraphr
- Comunicação: Discord e WhatsApp
Abaixo está a estrutura principal dos diretórios e arquivos do projeto:
- backend: Contém o código fonte do backend da aplicação.
- docker: Configurações e dados do Docker.
- prisma: Configurações e migrações do Prisma.
- src: Código fonte do backend, incluindo controllers, services, repositories, entitites, enums, middleware, routes, utils, etc.
- tests: Testes do backend.
- config: Scripts e configurações adicionais.
- frontend: Contém o código fonte do frontend da aplicação, que segue a estrutura abaixo:
- Node.js
- Docker
- Docker Compose
- React
- Clone o repositório:
git clone https://github.com/duartebianca/hotel-trancinvania.git cd hotel-trancinvania
- Configure e inicie o backend:
cd backend npm install docker compose up npx prisma migrate dev npm run start
- Configure e inicie o frontend:
cd frontend
npm install
npm run dev
O banco de dados é configurado e gerenciado pelo Prisma. Certifique-se de que o Docker está em execução e que o serviço de banco de dados está ativo.
- npm run start: Inicia o servidor.
- npm run test: Executa os testes.
- npm run dev: Inicia o frontend.
- npx prisma migrate dev: Executa migrações de banco de dados.