@zolteam/kulla
v1.0.0
Published
ZOL's homemade CMS vendor.
Downloads
2
Readme
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