Database and API
Having settled on a tech stack, we turn our attention to two vital aspects of back-end architecture: database and API design.
With a multitude of objects to keep track of, we dived into the process of identifying tables and columns, their relationships with each other, and normalizing the resulting SQL database.
One key aspect of Alexandria’s initial goal is to provide an application that is highly interactive. This particular need is well served by a single page application. Working from those assumptions, it made sense to expose an API that allowed both our single page React app to talk to the server, as well as opening the door for alternative front ends at a future stage. A decoupling of front and end back allows not only for API calls made from, say, a mobile app later on, but also contributions from a different front end.