/MenuMasterWeb

MenuMaster é um sistema desenvolvido para gerar listas de compras otimizadas com base em receitas cadastradas e no intervalo de datas escolhido pelo usuário, garantindo organização, praticidade e menos desperdício.

Primary LanguageJavaMIT LicenseMIT

MenuMaster

Sistema inteligente para organização de compras semanais e mensais. MenuMaster é uma aplicação fullstack desenvolvida para gerar listas de compras automáticas, calculando todos os ingredientes necessários com base nas receitas cadastradas e no período de tempo selecionado pelo usuário.

Com MenuMaster, você planeja melhor suas refeições, evita desperdícios e garante que todos os itens necessários estarão na sua lista de compras!


📋 Tecnologias Utilizadas

Backend

  • Java 17
  • Spring Boot 3.x
  • Spring Security (JWT Authentication)
  • Spring Data JPA
  • HyperSQL Database (HSQLDB) (banco de dados em memória)

Frontend

  • React 18 (com Vite)
  • TypeScript
  • JavaScript
  • Axios
  • React Query
  • Bootstrap 5
  • FullCalendar

🚀 Como rodar o projeto localmente

Pré-requisitos

  • Java 17
  • Node.js e NPM
  • Maven (ou Maven Wrapper mvnw incluído)

🛑 Não é necessário configurar banco de dados manualmente! O projeto usa HyperSQL (HSQLDB), um banco de dados em memória.


📸 Screenshots

Home Generate Shopping List

Home Page • Gerar Lista de Compras

Choose Date Detalhes da Receita

Escolher Data • Detalhes da Receita

Detalhes da Lista de Compras Lista de Receitas

Detalhes da Lista de Compras • Lista de Receitas

Listas de Compras Criar Nova Receita

Listas de Compras • Criar Nova Receita

Página de Registro Perfil do Usuário

Página de Registro • Perfil do Usuário


1. Clonar o repositório

git clone https://github.com/seu-usuario/MenuMaster.git
cd MenuMaster

2. Rodar o Backend

Com Maven instalado:

mvn spring-boot:run

Ou usando Maven Wrapper:

./mvnw spring-boot:run

O backend estará disponível em:

http://localhost:8081

3. Rodar o Frontend

cd frontMenuMaster
npm install
npm run dev

O frontend estará disponível em:

http://localhost:5173

🗂️ Estrutura de Pastas

MenuMaster/
├── frontMenuMaster/    # Frontend (React Vite)
│   ├── src/
│   ├── public/
├── MenuMaster/         # Backend (Spring Boot)
│   ├── src/main/java/
│   ├── src/main/resources/
│   └── pom.xml
└── README.md

🔒 Sobre Autenticação

  • A autenticação é feita via JWT.
  • Após o login, um token é armazenado no frontend para autenticação de todas as requisições protegidas.
  • Endpoints públicos e privados são configurados no SecurityConfig do backend.
  • A Autenticação também pode ser feita via Google ou Github

🛠️ Funcionalidades

  • Cadastro e listagem de receitas
  • Cadastro e associação de ingredientes
  • Organização de receitas por data (calendário)
  • Geração de lista de compras automatizada
  • Sistema de login e registro com segurança JWT
  • Possibilidade de autenticação com dois fatores (2FA)
  • Interface intuitiva e responsiva

📑 Licença

Este projeto está licenciado sob a licença MIT.
Sinta-se à vontade para usar, estudar e modificar!


Se gostou do projeto, deixe uma estrela ⭐ no repositório!
Contribuições, sugestões e feedbacks são muito bem-vindos.


📌 Badges

Java Spring Boot React HyperSQL JavaScript TypeScript