msgr
GitHubAn app for posting messages
msgr (pronounced “messenger”) is an app developed by myself and Ian Brown for our final project for Introduction to Databases at OSU. It is a web application that allows user to post Twitter-style “messages”, comment on “messages” and follow other users. At one time it was hosted on msgr.fgj.codes; someday it may appear there again.
Here’s a basic overview of the architecture, which is based on the JAM stack:
(made by me in LucidChart)
Basically, the app uses three services:
- An api server that serves data to the user, built in Flask
- A content server that serves static content, using Nginx
- A mariadb database running on Amazon RDS
Ian, who had much more experience than me with APIs, built the API server, and we collaborated on the database. I built the frontend using React.
There’s nothing mind-blowingly cool happening anywhere in this project; the experience of standing up an entire web application was enough excitement for me. It was fun to get to play around with asynchronous loading on the frontend; I used a Container Component pattern for async loading content to render a placeholder while loading, then swap in the content loaded from the API server once it returned. This was very necessary, as the combination of Flask in development mode plus EC2 micro servers makes for a veeeery slow load time.
I was also pretty proud of the overall look-and-feel of the app, which I designed in Figma before starting development. Here’s a picture from the design:
Overall, this was a fun project that taught me a lot about React development and infrastructure design.