From 0d74f82866adbae762707aae1cb9bfe8095c98b4 Mon Sep 17 00:00:00 2001 From: nkotaa Date: Mon, 15 Apr 2024 00:35:35 +0800 Subject: [PATCH 1/2] nkotaa.md: Update PPP --- docs/team/nkotaa.md | 101 ++++++++++++++++++-------------------------- 1 file changed, 41 insertions(+), 60 deletions(-) diff --git a/docs/team/nkotaa.md b/docs/team/nkotaa.md index 5ed98d44b8..738e0abd59 100644 --- a/docs/team/nkotaa.md +++ b/docs/team/nkotaa.md @@ -2,66 +2,47 @@ ## Project: BinBash -BinBash is a CLI-based **Inventory Management System** that is targeted at small retail business owners. -BinBash aims to make the inventory management process streamlined, error-free and highly efficient, through its -extensive suite of inventory management features. -BinBash also enables users to gain valuable insights into their inventory, through comprehensive profit reporting -features which facilitate efficient sales and trends analysis. +BinBash is an Inventory Management System targeted at small retail business owners. +Users interact with it through a CLI. It is written in Java, and has around 4k (functional) LoC. Given below are my contributions to the project. -### Summary of Contributions - -#### Code contributed - -[Summary](https://nus-cs2113-ay2324s2.github.io/tp-dashboard/?search=nkotaa&breakdown=true) - -**UI**: Implemented text interface to read user inputs and print program outputs - -**Search feature**: Added the ability to search for an item through any number of item-specific fields, such as name, description, quantity, sale price. -- For fields holding numerical values, extended feature to allow searching by range. -- Furthered usefulness by allowing for filtering through number of desired results. -- Implemented using a `SearchAssistant` class to be shared using other features such as Update. - -**CommandOptionAdder**: Added the common utility class for parsers to get and add options and option descriptions. -- Increased maintainability and extensibility for new command parsers. -- Uniformly adopted across all command parsers. - -**Command Parsers**: Wrote Delete and Search command parsers. - -#### Enhancemennts Implemented - -**Use of JLine library**: Identified and implemented the use of an external library to greatly augment command based user interface, providing features such as -- Automatic command suggestions -- Dynamically presented command and option descriptions -- Command completion to nearest match or cycle through matches on `tab` key -- Option suggestions to nearest match or cycle through matches on `tab` key - -**General refactoring**: Heavily refactored parsers and exception classes -- Refined Apache commons library implementation by refactoring command parsers into separate classes. -- Extracted common methods for parsing values from sub-parsers into `Parser` class, allowing for more rigorous error handling. -- Unified all parser related exceptions into a single class, maintaining expressiveness of exception messages with the use of 3rd party library exceptions. - -#### Contributions to Documentation - -**Implemented skeleton UG & DG**: Shared a first draft of the user guide and skeleton draft of the developer guide for contributors to start working on. - -**UG: Updated section for search feature** - -**DG: Added sequence diagram for search feature** - -#### Review & Mentoring Contributions - -**Reviewed major changes to code base** -- [Migration to Commons CLI parser library](https://github.com/AY2324S2-CS2113T-T09-2/tp/pull/108#pullrequestreview-1962307487) -- [Changes to item](https://github.com/AY2324S2-CS2113T-T09-2/tp/pull/97)[ and classes](https://github.com/AY2324S2-CS2113T-T09-2/tp/pull/126#pullrequestreview-1968282135) -- [Implementation of update and notification features](https://github.com/AY2324S2-CS2113T-T09-2/tp/pull/139#pullrequestreview-1970164721) - -**Suggested code improvements to team members** -- Provided idea for maintaining a sorted item index list in implementation of List feature. -- Suggested refactors to Update feature saving ~80 LOC. -- Recommended the approach of parsing values by delimiters in load/save Storage feature. - -#### Contributions Beyond Project Team - -**Shared tip in forums**: Shared code to get course conforming formatting for PlantUML Class Diagrams. +- **New Feature**: Added the ability to search through an inventory. [#127](https://github.com/AY2324S2-CS2113T-T09-2/tp/pull/127) + - What it does: Allows the user to search for an item based on any number of fields such as name, description, quantity, cost price etc. + - Justification: This feature is a fundamental requirement of any inventory management system as users would want to search for items, such as when they are trying to find soon to expire items. + - Highlights: Single responsibility principle was applied to make use of a helper class that contained methods for searching per field. Furthermore as the command that takes the most number of possible option arguments, the corresponding command parser had to be made much more robust. + - Credits: Inspiration was taken from [@nur-haziq](https://github.com/nur-haziq) to allow numerical based fields to take a range and not just a single value. + +- **New Feature**: Identified and implemented an external library to augment the text based UI beyond standard Java console. [#161](https://github.com/AY2324S2-CS2113T-T09-2/tp/pull/161) + - What it does: present dynamic command and option descriptions, command completion and suggestion on `tab` key, cycling through suggestions on `tab` key + - Justification: Our application should be faster than a corresponding GUI for fast typists. + - Highlights: To avoid redeclaring options and descriptions, I extended the abstraction class called by sub-parsers to store these values. This was done while minimising coupling and enhancing maintainability of each class. + - Credits: [JLine3](https://github.com/jline/jline3) + +- **Code contributed**: [RepoSense](https://nus-cs2113-ay2324s2.github.io/tp-dashboard/?search=nkotaa&breakdown=true) + +- **Enhancements**: + - Revamped Parser implementation, increasing extensibility with the help of a utility class. This approach went on to be uniformly adopted across all command parsers. ([#106](https://github.com/AY2324S2-CS2113T-T09-2/tp/pull/106), [#110](https://github.com/AY2324S2-CS2113T-T09-2/tp/pull/110)) + - Significantly strengthened program input validation and error handling, resolving issues identified during PE-D as well as others found. ([#256](https://github.com/AY2324S2-CS2113T-T09-2/tp/pull/256), [#275](https://github.com/AY2324S2-CS2113T-T09-2/tp/pull/275)) + - General refactoring of code base to increase expressiveness of code. [#79](https://github.com/AY2324S2-CS2113T-T09-2/tp/pull/79) [#267](https://github.com/AY2324S2-CS2113T-T09-2/tp/pull/267) + +- **Documentation**: + - User Guide + - Updated section for `search` feature [#150](https://github.com/AY2324S2-CS2113T-T09-2/tp/pull/150) + - Developer Guide + - Added component details and class diagram for `Ui` [#122](https://github.com/AY2324S2-CS2113T-T09-2/tp/pull/122) + - Added details and sequence diagrams for `search` feature [#169](https://github.com/AY2324S2-CS2113T-T09-2/tp/pull/169) + +- **Project Management**: + - Shared a first draft of the user guide and skeleton draft of the developer guide for contributors to start working on. ([#58](https://github.com/AY2324S2-CS2113T-T09-2/tp/pull/58), [#115](https://github.com/AY2324S2-CS2113T-T09-2/tp/pull/115)) + - Triaged more than 40 out of 50 PE-D bugs, closing duplicates, giving appropriate labels and assigning them to respective members. + +- **Team Contributions** + - Reviewed major changes to code base: [Migration to Commons CLI parser library](https://github.com/AY2324S2-CS2113T-T09-2/tp/pull/108#pullrequestreview-1962307487), [Changes to item](https://github.com/AY2324S2-CS2113T-T09-2/tp/pull/97#pullrequestreview-1957041235) and [classes](https://github.com/AY2324S2-CS2113T-T09-2/tp/pull/126#pullrequestreview-1968282135), [Implementation of update and notification features](https://github.com/AY2324S2-CS2113T-T09-2/tp/pull/139#pullrequestreview-1970164721) + - Contributed to implementation ideas for other features + - Provided idea to [@PureUsagi](https://github.com/PureUsagi) for maintaining a sorted item index list in implementation of `list` feature. + - Discussed refactors to `update` feature with [@imanamirshah](https://github.com/imanamirshah) saving ~80 LoC. + - Suggested refinements to [#266](https://github.com/AY2324S2-CS2113T-T09-2/tp/pull/266) + +- **Community Contributions** + - Shared tip in forums to get course conforming formatting for PlantUML Class Diagrams. [Forum link](https://github.com/nus-cs2113-AY2324S2/forum/issues/35) From 7299671594dfa5cf0dc997138c14de3107e3a227 Mon Sep 17 00:00:00 2001 From: nkotaa Date: Mon, 15 Apr 2024 00:52:21 +0800 Subject: [PATCH 2/2] nkotaa.md: fix formatting --- docs/team/nkotaa.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/team/nkotaa.md b/docs/team/nkotaa.md index 738e0abd59..048d15c1d0 100644 --- a/docs/team/nkotaa.md +++ b/docs/team/nkotaa.md @@ -7,14 +7,14 @@ Users interact with it through a CLI. It is written in Java, and has around 4k ( Given below are my contributions to the project. -- **New Feature**: Added the ability to search through an inventory. [#127](https://github.com/AY2324S2-CS2113T-T09-2/tp/pull/127) +- **New Feature**: Added the ability to search through an inventory. ([#127](https://github.com/AY2324S2-CS2113T-T09-2/tp/pull/127)) - What it does: Allows the user to search for an item based on any number of fields such as name, description, quantity, cost price etc. - Justification: This feature is a fundamental requirement of any inventory management system as users would want to search for items, such as when they are trying to find soon to expire items. - Highlights: Single responsibility principle was applied to make use of a helper class that contained methods for searching per field. Furthermore as the command that takes the most number of possible option arguments, the corresponding command parser had to be made much more robust. - Credits: Inspiration was taken from [@nur-haziq](https://github.com/nur-haziq) to allow numerical based fields to take a range and not just a single value. -- **New Feature**: Identified and implemented an external library to augment the text based UI beyond standard Java console. [#161](https://github.com/AY2324S2-CS2113T-T09-2/tp/pull/161) - - What it does: present dynamic command and option descriptions, command completion and suggestion on `tab` key, cycling through suggestions on `tab` key +- **New Feature**: Identified and implemented an external library to augment the text based UI beyond standard Java console. ([#161](https://github.com/AY2324S2-CS2113T-T09-2/tp/pull/161)) + - What it does: present dynamic command and option descriptions; enable command completion and cycling through suggestion on `tab` key. - Justification: Our application should be faster than a corresponding GUI for fast typists. - Highlights: To avoid redeclaring options and descriptions, I extended the abstraction class called by sub-parsers to store these values. This was done while minimising coupling and enhancing maintainability of each class. - Credits: [JLine3](https://github.com/jline/jline3) @@ -24,7 +24,7 @@ Given below are my contributions to the project. - **Enhancements**: - Revamped Parser implementation, increasing extensibility with the help of a utility class. This approach went on to be uniformly adopted across all command parsers. ([#106](https://github.com/AY2324S2-CS2113T-T09-2/tp/pull/106), [#110](https://github.com/AY2324S2-CS2113T-T09-2/tp/pull/110)) - Significantly strengthened program input validation and error handling, resolving issues identified during PE-D as well as others found. ([#256](https://github.com/AY2324S2-CS2113T-T09-2/tp/pull/256), [#275](https://github.com/AY2324S2-CS2113T-T09-2/tp/pull/275)) - - General refactoring of code base to increase expressiveness of code. [#79](https://github.com/AY2324S2-CS2113T-T09-2/tp/pull/79) [#267](https://github.com/AY2324S2-CS2113T-T09-2/tp/pull/267) + - General refactoring of code base to increase expressiveness of code. ([#79](https://github.com/AY2324S2-CS2113T-T09-2/tp/pull/79), [#267](https://github.com/AY2324S2-CS2113T-T09-2/tp/pull/267)) - **Documentation**: - User Guide @@ -38,7 +38,7 @@ Given below are my contributions to the project. - Triaged more than 40 out of 50 PE-D bugs, closing duplicates, giving appropriate labels and assigning them to respective members. - **Team Contributions** - - Reviewed major changes to code base: [Migration to Commons CLI parser library](https://github.com/AY2324S2-CS2113T-T09-2/tp/pull/108#pullrequestreview-1962307487), [Changes to item](https://github.com/AY2324S2-CS2113T-T09-2/tp/pull/97#pullrequestreview-1957041235) and [classes](https://github.com/AY2324S2-CS2113T-T09-2/tp/pull/126#pullrequestreview-1968282135), [Implementation of update and notification features](https://github.com/AY2324S2-CS2113T-T09-2/tp/pull/139#pullrequestreview-1970164721) + - Reviewed major PRs: [Migration to Commons CLI parser library](https://github.com/AY2324S2-CS2113T-T09-2/tp/pull/108#pullrequestreview-1962307487), [Changes to item](https://github.com/AY2324S2-CS2113T-T09-2/tp/pull/97#pullrequestreview-1957041235) and [classes](https://github.com/AY2324S2-CS2113T-T09-2/tp/pull/126#pullrequestreview-1968282135), [Implementation of update and notification features](https://github.com/AY2324S2-CS2113T-T09-2/tp/pull/139#pullrequestreview-1970164721) - Contributed to implementation ideas for other features - Provided idea to [@PureUsagi](https://github.com/PureUsagi) for maintaining a sorted item index list in implementation of `list` feature. - Discussed refactors to `update` feature with [@imanamirshah](https://github.com/imanamirshah) saving ~80 LoC.