We'd like to introduce you to our new project, AllianceCMS!
Website: http://www.alliancecms.com
Github: https://github.com/jbWebWare/AllianceCMS
Features: https://github.com/jbWebWare/AllianceCMS/wiki/AllianceCMS:-Features
Wiki: https://github.com/jbWebWare/AllianceCMS/wiki
API: http://api.alliancecms.com
Facebook: https://www.facebook.com/alliancecms
Twitter: https://twitter.com/jbWebWare
IRC: [URL="irc://chat.freenode.net/alliancecms"]irc://chat.freenode.net/alliancecms[/URL]
AllianceCMS is a Social Content Management System, designed from the ground up to help you create quality, modern Social Networks (no more tacking on social features to an existing, single site system).
AllianceCMS is still pre-Alpha, but we're making great strides, and it is installable using a browser based installation process.
We focus on many goals, including helping people create great communities, but we'll focus on technical goals in this post.
Some of our technical goals are:
Make AllianceCMS easy to develop with/for (for both plugin and theme developers)
To create a flexible yet powerful system, where it's easy to create simple plugins, while giving you the tools to create complex plugin solutions
To create the 'brains' of the system (known as Axis), which is the absolute minimum code needed to load the system, while keeping extended functionality separate, as individual plugins (not everyone want's a blog or forums, so why bother loading them or tying them into the system?)
To automate as much as possible. Plugin/theme developers do not need to know which 'Venue' (our term for 'sites/groups/spaces/pages') a user is on. When you create a plugin/theme, the API makes it seem like you are developing for a single site while the back end (known as Axis) takes care of loading/saving data specific to the 'Venue' the user is on
To follow current best practices by:
Following PSR recommendations
Sticking to a solid MVC plugin structure
Keeping all programming logic outside of the webserver Document Root
Using mod_rewrite to create SEO Friendly URLs
Using our own custom PSR compliant components when it's the best option, and using modern PSR compliant Framework Components when it's an appropriate fit
This is an active project, with updates and major improvements made often (almost daily). As we're still working on getting a full Alpha release out the door the current code base is a moving target, so we're not spending a lot of time on documentation at the moment. We'd end up spending half of our time updating the docs if we worked on docs at the same time.
There are a few articles on the wiki (see the link above) that talk about where we are coming from, explains some AllianceCMS specific terminology, lists some cool features that we have already implemented and plan on expanding, and there's even a 'Creating a Plugin' tutorial so you can see how a plugin is structured! These docs will be updated and added to as often as is prudent, so check back often.
We are working on clearly documenting the code (using Doxygen Doc Blocks) as we feel that a certain feature is at least at a first rendition that's semi-complete (including usage examples), and we're making an effort to sprinkle the code with up-to-date @todo tags, so most modern IDEs should be able to give you a list of todo items that we are going to be working on.
This is a work in progress, and things will change as we head towards a full Alpha release, but we're ready to have folks play with AllianceCMS, get their hands dirty, try to break it, and submit bug reports, pull requests and suggestions.
Our main focus is on communities and the collaboration involved in communities, and not just by using AllianceCMS. We feel that the more hands that dip into an open source project, the better. It's a great experience to get a group of minds together and watch the best idea's float to the top. And we've learned from our own experience that even negative feedback is helpful. How many times has someone said, "Man, this thing stinks, it should do x this way, or why doesn't it do y?". If a project's team can look at that and use it to improve it's code base, you can really get some great results.
This is a great time to get involved and be heard! Come on by and check out AllianceCMS, we'd love to have you around!