Story

The purpose of biomakerspace.ca is to serve as the virtual hub of the Physical BioMakerSpace, much like how makerepo.com is the virtual hub of the uOttawa Richard L’Abbé Makerspace. This is the end goal of the whole BioMakerSpace initiative, but that is only feasible over a long period of time; so in this summer, 2020, we kicked off this project to work towards this goal despite most of this original team likely never seeing the completed outcome of our ideal BioMakerSpace.

As a part of laying the foundation, biomakerspace.ca's initial purpose became to be a tool for the project to get people engaged in bio-tech, through our simulators and workshops, while being mostly confided at home due to the COVID-19 pandemic. The 1.0 biomakerspace.ca release would as serve the purpose of displaying to decision makers and possible investors that we are serious about this project and that there is a genuine need and engagement for a space like this.

To this end, biomakerspace.ca was developed to 3 key sections. Firstly the about section and by extension the front page, this section is purely a display of what the BioMakerSpace is about, the founding team and what the site has to offer. Secondly the simulators, these are the simulators curated by our wonderful team which we have displayed nicely and can be interacted with to bring you to the site of the simulator. Lastly the workshops, content created by knowledgeable folks and curated by our team, then we just display it nicely on our website. It was important for us to ensure that new simulators and workshops could be added without the need for a software developer and much development effort went into creating those functionalities for administrators of the BioMakerSpace.

Technologies

Technologies we use a server-less FERN stack, breaking that down its a server-less Firebase-Express-React-Node stack. We picked this stack as Firebase provided all the necessary services we required in our application, all in one BaaS, and I (Anthony) already have experience on the platform. React is a pretty standard choice and a great experience learning for our less experienced members

Main Website

Framework - React

State Management- React Context API

UI Kit - Ant Design

Hosting - Firebase Hosting

Core Service

Architecture - Sever-less

Runtime - NodeJS

Framework - Express

API Hosting - Firebase Functions

Database - Firestore

Authentication - Firebase Auth

Storage - Firebase Storage

System Architecture Philosophy

I envisioned the future of the project, from a software standpoint, as following the micro-services architecture. A monolithic architecture would never suit a project which may change teams every 4 months as coop terms come and go. The idea behind micro-services is to have many different small scale services or components which then combine together to make a robust platform. This allows a system's components to be more understandable and maintainable, as well as allowing a new team to takeover without a previous teams work ruined.

With that said, how it applies to this project is that major future components of the biomakerspace.ca should exist as separate repositories and only link to the Main Website by being under the same domain name. For example, a future store front for the BioStartUp should NOT live inside the Main Website GitHub repository; same idea applies to any new backend services. If it does not apply directly to the Main Website, it should NOT live in Core Service. Make a new repository for these new components unless they are very tied to the exist components, for example the proposed forum and bulletin for the Main Website. Use your best judgement, keeping in mind maintainability and understandability for yourselves and future teams which maybe taking over when you are gone.