Skip to content

A modern, battery-included Go framework inspired by Laravel Filament. Build robust Admin Panels & CRUD apps with Ent, Templ, HTMX, and Tailwind CSS.

Notifications You must be signed in to change notification settings

bozz33/SublimeGo

Repository files navigation

SublimeGo Framework 🚀

SublimeGo est un framework Go moderne inspiré par Laravel Filament, conçu pour accélérer le développement d'applications web robustes avec une architecture propre et maintenable.

Architecture

Le framework intègre nativement une stack technique de qualité professionnelle :

  • Langage : Go 1.24+
  • ORM : Ent (Facebook) - Type-safe, extensible
  • Templating : Templ - Type-safe HTML templates
  • UI : Tailwind CSS (v4), Alpine.js, HTMX
  • Base de données : SQLite (par défaut), extensible vers PostgreSQL/MySQL
  • CLI : Cobra - Génération de code et gestion de projet

Fonctionnalités

  • Resources System : CRUD complet avec génération automatique
  • Form Builder : Constructeur de formulaires fluent avec validation
  • Table Builder : Tables interactives avec tri, filtres et pagination
  • Actions System : Actions personnalisables avec modales de confirmation
  • Widget System : Stats cards et graphiques (ApexCharts)
  • Navigation avancée : Groupes, badges, tri automatique
  • Authentication : Système d'auth intégré avec sessions
  • Multi-Panel : Support de plusieurs panels d'administration

Installation Rapide

# Cloner le projet
git clone https://github.com/bozz33/SublimeGo.git
cd SublimeGo

# Installer les dépendances
go mod download

# Initialiser le projet (DB, migrations, admin)
go run cmd/sublimego/main.go init

# Démarrer le serveur
go run cmd/sublimego/main.go serve

Le serveur démarre sur http://localhost:8080

Commandes CLI

Génération de code

# Créer une nouvelle resource
sublimego make:resource Product

# Créer une migration
sublimego make:migration create_products_table

# Lister les resources
sublimego resource list

Base de données

# Exécuter les migrations
sublimego db migrate

# Rollback
sublimego db rollback

# Reset complet
sublimego db reset

Serveur

# Démarrer en mode développement
sublimego serve

# Mode production
sublimego serve --env=production

Tests

# Lancer la suite de tests complète
go test ./...

# Tests avec couverture
go test -cover ./...

# Tests d'un package spécifique
go test ./pkg/actions/...

Documentation

Structure du Projet

SublimeGo/
├── cmd/sublimego/          # Point d'entrée CLI
├── internal/
│   ├── ent/                # Schémas et entités ORM
│   ├── resources/          # Resources CRUD
│   ├── providers/          # Providers de données
│   └── registry/           # Enregistrement des resources
├── pkg/
│   ├── actions/            # Système d'actions
│   ├── auth/               # Authentification
│   ├── engine/             # Moteur du framework
│   ├── form/               # Form Builder
│   ├── table/              # Table Builder
│   ├── widget/             # Widgets dashboard
│   └── ui/                 # Templates et layouts
├── views/                  # Templates Templ
├── public/                 # Assets statiques
└── test/                   # Tests d'intégration

Exemple d'utilisation

Créer une Resource

package product

import (
    "github.com/bozz33/SublimeGo/pkg/engine"
    "github.com/bozz33/SublimeGo/pkg/form"
    "github.com/bozz33/SublimeGo/pkg/table"
)

type ProductResource struct {
    engine.BaseResource
}

func (r *ProductResource) Schema() *form.Form {
    return form.New().SetSchema(
        form.Text("name").Label("Nom").Required(),
        form.Textarea("description").Label("Description"),
        form.Number("price").Label("Prix").Required(),
    )
}

func (r *ProductResource) Table() *table.Table {
    return table.New(r.GetData()).
        WithColumns(
            table.Text("name").Label("Nom").Sortable(),
            table.Badge("status").Label("Statut"),
            table.Text("price").Label("Prix"),
        ).
        SetActions(
            actions.EditAction("/admin/products"),
            actions.DeleteAction("/admin/products"),
        )
}

Contribution

Les contributions sont les bienvenues ! Consultez CONTRIBUTING.md pour les guidelines.

License

Ce projet est sous licence MIT. Voir LICENSE pour plus de détails.

Remerciements


Développé avec ❤️ par la BozzDev

About

A modern, battery-included Go framework inspired by Laravel Filament. Build robust Admin Panels & CRUD apps with Ent, Templ, HTMX, and Tailwind CSS.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published