Andromeda is a completely new way to do database application programming. Andromeda is radically data oriented, allow you to specify all of your business logic in a single text file, which Andromeda uses to build many of the stock requirements for your application or web site:
Andromeda uses your database specification to do these tasks (among others):
If this were all we had, we could not claim Andromeda was doing anything new. The real power starts to come into play with Andromeda's ability to handle the calculated values that are so vital to any useful application. With Andromeda, every calculation depicted below happens automatically when you make inserts into the database, there is absolutely no application code to write:
Andromeda builds the code to handle these calculations when it builds the database, and it puts the code directly into the database itself. This is very important because it makes your database calculations non-subvertible. Any application code that attempts to write bad values get kicked back with an error.
Andromeda's brand new approach is to specify calculations that make sense in terms of primary keys and foreign keys. You can specify that a price be "FETCHED" from a parent table (items) to a child table (cart line items), and then specify that the SUM a child table (cart line items) be put onto the parent table (cart).
The Andromeda approach to calculations lets you build databases of dozens (or hundreds) of tables in which there is zero application code for calculated values. However, if security were not part of the picture, you would still have a lot of code to write. Andromeda can also eliminate application code to handle security because of the simple fact that all security rules in the end come down to who can read or write what values in tables. Andromeda supports this concept at the table level, at the row level, and at the column level:
After you have written out an Andromeda Database Specification, Andromeda will build you a database and application that automatically builds tables, handles calculations, handles security, and gives you a default admin interface for the entire database.
However, this still leaves the need for special pages, especially if you are doing a public website. The Andromeda philosophy here is to let you do anything you want and stay out of your way. Of course there are lots of helpful library routines, but our main goal is to not force you into any "One True Framework" when you want to do your own custom pages. An Andromeda website can have multiple templates, for public and admin use:
Moreover, Andromeda, never clobbers your custom code when it regenerates its own code. We have a nifty way of keeping custom and stock separate so your custom code always overrides stock code but your own files are never clobbered.
You can replace any admin page with your own, in whole or in part. You can have multiple domains all going to the same application with different templates, and you can add or change any page you want.
This site contains the complete documentation for Andromeda. As of this writing, near the end of the leap year, 11:00pm on February 29, 2008, the Andromeda documentation is under heavy development. If you find anything amiss in the docs, join the mailing lists and ask!