
Database Design
Designing our database, and the technologies we will be using.
First Go
Here is our initial database design, showing how we will store information for logins, models and datasets. We also introduced the compatibility relationship, so that users can find relevant datasets to test.

We showed this to our client, and he informed us of further information that needed to be stored. We would need a results table, which will store data that users get from testing the models. We will also store a set of model label descriptors from careful ai so that compatibility could be easier to find, aswell as release terms so users can figure out what they can and can't use freely.
Second Iteration

The above schema shows our most recent design, which we plan to implement once we recieve our Linode server.
Technologies
We will be using PostgreSQL for the database, as well as Alembic and SQLAlchemy. This allows for an object relational mapping of tables and more readable python code. It also allows for migrations of our database and makes it much easier for the database schema to be extended or reverted to an old version if something goes wrong.