Chun Wei's Project Portfolio Page
Project: SoConnect
SoConnect is a desktop app for SoC students to manage contacts of Professors and Teaching Assistants, as well as to keep track of noteworthy events, optimized for use via a Command Line Interface (CLI) while still having the benefits of a Graphical User Interface (GUI). This project is part of the CS2103T team project requirements for AY2021/2022 Semester 1.
The non-exhaustive list given below are my contributions to the project. All features come with their respective unit tests.
- New Feature: Changed fields to
Contact
model (Previously known asPerson
).- What it does: allows the user to save details about the telegram handle and zoom meeting link of the saved contact, and allowing the user to omit certain details about the contact.
- Justification: Given that the users are mainly School of Computing (SoC) students in NUS, the product would be significantly more relevant if it allows students to save details like telegram handles and Zoom meeting links of their friends, professors and tutors. Telegram and Zoom are widely used applications in NUS. Also, since students may not be able to obtain every single detail about a contact they want to save, for example, many tutors do not share their addresses and phone numbers. By making certain fields optional, our product becomes more suitable for SoC students to use.
- Highlights: This enhancement affects how certain commands such as add or edit will work, since these commands do not accept optional fields, except for tags, in the original Address Book 3 implementation.
- New Feature: Added the calendar user interface.
- What it does: Allows the user to view their saved events in a clean visual calendar user interface. An added feature is that while the calendar is open, the calendar will automatically update itself if the user make changes to the list of events.
- Justification: This feature improves the product significantly because a user may find it difficult to plan their appointments by just looking at the list of events in the right event list panel.
- Highlights: This enhancement requires the understanding of a third-party GUI framework. In addition, the implementation of the auto-update for the calendar is non-trivial, since a poor implementation can introduce coupling and turn the code ugly.
- Credits: CalendarFX. Inspiration is from team projects from other teams in the past and present.
- New Feature: Sorting and displaying upcoming events
- What it does: Allows the user to sort their events based on start time and display events that are ongoing or occuring soon.
- Justification: Having an unsorted list of events will make it difficult for the user to find out what is their next activity for the day or the week.
- Highlights: This is more than just a simple sorting by date and time, since there is also a need to filter out old events. Furthermore, it can interfere with other commands that will alter the order of the list, such as
emark
.
-
Code contributed: RepoSense link
- Project management:
- Set up project dashboard and project milestones on GitHub.
- Oversaw the entire project as the team leader.
- Adopted the long-lived feature branch workflow in v1.2b and the feature branch workflow in v1.3 onwards, to improve efficiency of the team contributions while maintaining protection of the master branch.
- Documentation:
- User Guide:
- Developer Guide:
- Added implementation details of the calendar user interface and heavily edited the List Events feature.
- Updated the UI design section.
- Added use case 11 in #217.
- Community:
- Notable PRs reviewed (with non-trivial review comments): #147, #135, #94. See others here.
- Contributed ideas and code to improve code quality for undo/redo feature and bug fix: #219
- Contributed to forum discussions (examples: 1, 2)
- Reported bugs and suggestions for other teams in the class (examples: 1, 2)
- Tools:
- Integrated a third party framework (CalendarFX) to the project (#42)