Project Melody
I'm working on a new project called Melody. The aim is to create a tool for manipulating small-scale, complex data, especially for personal use. A good use-case is my to-do list: I need a system to help me keep track of my tasks. Data is stored in plain-text files (so I can use a text editor to introspect the database - how cool is that?) and most of the application logic is written as Python functions inside those same files. The front-end is a browser window, with CherryPy sitting in the middle; the views themselves are functions in the repository, using Genshi templates to generate HTML.
I'm doing my best to build Melody flexible and pluggable: it should be easy to create reusable bits of logic, for example:
- An interface to read mails from IMAP servers
- Fetching and publishing of calendars
- Version control for data repositories with Git
- Visualization primitives – displaying data using HTML/CSS/JavaScript
So in theory, when constructing a repository, you would be able to use any of these tools to help with various non-core tasks, so you can focus on the specific logic you need for your project.
Right now, looking from the browser, the repository is read-only; I need to capture GET and POST parameters from requests and pass them on to view functions to make a read-write UI. That's my next step; afterwards I'll document existing code and make it available, in case anyone else finds this little tool useful.