forked from nus-cs2103-AY1819S1/addressbook-level4
-
Notifications
You must be signed in to change notification settings - Fork 6
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
3 changed files
with
96 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,92 @@ | ||
= Jeremy Choo - Project Portfolio | ||
:site-section: AboutUs | ||
:imagesDir: ../images | ||
:stylesDir: ../stylesheets | ||
|
||
== PROJECT: OASIS | ||
|
||
--- | ||
|
||
== Overview | ||
|
||
Office Assistance Specialized Integration System (OASIS) is an all-in-one app for companies to manage employee's leave applications, projects and user accounts for each employee. OASIS uses a CLI interface. | ||
|
||
This project portfolio summarizes my contributions to the project in terms of coding, documentation for both develoeprs and end-users, as well as testing. | ||
|
||
== Summary of contributions | ||
|
||
The following section shows my major code contributions to OASIS. | ||
|
||
=== Major enhancement: User accounts | ||
|
||
* *Major enhancement*: Added *full fledged functionality for user accounts.* | ||
** What it does: Allows each employee to identify themselves with a username and password, similar to most modern systems. It provides: | ||
*** *Username and Password* implementation for each employee. | ||
*** Ability to *login and logout* into each employee's accounts. | ||
*** A way to *secure the employee's account* through the changing of passwords. | ||
*** Complete modern-day security using *salted and hashed passwords* with 256-bit salts and SHA256 hashing algorithm. | ||
** Justification: It is critcial to ensure the privacy of employees to ensure that their private information remains secure and only viewable by specific people. Thus, this feature allows the use of user accounts to verify that there is appropriate authorization, ensuring that employee data data isn't publicly viewable. | ||
** Highlights: The password command requires large changes to ensure that passwords input by the user aren't viewable through the history command. I implemented a feature for `LogicManager` to have a List of interceptors, which are a `FunctionalInterface` that allows the processing of a Command. This allows the password changing command to work without adding excessive coupling between `Command` and `LogicManager`. Security for each user was essental to ensure that a user cannot read commands entered by another user. This was implemented by clearing user-specific data after logout. | ||
|
||
=== Minor enhancement: | ||
The following section shows all the other minor enhancements done for the project that are not part of my major enhancement above. | ||
|
||
* *Minor enhancements in code* | ||
** Allow for easier searching of employees by updated the find command to support `\*` and `\_` as wildcards. `*` as a generic wildcards for any number of characters (including 0), while `_` acts as a generic wildcard for a single character. | ||
** Converted the parser to use `-` instead of `/` to read arguments, similar to the command line in modern day operating systems. | ||
|
||
* *Code contributed*: [https://github.com[Functional code]] [https://github.com[Test code]] _{give links to collated code files}_ | ||
[NOTE] | ||
I don't understand what to do here. Do I put links to which files I changed? The PRs? | ||
|
||
* *Other contributions*: | ||
|
||
** Project management: | ||
*** Set up the project on GitHub, including the creation of the organization, labels, auto-publishing of docs, and the https://github.com/nus-cs2103-AY1819S1/addressbook-level4/pull/86[team PR] | ||
*** Managed releases `v1.0` - `v1.4` (5 releases) on GitHub | ||
*** Set up RepoSense for the group, allowing for code to be properly attributed https://github.com/CS2103-AY1819S1-F10-1/main/pull/35[#35] | ||
** Enhancements to existing features: | ||
//*** Wrote additional tests for existing features to increase coverage from 88% to 92% (Pull requests https://github.com[#36], https://github.com[#38]) | ||
[NOTE] | ||
I have PRs for the minor features stated above. Do I put those here? | ||
|
||
** Documentation: | ||
*** Provided updates to the User Guide: https://github.com/CS2103-AY1819S1-F10-1/main/pull/125[#125] | ||
*** Updated documentation based on errors I encountered and how to resolve it to help future contributors https://github.com/CS2103-AY1819S1-F10-1/main/pull/2[#2] | ||
|
||
** PR standards: | ||
*** All of my pull requests have referenced clearly to which issues they're attempt to address and have resulted in no loss of code coverage. Major examples: https://github.com/CS2103-AY1819S1-F10-1/main/pull/84[#84] https://github.com/CS2103-AY1819S1-F10-1/main/pull/106[#106] https://github.com/CS2103-AY1819S1-F10-1/main/pull/118[#118] https://github.com/CS2103-AY1819S1-F10-1/main/pull/119[#119] | ||
|
||
** Community: | ||
//*** PRs reviewed (with non-trivial review comments): https://github.com[#12], https://github.com[#32], https://github.com[#19], https://github.com[#42] | ||
*** Contributed to forum discussions (example: https://github.com/nus-cs2103-AY1819S1/forum/issues/74#issuecomment-428847858[1]) | ||
*** Reported bugs and suggestions for other teams in the class (examples: https://github.com/CS2103-AY1819S1-F10-2/main/issues/108[1] https://github.com/CS2103-AY1819S1-F10-2/main/issues/173[2] https://github.com/CS2103-AY1819S1-F10-2/main/issues/174[3]) | ||
|
||
** Tools: | ||
*** Integrated Travis CI, AppVeyor and Coveralls to the team repo | ||
|
||
[NOTE] | ||
Ordering of bullet points in Other contributions? | ||
|
||
== Contributions to the User Guide | ||
|
||
|=== | ||
|_The following sections represent my contributions to the User Guide. They demonstrate my ability to write end-user documentation._ | ||
|=== | ||
|
||
[NOTE] | ||
User Guide should include the specific commands that I implemented | ||
|
||
include::../UserGuide.adoc[tag=quickstart-begin] | ||
|
||
//include::../UserGuide.adoc[tag=dataencryption] | ||
|
||
== Contributions to the Developer Guide | ||
|
||
|=== | ||
|_The next section serves to showcase my additions to the Developer Guide. They act as an exhibit to show my capability in writing good technical documentation, along with the technical depth of my contributions._ | ||
|=== | ||
|
||
include::../DeveloperGuide.adoc[tag=login] | ||
|
||
// include::../DeveloperGuide.adoc[tag=da/taencryption] |