MoogwaiTM is a core infrastructure helping developping Web applications with the benefit of a strong and mature middleware layer, solving most common issues a Web Front service addresses. MoogwaiTM is a project based on MoodleTM, which is one of the top world software in the education field.
In NO WAY MoogwayTM pretends to be a fork of MoodleTM. We love MoodleTM and yet strongly support it as an active third party conributor. This is why we wanted to use a framework that let us continue think and drive development and integration projects taking profit of MoodleTM's technical maturity.
Although MoogwaiTM's API are very closely inspired from MoodleTM APIs, do not hope MoogwaiTM is a concurrent LMS to MoodleTM. MoodleTM did (and still do) things well, and is now a very mature framework for education. MoogwaiTM is focussing on everything wich is NOT an LMS.
MoogwaiTM is addressing Web Application developers that have a good skill in MoodleTM, love the framework, and would like to pursue developing other applications without changing of technical culture. MoogwaiTM sticks to a lot of core MoodleTM concepts, rearrange them, and sometime extends them.
MoogwaiTM would be a perfect generic framework for any IT company that provides MoodleTM services, but might also serve companies that are NOT related to education.
MoogwaiTM has been developed sticking to MoodleTM architecture, and removing everything that was addressing specific education needs. By the way, every part that has been elucidated to be generic to “any” Web app project has been kept in the architecture :
See architectural rationale and discussion
MoogwaiTM has been reshaped entirely to discard :
By the way, we aimed at really simplify as much as possible the architecture and remove some over-complex features of Moodle, so we removed some generic parts :
Moogwai from scratch will just install the infrastructure, which means that end users will not find anything usable in it. Integrators will develop their local services as an instance of a new plugin class : the “App”. As we cannot anticipate on the complexity of what integrators will have to develop, a significant reshape of the role and capability system is added (See Contexts).
Contexts is a single abstraction to unify any object or subconcept that needs to be driven by roles or profile restrictions.
capability is an individual switch that will allow a user to “see” or “do” something in the application.role is a set of capabilities that will be switched “on” or forced “off” if the role is applied to the user in the current context.context is a part of the application where a role can be applied to a user. Contexts can be nested in other contexts to form an administation tree architecture.context is of some context level, designating the nature of the object it represents.role definition. Moogwai is not any more restricted to a static context level definition.Moogwai Apps is the core concept of MoogwaiTM : An App is a functional singleton that provides a service or application to users. Here are some exemples of apps :
Moogwai Apps and Local plugins have some characteristics in common, such as being functional “singletons” (this may hide internal instanciability of some sub-objects). But they still have major differences :
Moogwai continues to be in an experimental developping process is NOT YET publically available. Early interessed potential contributors might contact us at dev-At-moogwai.org.