Template Vue 3 + Quasar 2.x para gerenciamento de restaurantes de alta gastronomia.
Sistema completo de gerenciamento para restaurantes gourmet com foco em elegância, funcionalidade e experiência do usuário. Desenvolvido como template open-source reutilizável para diversos tipos de negócios premium (restaurantes, hotéis, vinícolas, etc.).
- Autenticação: Login com validação de credenciais (mock)
- Dashboard: Visão geral com métricas em tempo real
- Gerenciamento de Pratos: CRUD completo com categorias, preços e disponibilidade
- Controle de Ingredientes: Gerenciamento de estoque com alertas de baixo estoque
- Sistema de Comandas: Mestre/Detalhe com adição e remoção de itens
- Reservas: Listagem e gerenciamento de reservas de clientes
- Design Responsivo: Otimizado para desktop, tablet e mobile
- Tema Elegante: Paleta vermelho borgonha com dourado suave
- Primária: Vermelho Borgonha (#800020)
- Secundária: Dourado Suave (#D4A017)
- Neutra: Branco Creme (#F5F5F5)
- Escura: Cinza Escuro (#333333)
- Títulos: Playfair Display (serif)
- Corpo: Roboto (sans-serif)
- Design minimalista com bordas arredondadas
- Sombras suaves e transições elegantes
- Componentes Quasar personalizados
- Interface intuitiva e profissional
- Vue 3: Framework JavaScript progressivo com Composition API
- Quasar 2.x: Framework UI com componentes premium
- Pinia: Gerenciamento de estado moderno
- Vue Router: Navegação SPA
- Dados Mock: Sistema simulado sem backend
- Node.js 16+
- npm ou yarn
- Clone o repositório:
git clone <repository-url>
cd vin-rouge-bistro- Instale as dependências:
npm install- Inicie o servidor de desenvolvimento:
npm run dev
# ou
quasar dev- Acesse no navegador:
http://localhost:9000
Para acessar o sistema, use qualquer email válido e senha com 8+ caracteres:
- Email: chef@vinrougebistro.com
- Senha: chef1234
src/
├── components/ # Componentes reutilizáveis
│ ├── Header.vue # Cabeçalho com navegação
│ ├── Sidebar.vue # Menu lateral
│ ├── DishCard.vue # Card de prato
│ └── OrderModal.vue # Modal de itens da comanda
├── pages/ # Páginas da aplicação
│ ├── Login.vue # Tela de login
│ ├── Dashboard.vue # Dashboard principal
│ ├── DishesList.vue # Listagem de pratos
│ ├── DishForm.vue # Formulário de prato
│ ├── IngredientsList.vue
│ ├── IngredientForm.vue
│ ├── OrdersList.vue
│ ├── OrderDetails.vue # Mestre/Detalhe
│ └── ReservationsList.vue
├── stores/ # Gerenciamento de estado
│ ├── auth.js # Store de autenticação
│ ├── mock.js # Dados e funções mock
│ └── index.js # Configuração Pinia
├── router/ # Configuração de rotas
│ ├── index.js
│ └── routes.js
├── css/ # Estilos globais
│ ├── app.scss
│ └── quasar.variables.scss
├── layouts/
│ └── MainLayout.vue # Layout principal
└── App.vue
- Validação de email e senha
- Armazenamento de token no localStorage
- Redirecionamento automático
- Cards com métricas principais
- Ações rápidas
- Alertas de estoque baixo
- Resumo financeiro
- Listagem com filtros (nome, categoria, disponibilidade)
- Visualização em cards ou tabela
- Formulário com validações completas
- Upload simulado de imagem
- Seleção de ingredientes
- Controle de estoque
- Alerta visual para estoque baixo
- Cálculo de valor total em estoque
- Múltiplas unidades de medida
- Visualização de detalhes completos
- Adição/remoção de itens
- Atualização de status
- Cálculo automático de totais
- Listagem com filtros
- Criação e edição de reservas
- Confirmação rápida
- Campos para observações
Edite src/css/quasar.variables.scss:
$primary: #sua-cor-primaria;
$secondary: #sua-cor-secundaria;Edite src/stores/mock.js para adicionar mais pratos, ingredientes, etc:
export let dishes = [
{ id: 1, name: 'Novo Prato', category: 'Principal', price: 50.00, ... }
]Atualize os componentes:
Header.vue: Nome e logoSidebar.vue: Menu e informaçõesLogin.vue: Branding
- Crie nova rota em
src/router/routes.js - Crie componente em
src/pages/ - Adicione item no menu em
Sidebar.vue - Adicione funções mock em
src/stores/mock.js
O sistema é totalmente responsivo com breakpoints:
- Mobile: < 600px
- Tablet: 600px - 1024px
- Desktop: > 1024px
npm run dev # Inicia servidor de desenvolvimento
npm run build # Compila para produção
npm run lint # Executa linterq-layout,q-header,q-drawer: Estruturaq-page,q-card: Containersq-table: Tabelas de dadosq-form,q-input,q-select: Formuláriosq-btn,q-icon: Interaçãoq-dialog,q-menu: Modaisq-badge,q-chip: Indicadoresq-notify: Notificações
MIT License - Sinta-se livre para usar este template em projetos pessoais ou comerciais.
Contribuições são bem-vindas! Para contribuir:
- Fork o projeto
- Crie uma branch (
git checkout -b feature/nova-funcionalidade) - Commit suas mudanças (
git commit -m 'Adiciona nova funcionalidade') - Push para a branch (
git push origin feature/nova-funcionalidade) - Abra um Pull Request
Este projeto foi desenvolvido como template para trabalhos acadêmicos, demonstrando:
- Arquitetura Vue 3 moderna
- Boas práticas de código
- Design profissional
- Sistema CRUD completo
- Relação Mestre/Detalhe
- Gerenciamento de estado
- Roteamento SPA
Para dúvidas ou sugestões, abra uma issue no GitHub.
Desenvolvido com ❤️ usando Vue 3 + Quasar Framework
Vin Rouge Bistrô - Onde a tecnologia encontra a alta gastronomia