Skip to content

leonardo-matheus/Lavarel-Fullstack-Generator

Repository files navigation

Lavarel

🚀 Lavarel Fullstack Generator

Framework completo para criar aplicações Laravel + Vue 3
Gere módulos CRUD completos com um comando. Backend + Frontend integrados automaticamente.

Laravel Vue Quasar Naive UI License

📖 DocumentaçãoFeaturesQuick StartComponentes


✨ Features

  • 🔧 Gerador de Módulos - Crie CRUD completo com um comando
  • 🎨 20+ Componentes - Biblioteca completa com Naive UI
  • 🌙 Dark Mode - Suporte nativo a tema escuro
  • 🔐 Autenticação - Laravel Sanctum com roles e permissões
  • 📱 100% Responsivo - Mobile-first design
  • 💳 Credit Card - Componente com detecção de bandeira e banco
  • 📊 Formatação BR - CPF, CNPJ, telefone, moeda automático

🚀 Quick Start

# Backend
cp .env.example .env
composer install
php artisan key:generate
touch database/database.sqlite   # ou configure MySQL no .env
php artisan migrate --seed

# Frontend
cd ui && npm install

# Executar (2 terminais)
php artisan serve              # http://localhost:8000
cd ui && npx quasar dev        # http://localhost:8080

Login: boss@mail.com / password

Stack

  • Backend: Laravel 10, Sanctum, SQLite/MySQL
  • Frontend: Vue 3, Quasar 2, Pinia

Estrutura

app/
├── Http/Controllers/API/    # REST endpoints
├── Models/                  # Eloquent (*_H.php = helpers)
├── Repositories/            # Query abstraction
├── Services/                # Business logic
└── Traits/                  # Shared behaviors

generator/
├── scopes/*.json            # Definições dos módulos
└── template/                # Templates de código
    ├── api/                 # Controller, Model, Migration, Repository
    └── ui/                  # Index, Form, Detail (Vue)

ui/src/
├── components/
│   ├── core/                # Layout: TopBar, SideNav, Notif
│   ├── globals/             # Páginas de erro (401, 403)
│   └── Lavarel/             # UI Kit: LvTable, LvInput, LvBtn...
├── layouts/                 # MainLayout, Login
├── pages/                   # Telas por módulo
├── services/                # Api.js, Helper.js, Handler.js
└── store/                   # Pinia (GlobalStore)

Gerador

1. Criar scope JSON

generator/scopes/products.json:

[{
  "name": "Products",
  "column": [
    { "name": "id", "type": "bigIncrements", "attributes": ["index"] },
    { "name": "name", "type": "string" },
    { "name": "price", "type": "double", "length": 10, "length2": 2 },
    { "name": "category_id", "type": "unsignedBigInteger",
      "belongsTo": { "model": "Categories", "name": "Category" }
    }
  ]
}]

2. Gerar

php artisan lv:generate --scope=products

3. Registrar

config/lv_modules.php:

return [
    "Users", "Roles", /* ... */
    "Products",  // novo
];

4. Migrar

php artisan migrate

Tipos de Coluna

Tipo Uso
bigIncrements PK auto-increment
string VARCHAR(255)
text Texto longo
double Decimal (length, length2)
boolean 0/1
enum Lista fixa (enum_list: [...])
dateTime Timestamp
unsignedBigInteger FK (com belongsTo)

API

Auth

POST /api/app/login     { email, password } → { token }
Header: Authorization: Bearer {token}

CRUD (por módulo)

GET    /api/{module}           Listar
GET    /api/{module}/{id}      Detalhe
POST   /api/{module}           Criar
PUT    /api/{module}/{id}      Atualizar
PUT    /api/{module}/delete    Soft delete (batch)
PUT    /api/{module}/restore   Restaurar (batch)

Usuário

GET /api/me                    Perfil
GET /api/me/permissions        Permissões
GET /api/me/notifications      Notificações

🎨 Componentes UI (Lavarel Kit)

Componente Descrição
LvInput Input com validação, modos: text, number, currency, date
LvSelect Select com busca, múltipla seleção e ajax
LvBtn Botão com variantes: soft, flat, outlined, loading
LvTable Tabela com paginação, busca, ordenação
LvCard Card com header, footer e slots
LvModal Modal com header, conteúdo e footer
LvContainer Container flex com layout responsivo
LvDisplayer Exibidor com formatação automática (CPF, CNPJ, moeda)
LvAvatar Avatar com imagem ou iniciais automáticas
LvBadge Badge para notificações e contadores
LvTag Tag/chip com tipos e ações
LvProgress Barra de progresso linear ou circular
LvDivider Separador horizontal ou vertical
LvEmpty Estado vazio para listas
LvSkeleton Skeleton loading placeholder
LvTooltip Tooltip responsivo com tipos
LvCreditCard Cartão de crédito com detecção de bandeira e banco BR

📸 Screenshots

Dark Mode Light Mode


🤝 Contribuindo

Contribuições são bem-vindas! Sinta-se à vontade para abrir issues e pull requests.

  1. Fork o projeto
  2. Crie sua feature branch (git checkout -b feature/AmazingFeature)
  3. Commit suas mudanças (git commit -m 'Add some AmazingFeature')
  4. Push para a branch (git push origin feature/AmazingFeature)
  5. Abra um Pull Request

📝 Licença

Este projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.


Feito com ❤️ por Leonardo Matheus

About

Fullstack CRUD generator — Define JSON, generate Laravel API + Vue/Quasar UI automatically

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors