Molecule Reader

An interactive site to display molecules.
Role: Back End Developer
A laptop sitting on a desk next to a lamp with a molecule on the screen.

Background

During my third year at University of Guelph, I took the class Software Development and Integration. This class examined developing software through multiple languages and integrating them together.

What is the problem?

Given an SDF file of numbers that represent a molecule in chemistry, the site will give a visual representation. The molecules needed to be graphed utilizing gradients, colors and sorted by z values representing the depth.

What is the minimum viable product? (MVP)

The key goals of the app were to develop a usable C library compiled with a makefile, and utilize the C library from Python to read a file. This information would be used to graph a molecule, and store it in an SQL database. Python would be used to launch a server running on the local computer, formatted with HTML, CSS and JS.
The minimum viable product (MVP) was focused on the functionality, getting an accurate graph to show up on a local server. The backend was the focus, with less emphasis on the design of the site.

What is the product roadmap?

September 2022: C library development.
October 2022: Python integration and file reading. SQL data storing.
November 2022:
Creating server and using HTML and CSS to create the server.

What is the user journey?

User downloads the source code from my Github. The user can run server.py 59798 in the command line of the folder containing the downloaded files. When the user opens a browser and types localhost:59798, they can hit enter to view the site. The user is taken to a home page, where they can add a properly formatted file and name a molecule to view it. If the user inputs an incorrectly formatted file, it will not attempt to display it. The user can view a list of all the elements in the database, and add or subtract elements as needed for their molecule. Intuitively, the user can view a list of all the molecules in the database.

How do we measure success?

Although the app has not yet reached a product launch or user testing, I identified some key performance indicators (KPI's) to measure success in the future.
File formatted correctly will show a molecule with gradients based off z values.
User testing reveals the site can be navigated easily.

Final product

a desktop mac with a site with the title "add element to list"