Reference Application
Source Code of the reference app Jugtracker - a simple bug tracker can be downloaded here . Model can be found in src/model/Model.mdzip. To run the application create a mysql database called jugtrackerdb, then run mvn install jetty:run. Database username password can be changed in src/main/resources/persistence.xml.

Here are some of the features :
Ajax Enabled Crud
Advanced Search : automatically generated advanced search with search possible on all fields, Integers, Doubles and dates automatically become range searches.

Autocompleting full text search : All entities and fields have Lucene and hibernate search powered full text search capabilities. Generated code auto completes on typed text.

Many to Many : Many to many relationships are rendered as a user friendly and intuitive shuttle list.

Many to Many : Selecting a project automatically updates the employee drop down , so only employees that are part of the project are selectable.

Compositions : Composed entities (e.g questions are part of an exam) are rendered as an editable grid.

Access Control: WitchcraftMDA supports very fine grained access control , with users and roles. Each generated field has an edit/view permission holder which is driven by a drools file.


Web Flow - UI state machine
How users can move from a screen to another screen (i.e navigation flow) can be easily expressed by a state machine diagram. WichcraftMDA translates the state machine diagram into a platoform specific navigation file such as pages.xml (for seam) or struts-config.xml.

Workflows
Modern applications need sophisticated workflow handling, witchcraft supports workflows by translating activity diagrams into JBPM process definitions. Following is an example of a very simple defect process workflow:

Task List: Employees can see the tasks assigned to them as well as select tasks from the pool.

Task List: As per the above workflow, the qa user can choose to either close the defect or mark it as "needsRevision" which will send it back to the person who worked on this task.

Reports
WitchcraftMDA makes the tedious task of creating reports very easy by allowing UML classes to represent reports. Supports grouping, report params and report charts.

Forms are generated for parameterized reports automatically

Web Services
All entites are exposed as SOAP web services
