Yancy - Mojolicious CMS - Version 1 released
I'm happy to announce the release of version 1 of Yancy, a simple content management system for Mojolicious websites. Yancy is designed to be added to your website to make it easier to develop a web application and manage the content inside.
Yancy features a responsive web application that uses your database schema to build forms to edit your site's content. Yancy currently understands databases like Postgres, MySQL, and SQLite, and the DBIx::Class ORM.
The CMS also comes with reusable controller classes and data management helper functions to reduce the amount of code you have to write. There's even a very basic password authentication plugin to add user accounts to your site.
For version 2.0, I plan to add ways to define and manage relationships in your site's data. I also plan to add plugins for generating forms using UI libraries like Bootstrap, role-based authorization, and a pluggable authentication system to allow for users from Twitter, Google, LDAP, and other places on the same website.
Give it a try and let me know what you think!
Love it
Do have one question though
how do you Bundle 'Bootstrap' and the other things you need.
I can't figure out how to get them all??
To bundle up JS and CSS and other such, I put them all in a
resources
folder, and then add them to the static file and template lookup paths using__FILE__
andMojo::File
.This is the same thing the Minion admin app does (a resources folder, and adding to static/template paths).
Back in the saddle, eh?
Look what you did to the poor man!
I tricked myself: I just wanted to write a JavaScript editor and read an OpenAPI spec and built a CRUD interface. By the time I realized what I was actually building, it was too late.
Is MongoDB - Mango usable with Yancy?
And if it is, does a document or example exist of it's implementation?
MongoDB is not presently a backend for Yancy, no, but Yancy is designed to support document stores like MongoDB in the future (it's why I chose JSON Schema to define the data).
If someone were to make a Yancy::Backend::MongoDB (for the official driver) or a Yancy::Backend::Mango (for the Mango driver), I would gladly add it to the core distribution. There is a standard set of tests that all backends should pass, and I can help anyone who wants to write a backend to get their tests passing either via a Github Pull Request or via e-mail (doug@preaction.me) or via IRC on irc.perl.org #yancy.
A MongoDB backend would enable very simple collections to be edited: A document could have only simple field/value pairs, not complex values like objects or arrays inside. To allow editing more complex data, the editor would likely need to enhanced to support it. To start, the editor could just allow hand-editing the JSON in the object/array, but in the future, I would want a full form to edit internal objects. This is on the roadmap, but it is not started (I will likely start this as part of adding relationships to the data).