Este é o frontend da aplicação Pronta-Reserva, desenvolvido para gerenciar e agendar reservas de forma eficiente. A aplicação foi construída com Next.js e o App Router.
- Autenticação de Usuários: Sistema completo de Login e Registro.
- Gerenciamento de Sessão: Uso de JWT em Cookies para manter o usuário logado.
- Proteção de Rotas: Middleware para proteger rotas privadas, garantindo que apenas usuários autenticados possam acessá-las.
- Listagem de Reservas: Visualização de todas as reservas do usuário em formato de cards.
- Criação e Edição de Reservas: Modais para criar novas reservas e editar as existentes.
- Ações de Status: Funcionalidades para confirmar ou cancelar uma reserva.
- Tratamento de Erros: Sistema centralizado para fornecer feedback claro e amigável ao usuário.
- Next.js (App Router) - Framework React para produção.
- React - Biblioteca para construção de interfaces.
- TypeScript - Superset do JavaScript com tipagem estática.
- Tailwind CSS - Framework de estilização utility-first.
- shadcn/ui - Coleção de componentes de UI reutilizáveis.
- Axios - Cliente HTTP para fazer requisições à API.
- Zod - Biblioteca para validação de schemas.
- React Hook Form - Gerenciamento de formulários.
- date-fns - Biblioteca para manipulação de datas.
- Lucide React - Biblioteca de ícones.
- Cypress - Ferramenta para testes End-to-End (E2E).
Siga os passos abaixo para rodar a aplicação em seu ambiente local.
-
Clone o repositório;
git clone https://github.com/Herick2D/pronto-reserva-frontend.git -
Instale as dependências;
npm install -
Configure as variáveis de ambiente;
NEXT_PUBLIC_API_BASE_URL=http://localhost:5129 NEXT_PUBLIC_API_LOGIN_URL=http://localhost:5129/api/auth/login NEXT_PUBLIC_API_REGISTER_URL=http://localhost:5129/api/auth/register NEXT_PUBLIC_API_RESERVAS_URL=http://localhost:5129/api/reservas -
Rodar o servidor de desenvolvimento;
npm run dev
Este projeto utiliza Cypress para testes End-to-End (E2E), que simulam o fluxo completo do usuário.
Este comando abre a interface gráfica do Cypress, onde você pode ver os testes rodando em tempo real.
npm run test:e2e:openEste comando executa todos os testes no terminal, sem abrir um navegador. É ideal para automação e para uma verificação rápida de que tudo está funcionando.
npm run test:e2e:runEste projeto foi desenvolvido dentro de prazos de entrega pré-estabelecidos e com objetivos avaliativos definidos. As escolhas de tecnologias e as metodologias de trabalho seguiram tanto as diretrizes do enunciado quanto critérios pessoais de eficiência e familiaridade. Devido ao tempo limitado, algumas funcionalidades podem apresentar bugs ou comportamentos inesperados. Relatórios de issues, sugestões de melhorias e contribuições são muito bem-vindos!