Ong Zong Xian - Project Portfolio Page
Overview
SmartHomeBot is a desktop application that consolidates all home appliance’s control into a centralized system via a Command Line Interface (CLI). SmartHomeBot is our team project submission for CS2113: Software Engineering & Object Oriented Programming Module.
Summary of Contributions
Code contributed:
Below is the link to my code contribution for this project:
- Code Contribution: RepoSense
Main Function implemented:
I am mainly responsible for the Parser class and some Commands the following commands for SmartHomeBot.
Logic
Parser
: Responsible for ensuring that all User input are parser correctly as well as acting as the first filter to detect any error in the user input to prevent further error in the program.CreateCommand
: Command to add new Location to SmartHomeBot.RemoveCommand
: Command to remove specified Location from SmartHomeBot.AddCommand
: Command to add a new Appliance to a certain location in SmartHomeBot.DeleteCommand
: Command to delete specified Appliance from SmartHomeBot.
Enhancements implemented:
Implemented the Parser
to ensure that User entered the correct format for Commands into SmartHomeBot.
Functions include:
- Ensuring that User enter the correct format as stated in User Guide.
- Ensuring that User does not give empty parameter or illegal parameter if the command requires it.
- Detecting any Illegal character such as
spaces
or|
or/
which might ensure in error of the CLI program. - Implemented
StringUtils.replaceOnce
to prevent special character from ending the program, as Java String Library .replaceFirst only supports regex.- Implementation of Parser involved frequent updates from v1.0 to v2.1 as any changes to the implementation and functions of SmartHomeBot normally involve needing to parse the command differently to prevent bugs and error.
Implemented the CreateCommand
to make sure User does not create duplicate Location of the same name with existing Locations
as well as Appliance name.
Implemented the RemoveCommand
to make sure User does not remove a Location that does not exist.
As well as deleting appliances in the Location that is being removed as well.
Implemented the AddCommand
to make sure User add an Appliance with the type available specified in the UserGuide.
Furthermore, making sure it is added to a Location that is available in SmartHomeBot with the name specified not being a duplicate.
Implemented the DeleteCommand
to make sure User does not delete an Appliance that does not exist.
Minor enhancement: Wrote the logger setup to allow teammates to perform logging in their respective sections.
Contribution to User Guide:
- I have written the documentation explaining on how to use the Commands available as well as the Format to ensure standardisation.
- I am also responsible for updating table for Command Summary in UserGuide and making sure the content in UserGuide are in order.
Contribution to Developer Guide:
- Added UML Sequence Diagrams for Parser, CreateCommand and RemoveCommand.
- Wrote documentation for Parser, CreateCommand and RemoveCommand.
Contributions to team-based tasks:
- Set up Team repo’s issue tracker and milestones for
v1.0
,v2.0
andv2.1
. - Some examples of providing feedback to team member’s pull requests: e.g #208, #210
- In addition, meets up regularly with my team to update and discuss the developments of SmartHomeBot through Zoom, and our group personal Telegram group.
Contributions beyond the project team:
Provided feedback to other CS2113 project teams on the bug encounterd during the semester. Links below are some feedback to other project teams.