Ming-Tian’s Portfolio
Overview
AthletiCLI is your all-in-one solution to track, analyse, and optimize your athletic performance. Designed for the committed athlete, this command-line interface (CLI) tool not only keeps tabs on your physical activities but also covers dietary habits, sleep metrics, and more.
Summary of Contributions
Given below are my contributions to the project.
- Code contributed: RepoSense link
- Architecture: Designed the overall software architecture of AthletiCLI.
-
Features:
-
Entry: Designed and implemented the
AthletiCLI
class as the entry component of the program. -
UI: Designed and implemented the
Ui
class which provides the basic interactive functions. -
Commands: Designed and implemented the
Command
abstract class as the prototype of any other commands. Designed and implemented theByeCommand
, theFindCommand
, theHelpCommand
, and theSaveCommand
. -
Data: Designed and implemented the
Data
class which serves as the core component of data processing. -
Retrieval of Entries: Designed and implemented the
Findable
interface which is an abstraction to lists whose entries can be retrieved with a keyword. -
Goals: Designed and implemented the
Goal
abstract class in which the basic attributes (e.g., time span) and methods of a goal. -
File Storage: Designed and implemented the
Storage
class and theStorableList
abstract class. The former provides underlying file reading and writing functions, and the latter is an abstraction to lists which can be converted into a stream to be used for file reading and writing. -
Exception Handling: Designed and implemented the
AthletiCLI
class and some exception wrappers.
-
Entry: Designed and implemented the
-
Project management:
- Develops the project iteratively and incrementally.
- Manages our project using GitHub mechanisms: milestones, releases, issues, PRs, etc.
- Strictly adheres to the schedule.
- Strictly follows our Git conventions.
- Strictly follows the forking workflow.
-
Documentation:
- Integrated a Jekyll theme (Alembic) to the project website.
- Integrated a Jekyll plugin (Jemoji) to the project website.
-
User Guide:
- Added instructions on miscellaneous commands.
-
Developer Guide:
- Contributed to the sections of design and implementation.
- Added sequence diagrams for
help add-diet
andsave
. - Checked and unified the format of the DG.
-
Community:
- Reviewed PRs: tP comments dashboard
- Contributed to forum discussions: Forum activities dashboard
- Reported bugs and suggestions for other teams in the class: