Skip to content
bergie edited this page Mar 10, 2011 · 27 revisions

Midgard2 is an Open Source Content Repository. It provides an object-oriented and replicated environment for building data-intensive applications for both web and the desktop.

With Midgard2 you have generic way to define your own storage objects, that can then be queried and managed using multiple programming languages and applications. This enables writing your CMS or project management tool using a repository-oriented architecture where the Midgard2 storage system acts as the central point of integration between various tools.

Midgard2 is built on the GNOME stack of libraries like GLib and libgda, and has language bindings for C, Python, PHP and other languages via GObject Introspection. Communications between applications written in the different languages happen over D-Bus.

More more about the concept in "Why you should use a content repository for your application" by Henri Bergius.

Midgard in GSoC 2011?

The Midgard Project is applying as a mentoring organization in the Google Summer of Code 2011. If we get accepted, then this is an excellent opportunity for students to have a summer job hacking free software on top of Midgard.

This is the first time we apply to GSoC, though there have been previous GSoC projects that have used Midgard internally. See for example The Tablet of Adventure, a location-based game built for Maemo in 2010.

This page contains ideas for projects. As Midgard supports multiple programming languages, this list is organized per-language.

Vala

Possible mentors: piotras, ab

  • Implement a Midgard back-end to a GNOME3 app
  • Implement SPARQL parser for MidgardCR (using pieces of libtracker-sparql)

JavaScript

Possible mentors: bergie

PHP

Possible mentors: bergie, indeyets

Python

Possible mentors: jerryjj, indeyets

C

Possible mentors: indeyets, piotras, ab

  • add DTrace probes to MidgardCR

Qt/QML

  • Figure out a way to access Midgard content repository from QML applications, either via midgard-daemon and ZeroMQ or by direct Qt bindings
Clone this wiki locally