Skip to content

Releases: QuentinDav/schema-bundle

Initial Release

27 Oct 22:18

Choose a tag to compare

QD Schema Bundle v1.0.0 - Initial Release

We're excited to announce the first stable release of QD Schema Bundle! 🚀

What is QD Schema Bundle?

QD Schema Bundle transforms your Symfony application's database schema into an interactive, collaborative documentation platform. Built specifically for Symfony and Doctrine ORM, it provides a beautiful Vue 3 interface for teams to explore, document, and track schema evolution over time.


Key Features

Automatic Schema Extraction

  • Automatically reads Doctrine entity metadata
  • Zero configuration required
  • Works out of the box with any Symfony + Doctrine project

Interactive Visualizations

  • ER Diagrams: Beautiful entity-relationship diagrams with Vue Flow
  • Automatic Layout: Smart graph layout with ELK.js
  • Multiple Views: Switch between graph, cards, and list views
  • Smart Search: Quickly find entities by name or namespace
  • Relation Highlighting: Visualize entity relationships interactively

Release Management

  • Semantic Versioning: Automatic version suggestions based on changes
  • Schema Snapshots: Capture complete schema state at any point in time
  • Change Tracking: Detailed diffs showing added, removed, and modified entities
  • Release Timeline: Beautiful timeline view with temporal grouping
  • Release Comparison: Side-by-side comparison of any two releases

Collaboration Features

  • Entity Comments: Discuss schema decisions with your team
  • @Mentions: Tag team members in comments
  • System Comments: Auto-generated comments for schema changes
  • User Management: Role-based access with ROLE_QD_EDIT

Export & Documentation

  • Markdown Export: Generate beautiful documentation from releases
  • Complete Schema Snapshots: Full entity details in exported docs
  • SVG/PNG Export: Export ER diagrams as images

Security

  • Authorization Controls: Only authors or admins can delete comments
  • Entity Validation: Validates entity FQCN against Doctrine metadata
  • Role-Based Access: Built-in ROLE_QD_EDIT and ROLE_ADMIN support
  • SQL Injection Protection: Parameterized queries throughout

Technical Highlights

Backend (PHP 8.1+)

  • Modern PHP: PHP 8.1+ with typed properties and readonly classes
  • Symfony 6.4+ & 7.0+: Full compatibility with latest Symfony versions
  • Doctrine ORM 3.5+: Leverages Doctrine metadata for schema extraction
  • DTOs with Validation: Type-safe API requests with Symfony Validator
  • Transaction Safety: All schema operations are transaction-safe
  • Comprehensive Logging: Error logging with PSR-3 Logger

Frontend (Vue 3)

  • Vue 3 Composition API: Modern reactive framework
  • Pinia State Management: Centralized state with Pinia stores
  • Vue Flow: Interactive node-based diagrams
  • ELK.js: Automatic graph layout engine
  • Vite: Lightning-fast development and optimized builds
  • Responsive Design: Works beautifully on all screen sizes

Code Quality

  • PHPUnit Tests: Test coverage for critical services
  • DTOs: Input validation for all API endpoints
  • PSR-12: Code follows PHP standards
  • No Dependencies Bloat: Minimal required dependencies

Installation

composer require qd/schema-bundle

Then follow the installation guide in the README.


API Endpoints

Endpoint Method Description
/schema-doc/api/schema GET Get current live schema
/schema-doc/api/releases GET List all releases
/schema-doc/api/releases POST Create new release
/schema-doc/api/releases/{id} GET Get release details
/schema-doc/api/releases/compare/{id1}/{id2} GET Compare two releases
/schema-doc/api/releases/{id}/export/markdown GET Export as markdown
/schema-doc/api/comments GET/POST/DELETE Manage comments
/schema-doc/api/users GET Get users with ROLE_QD_EDIT
/schema-doc/api/snapshots/entity/{fqcn} GET Get entity history

What's Included

Core Components

  • ✅ Schema extraction service
  • ✅ Diff computation service
  • ✅ Versioning service with semantic version detection
  • ✅ Snapshot service with transaction support
  • ✅ Release management with full CRUD
  • ✅ Comment system with author tracking
  • ✅ User role management

Frontend Views

  • ✅ Interactive schema graph with zoom/pan
  • ✅ Entity cards view
  • ✅ Entity list view
  • ✅ Release timeline with filtering
  • ✅ Release comparison view
  • ✅ Entity history view
  • ✅ Comment sidebar

CLI Commands

  • qd:schema:install - Install bundle database tables

Requirements

  • PHP 8.1 or higher
  • Symfony 6.4 or 7.0+
  • Doctrine ORM 3.5+
  • Node.js (for frontend development only)

Documentation

Full documentation is available in the README.


Acknowledgments

Built with love using:


What's Next?

Check out our roadmap for upcoming features:

  • Field-level comments
  • Custom metadata fields
  • Webhooks for integrations
  • Export to Doctrine migrations
  • Dark mode
  • Advanced filtering

Support & Contributing


License

QD Schema Bundle is open-source software licensed under the MIT License.


Made with ❤️ by Quentin David

⭐ If you find this bundle useful, please give it a star on GitHub!

Install NowView DocumentationReport Bug