This portfolio page highlights some of my contributions to Calgo - a Software Engineering project developed in my second year of undergraduate studies in the National University of Singapore.
We are 5 Year 2 Computer Science undergraduates reading CS2103T: Software Engineering.
Calgo is an all-in-one personal meal tracking assistant which seeks to encourage a healthy lifestyle among its users. It allows users to not only have a convenient nutritional record of all their favourite food entries, but also track, monitor, and plan their food consumption. Moreover, the team has come up with a plethora of user-centric features to make Calgo well-suited to provide users with both convenience and utility.
My team was tasked with morphing an existing Address Book Level 3 (AB3) project into a new product via Brownfield software development. We were therefore required to use the existing AB3 project as Calgo’s project foundation, to create a desktop application supporting the Command Line Interface. This was to target users who prefer typing but also enjoy the benefits of a Graphical User Interface. With all of us being food lovers and realising a greater societal need for healthy eating, Calgo was born.
-
Major enhancement: I implemented the generation of useful statistics and key insights via the
report
command.-
What it does: The feature provides the user with a statistical summary of the food he/she has consumed on a given day. It also generates personalised insights on how the user can improve his/her eating habits and whether his/her favourite food item should continue to be part of the diet.
-
Justification: The feature improves Calgo significantly because a user can now go beyond just tracking his/her daily meal consumption. The user can now obtain insights on how to improve their eating habits and find out the food that contributes the most to their daily calorie count. They also no longer have to spend lots of time calculating the nutritional content they consumed in a day because the statistics section does that for them instantly. This makes Calgo much more than a meal tracker. It helps the user build a healthy lifestyle through eating.
-
Highlights: This enhancement requires an in-depth understanding of the Logic and Model components' architecture and a good understanding of String formatting. It also makes use of a sophisticated sorting mechanism to decide what the favourite food of the user is in the past week.
-
-
Major enhancement: I also implemented the
goal
command.-
What it does: The feature helps the user to set a daily calorie goal. This goal is also reflected in Calgo’s GUI, so that the user is always reminded of how many calories he/she is left with whenever they consume food.
-
Justification: Our target user is health-conscious and wants to build a healthy lifestyle. As that is a vague goal, it often is hard to achieve. That is why the
goal
command is created, to help the user set clear objectives for each day and chunk their big long-term goal of eating healthily into smaller daily goals. This allows them to see noticeable progress too and is motivating. The goal is also used to generate personalised insights in the abovementionedreport
command. -
Highlights: For this enhancement, I worked on the front-end, back-end logic, storage of the goal and unit testing as well. This required a deep understanding of all aspects of the project.
-
-
Minor enhancement: I helped in the redesigning of the GUI by adding the Goal Displays, Remaining Calorie Count Display, creating labels and helping Janice with the graph feature.
-
Code contributed: You can view my functional code and test code contributions to Calgo here.
-
Other contributions:
-
Project management:
-
As the in-charge of Deadlines and Deliverables, I ensured the team was on task and was putting in consistent effort. I also managed all releases
v1.1
-v1.4
(4 releases) on GitHub. 1. -
I maintained the team’s GitHub issue tracker and set up project dashboards and ensured everybody was assigned at least one user story to work on. Furthermore, the user stories were split into multiple milestones to ensure we worked incrementally. 2.
-
Contributed to product ideation, brainstorming key features and ensuring that everyone has equal responsibilities.
-
-
Team Documentation:
-
Wrote the sections for
clear
,report
andgoal
commands in Calgo’s User Guide. #161, #169, #171, #288. -
Wrote sections for Generating statistics and insights, setting daily calorie goals for Developer Guide. #161, #292, #298.
-
Vetted through User Guide and Developer Guide. #307.
-
Refined Calgo’s team pages to be more user-centric (especially README.adoc). #133, #161, #242, #277, #281, #283, #292, #298,
-
-
Beyond the team:
-
Given below are sections I contributed to the User Guide. They showcase my ability to write documentation targeting end-users. |
Given below are sections I contributed to the Developer Guide. They showcase my ability to write technical documentation and the technical depth of my contributions to the project. |