MBARI Project

I had the pleasure to work on a project for MBARI!


Matt J. Sanchez


Over the past five months, I have been working with a team on a database project for the Monterey Bay Aquarium Research Institute (MBARI). Under the mentorship of Mike McCann, the team and I were tasked with taking an existing database and adapting it to a new system that the employees at MBARI could use to better manage their data. My team, pictured above left to right, included Fabian Santano, Ryan Romero, Marc Garcia, myself, and Nikhil Kulkarni.

The database, internally called the Expedition Database, has been in use since the 1980s. MBARI has been using this database to record data for their research expeditions along the California coast. When we first received the existing schema, it contained many legacy entity relationships and deprecated tables that needed to be removed to continue with the project. We used a combination of VSCode and MySQL Workbench to edit the schema and test the new relationships.

The next task was determining which tools we would use to accomplish our goal. Mike suggested several options like Django, Firebase, Flask, GraphQL, Swagger, and other tools. We decided to go with Flask for our project. Using Flask, we developed a web application to manage the data in the Expedition Database. Flask provided a lightweight and flexible framework that allowed us to build the necessary functionality efficiently. We implemented several routes to handle CRUD operations (Create, Read, Update, Delete) for the data. For instance, users could create new entries for expeditions and dives, update existing records, retrieve detailed information, and delete obsolete data. To make it user friendly, we integrated Swagger with Flask. Swagger allowed us to generate interactive API documentation, making it easier for users to understand and test the endpoints. This was particularly useful for MBARI employees who needed to interact with the API for their research. We also incorporated Google OAuth 2.0 for user authentication. This gave us a straightforward way for users to log in using their Google accounts, ensuring that only authorized personnel could access the sensitive data. Additionally, we implemented error handling to manage potential issues during database operations.

Our project helped modernize MBARI's Expedition Database using Flask and Swagger, improving data management and accessibility for MBARI's employees. Mike and the team at MBARI were very happy with our work and I am extremely grateful for the opportunity to have worked with them. I am also happy that our contributions will help MBARI with their ongoing research efforts. Mike McCann was also gracious enough to take my team and I to the MBARI HQ in Moss Landing CA. I had the pleasure to step aboard the research vessel Rachel Carson and see the famed ROV Ventana. The Ventana has completed more than 4,500 dives and is believed to have completed the most dives in the world.

The vessel Rachel Carson

The ROV Ventana

Control room of the Rachel Carson

I learned so much from this experience about database development and deployment. I learned a lot about Flask and how to build API's. I also learned how to interpret a clients needs and deliver and product they are happy with. Truly a wonderful experience. Here it the Github page from the project