Solon
Solon is a mobile application built to increase parent engagement in schools and facilitate communication with faculty.
I developed this mobile application with mentors and a team of three students as a participant in a Google Mentorship Program. At a high school with a very large immigrant population, we noticed a lot of parents were unable to participate in a parent-teacher organization, which would be largely beneficial to their students' success. The two main reasons for this were a language barrier and too many other commitments to be able to add on lengthy in person school meetings. Our team set out to solve this by creating a mobile application for quick and efficient parent engagement in schools with seamless translations to remove the language barrier. I mainly developed the REST API and administrator web application, while my two teammates worked on the mobile application. I was also the leader of the team and handled project management and planning.
Core Features
- Voting on proposals created by faculty to create change in school policy
- Viewing school events and marking attendance to notify faculty
- Creating and commenting on forum posts for discussion regarding the school
- Viewing all content in the app in your preferred language using the Google Translate API
- Administrator web application for faculty to add and moderate proposals, events, and forum posts
- Authentication for authorized parent emails
Technology Stack
- Flutter: Selected to create a cross platform mobile application quickly and because we had access to mentors from the Flutter team
- Node.js and Express.js: Selected to create a REST API that could be utilized by the mobile application and administrator web application
- Sequelize: Selected for simple and secure interaction with our SQL database
- PostgreSQL: Selected due to the relational nature of data in our application
Technical Challenges
This was the first piece of software that any one on our team had created, so we had a lot of missteps at the start of our journey. Most of this revolved around planning and project management. As we were excited to immerse ourselves into coding our pieces of the project, we skipped ahead of a lot of the planning needed to get our features working. One example of this was with translations, one of the most important functionalities of our application. We had not planned our data model around translations and searching content with these translated pieces of text, so when we got around to implementing these functionalities, major changes had to be made across the entire application. Working with databases and creating a properly designed database for our use case was quite difficult, and a lot of the help from our mentors was on this topic.
Lessons Learned
I learned a lot about building a REST API using Node.js and Express to be consumed by both a mobile and web application. I also learned about authentication methods for communicating with our backend and database design. However, the most important takeaway was regarding planning and project management. We did not understand the importance of proper planning until more than halfway through the project, at which point we were able to drastically improve our efficiency. We started spending hours whiteboarding and writing design documents, but spending significantly less time having to go back and fix mistakes or repeatedly communicating on the same issues. We also learned about presenting your product to your audience, in our case the school faculty, and persuading them to get on board with your vision.
Next Steps
We completed the MVP of our application at the height of the COVID-19 pandemic in 2020. Although we were already in talks with the school administration to get our solution implemented and used by the parents at our school, they had to reprioritize their time and focus on the effects of the pandemic. By the time they got back on their feet and adjusted to pandemic life, we had graduated, and unfortunately the project ended there. We do not plan on continuing this project, but learned an immense amount that we took with us onto future endeavors.