MUN of Borgar
Model United Nations of Borgar is a student run club at Malmö Borgarskolan, Sweden. As one of the heads of MUN at Borgar, from 2020-21, I was shocked to see that the club was still using Facebook to communicate with its members about weekly meetings, the reason being that there simply isn't a suitable replacement for creating posts that notify the members who have followed the page. It is a well known fact that Facebook is not popular among teenagers, which were our target audience, so I took it upon myself to desing and program an app that would allow me to cut the middle man and reach the members directly.
What was used?
MUNOB is a full-stack application, but my main focus for this particular app was the backend. The front-end is built with React. The backend for the application is written in Node.js, with authentication through JWT Tokens, the authentication was necessary to allow me and my fellow heads of MUN to log in and create new posts. The backend, through node.js, hosts a fully functioning CRUD API, which allows authenticated users to create, modify and delete posts. Not only that, the application also allows users to sign up for notifications, the notification device ids are stored on MongoDB Atlas, along with the credentials of the admins. On the front-end, a Service Worker is implemented to send push notifications to the memebers that have signed up for them, upon the creation of new posts.
Although initially, MUNOB initially seems to be quite a simple application it does have its complexities. Below is a link to a few parts of the application that are inaccessible to the end user. https://imgur.com/a/X7jk262
What was learnt?
If I were to pick out the one application that has single handedly taught me the most, it would have to be this one. Not only did I learn to create CRUD APIs with node.js on the backend (I had briefly worked with them in Laravel and Django in the past), I also delved deeper into the world of progressive web apps, through my introduction to service workers. I was also quite impressed with myself for implementing the notification id storage and the push notifications on my own, as there was little to no information available on them for Node.js.
Although, I was not able to actually bring the app to use due to the shutdown of schools follwing the Covid-19 pandemic, it still was a great learning experience and taught me a great deal not only about the back-end but also about the fron-end.
What could be improved?
As MUNOB was a fairly large project, I think I slacked off a little bit on the front-end as I chose to priortize the backend. In retrospect, I could've easily made it look more aesthetically appealing. That is the one thing I would like to improve on in a future update. Another thing, I would like to implement on the front-end is to allow some html tags inside of the post contents to allow for posting links and other media.
Please note that the backend of the app is hosted for free on Heroku.com which may lead to slow response times