Roomniverse

In ICS 314, the final project was to create and develop a functioning web application that utilizes MongoDB collections. This assignment was exciting for me as this was the programming project developed as a group. We used our knowledge gained over the course in GitHub to create an organization and develop software as a team. This new experience brought many challenges, but the group I was in had a diverse programming background, so where one person struggled, others excelled and vice versa. My group’s organization page can be found at https://roomniverse.github.io/ and our deployed project can be viewed at https://roomniverse.xyz.

My Contributions

The components I created in the project were the Main Hub, the Search feature on the navigation bar, and a way to add, edit, and manage posts in a collection stored in MongoDB. The most challenging part was the search component, as the component was a documented function in Semantic-UI. However, the component uses a functional approach as react hooks have undefined behavior in class-based functions with ES6. This caused some problems when creating the template for the component, which led to more confusion when retrieving data from MongoDB. Semantic-UI has great features; however, some of the more advanced components were created to be templates and proof of concepts for advanced developers to expand upon and create their own component based on their specific design implementation.

One area I struggled with was with the MongoDB collections. In the beginning, I struggled with retrieving account information from Meteor. This led to more complications within the group, so we decided to create a Mongo collection for each user. While I struggled with MongoDB, other teammates excelled in database creation and maintenance. Furthermore, where others found problems in component redirection and rendering, I found this as one of my strong points. In the end, everyone in my group could bring their own expertise to help people struggling in that area, and find quick help with areas that they may have found particularly complex.

Conclusion

Overall, the experience was invaluable as it enriched everyone’s development capabilities. Working in a group brings its own challenges, but it also has many benefits. Everyone in the group advanced their knowledge of JavaScript, React, and MongoDB, and developed better time management and communication skills.