1.0.0 • Published 4 years ago

@zolteam/kulla v1.0.0

Weekly downloads
-
License
MIT
Repository
-
Last release
4 years ago

KULLA

ZOL's homemade CMS vendor.

Kulla (god), god of builders in the Mesopotamian mythology. He is responsible for the creation of bricks, and as a Babylonian god, restores temples.

Purposes

  • To develop a Zol homemade CMS vendor to capitalize CMS features
  • Easily integrated into all our projects, alongside other vendors
  • Fully extendable, not based on configuration process but explicit usage, component by component

Prerequisites and principles

These are philosophical prerequisites assumed for this project. Developers must follow these precepts in order to keep a coherence with project's vision.

  • This vendor supports PHP >= 7.2 and SF >= 5.0.0
  • It should use as few dependencies as possible to avoid dependency hell
  • It should be based on as many technologies and logic as possible already used by ZOL. No other langages, vendors, or software other than to one used in classical stacks at ZOL.
  • All development must be submitted to at least Christophe and Xavier for review, and should have at least two approvals before being merged
  • Developers and projects using this vendor should not suffer from magic binding, usage and features. Each of them should be explicitly declared by a developer and easily replaceable if needed.
  • Avoid as much as possible "magic" : things that are inferred by obscure code or lucky variable naming
  • Each development must be fully covered by tests, documented on how to use it.
  • All API parts must be documented through Swagger process
  • Prefer composition over inheritance over configuration : it should be from the most explicit way to the least, while still not being too much verbose. Where you place this cursor is the key !

Next developments

These are the next parts needed to be developed in order to get an alpha version, then bêta

Alpha

Objective

I, as a developer, can use the composer dependency and get the basic level of a CMS

User stories

  • Access to a view to list / create / edit / delete a post

Development needed

  • Register routes in host project
  • Define basic controllers for CRUD
  • Define service logic to handle CRUD
  • DTO logic to handle form checking through json deserialization
  • Swagger API documentation for internal routes
  • Extendable react components used in twig templates
  • An extendable UX & UI by defining backoffice template logistic (sidebar, footer, breadcrumbs ...) and resources dependency
  • Translations override
  • Translations in Javascript
  • Publish npm package for js part
  • PHP docker image with chrome available
  • Panther tests for a javascript scenario
  • CI for panther, php-cs-fixer, eslint, phpstan
  • CRUD with datatables for list, react component for create/edit, alert confirmation for delete

Beta

Objective

I, as a project manager / lead developer, can propose the use of Kulla for a basic CMS project

Development needed

  • Proper online documentation for API, react components