Project: TAPro
TAPro is a Contact Book application that is made for Computer Science tutors for managing their students contact and attendance details.
Given below are my contributions to the project.
New Feature: Added the ability for syntax highlighting of messages in the result message panel. (#98, #122)
- What it does: Allows the user to visually see more easily various keywords in the result message.
- Justification: This feature improves the efficiency of the user significantly, as it improves readability of the text in the result message panel, thus saving time. Moreover, as interacting with the result message panel is the main method a user knows whether a command is successful or unsuccessful, it can greatly improve a user's efficiency.
- Highlights: This feature is extensible and can be added on to future text features in the UI. Moreover, the syntax highlighting can be customized further without modifying the existing code significantly.
- Credits: The idea of syntax highlighting came from the syntax highlighting of common code editors and integrated development environments.
New Feature: Improved the autocomplete feature that was initially added by Xiaoyun. (#131, #152, #225, #278)
- What it does: Added circular TAB scrolling for autocomplete. Also added autocomplete for the rest of the fields, except for week number.
- Justification: By improving autocomplete, it improves the efficiency of users, and makes our autocomplete feature more complete.
- Highlights: Autocomplete works with all commands, and most parameters, and works in an extensible way. It is also optimized for performance through caching and lazy evaluation. It uses a new package that manages Tries with attributes and notifying and updating changes from the data using an observer-like design pattern.
- Credits: The idea of autocompletion came from how many common command terminals had autocomplete as a feature, and I wanted to replicate its behaviour in TAPro.
Code contributed: RepoSense link
Project management:
- Managed releases
v1.2
, v1.2b
, v1.3
, v1.3b
. v1.4
on GitHub
Enhancements to existing features:
- Improved the text wrapping in the result message panel, which improves the efficiency in which the user interacts with our interface, as no more scrolling is required to view the full result message. (#98)
- Improved the help window, which allowed for quick reference to commands. (#41, #124, #136)
- Added helper classes for message usage, which greatly improved consistency between different messages. (/#35, #61)
Documentation:
- User Guide:
- Improved the formatting for the user guide (#134, #262, #291)
- Various fixes to documentation (#227, #229)
- Updated the documentation for autocomplete (#261)
- Various other documentation improvements (#279, #280, #281)
- Developer Guide:
- Improved the formatting of the developer guide (#239)
- Added the implementation and diagrams for autocomplete (#300)
- Added the design decisions (#285)
- Added the planned enhancements (#295)
- Miscellaneous:
- Added semi-bold font
- Added custom question and command format callouts
- Added custom content pages (#325)
- Integrated Nunjucks variables and macros to the project (#239, #291)
Community:
- PRs reviewed (with non-trivial review comments): #9, #21, #52, #53, #62, #71, #82, #112, #130, #232, #258, #264, #270, #271, #286, #289
- Contributed to forum discussions (examples: #122, #242)
- Reported bugs and suggestions for other teams in the class (examples: PE-D)
Tools:
- Integrated MarkBind as a dev-dependency to the project (#80)