I realized this coding project as part of a 3-months Coding Bootcamp at Ironhack and within the last out of three total project weeks. Together with my team partner Lisa Hilterhaus, we chose to tackle a problem that we know from our own everyday life and which has to do with an overload of groups and notifications in our messenger apps.
Say goodbye to hundreds of different group chats and exploding messages and discussions. See and plan all your events in one place with your friends and decide on details on a democratic basis or even plan a private poll for deciding on a gift for the host.
The main requirements for this delivery were to have a SPA frontend built with React and a REST API backend built with ExpressJS, MongoDB and Mongoose, so that users are able to perform all CRUD actions on the different data models. JSON Web Token technology is used to authenticate the user and protect the API. As a bonus, we used Google's Material UI to get familiar with using component libraries.
After a quick brainstorming, a prioritized list of envisaged app features, and some roughly sketched wireframes, we started building the backend of the application: In the first place, we established all data models including their dependencies in the form of referencing and embedding documents. In the next Step, we implemented the GET and POST routes and tested our API with Postman: At this point, we accomplished full functionality of the main CRUD operations based on user authentification, so we could start building the components for the features in the frontend.
One of the biggest challenges during this project was a highly interdependent data model system, that needed to be updated and tested with every added feature.
Also, I found that using a component library seemed not to be the perfect choice in this case: Having in mind a very exact idea of how the app should look, it felt like changing the predefined component properties produced more work than if we had built and styled the components from scratch.
Obviously, having worked on this project in a strongly limited timeframe, besides the listed features, there is room left for improvements concerning the user experience. Full responsiveness is a must. Microinteractions can make the experience more dynamic and fun. And last but not least, the concept is dedicated to be developed as a native application with extra functionalities for mobile usage, such as notifications and integration with other social media platforms.
*The application has been designed for mobile devices, so in case you are naviagting on a desktop, please set your browser to a mobile screen format