UHRepCompanion was the culmination of our final project for ICS 314: Software Engineering I, where teams were challenged to develop a web application based on specific prompts. My team and I were tasked with creating a web application designed to help University of Hawai’i students find workout partners with similar interests and schedules. The resulting application, aptly named UH StudyMate, allows students to connect and collaborate on their workouts.
Our development process followed Issue Driven Project Management (IDPM), often referred to as Agile Project Management. This approach involved regular group meetings, clear communication, task delegation, documentation, and a series of milestones to track our progress and ensure we met our project goals.
UHRepCompanion enables University of Hawai’i students to register using their UH email and create a profile featuring their name, major, a short bio, a profile picture, study interests, and their level of study experience. Optional fields for social media links are also available. Through the application, users can view upcoming workout sessions created by other students and connect with them. Additionally, users can search through profiles to find peers with similar study interests or academic levels. Essentially, UHRepCompanion functions as a social networking tool for students focused on physical collaboration at the RecCenter.
For the first milestone (M1), each team member was assigned tasks contributing to our initial project goals. My responsibilities included developing the Landing Page, Profile Page, and Edit Profile Page.
The Landing Page served as the application’s entry point. My focus was on creating a user-friendly and aesthetically pleasing interface for new users. This page included a brief description of UH StudyMate, along with login and registration options. Ensuring the functionality and professional appearance of this page was crucial, as it laid the foundation for the rest of the site.
For the Profile Page, I aimed to present user information in a clear, readable format. This page displayed the user’s name, major, bio, study interests, and profile picture. The Edit Profile Page allowed users to update their information, which was then saved to our MongoDB database. These initial tasks were foundational, allowing us to build and expand upon them in future milestones.
In the second milestone (M2), my focus shifted to refining and expanding our initial features.
I enhanced the events Page by adding more detailed descriptions and visual elements, such as images and icons, to better illustrate the application’s purpose and functionality. This improvement aimed to make the page more engaging and informative.
One of my major tasks was implementing profiles feature on the Profile Page. This feature allowed users to find their buddy. Users could click on specific dates to mark sessions, which helped them organize their activities.
The final milestone (M3) involved adding final touches and new features to ensure the application was fully functional and user-friendly.
I implemented functionality for users to include their social media links on their profiles. This involved updating the database to store these links and verifying the validity of the URLs. Icons representing each social media platform were added to the Profile Page, allowing other users to visit these links directly.
I also worked on ensuring profile pictures were dynamically resized to fit within a circular frame, regardless of their original dimensions. This change improved the visual consistency and professionalism of the profiles.
Additional tasks included refining the informational footer, linking the weekly calendar to users’ schedules, and improving accessibility to key features like the Events and Finder pages upon login. These enhancements ensured a polished and user-friendly experience for all users.
This project taught me valuable lessons about collaborative software development. Working within a team setting, I learned the importance of clear communication, effective time management, and thorough documentation. The Agile methodology we followed helped us systematically build upon our foundation, making it easier to identify and resolve issues as they arose. I also gained technical skills in web application deployment and learned how to acquire custom domains. Additionally, researching and implementing various features, such as the weekly calendar, expanded my knowledge and capabilities in web development. Overall, this project provided me with practical experience that mirrors real-world software engineering practices. It has prepared me for future endeavors and a career in software development.
If you would like to see the final results of this project, feel free to visit UH RepCpmpanion.
To better understand the inner workings of the application, please visit our GitHub.