tp

Zheng Xi’s - Project Portfolio Page

Overview

SecureNUS is a Command-Line-Interface (CLI) application that allows users to store sensitive credentials locally. Examples of such credentials include basic password, credit card details as well as CryptoWallet fields. Information submitted by users are encrypted to safeguard the interests of the user in the event the device is lost or hacked.


Summary of Contributions

[X] Code contributed

RepoSense link
***

[X] Features

1. Save Command - $save

All credentials submitted by users thus far will be written to the database. This function is automatically triggered when new secrets added, edited or deleted from the database.

Enter Command: $save
_____________________________________________________
Saving secrets to storage, please do not close application...
_____________________________________________________
_____________________________________________________
Save complete. All secrets saved into assets/database.txt.
If exporting to another device, save this file into the root directory's assets/database.txt before you start me again!
_____________________________________________________

2. Backend - Saving and Loading of user data

3. Logging Capabilities - Logging of appropriate user data to assist in debugging

——————————— Session began at: 2023-04-09T23:28:12.788915800Z ——————————————————————- Session began at: 2023-04-09T23:29:18.053986200Z ———————————–
    command by user:  new pass10
    fields:  idk.com,  c/,
    >>>>user cancelled operation

    command by user:  exit
    fields:
    ------------
    | ALERT !!!|
    ------------
    Program Crashed:  unexpected exception: null
    Time: 2023-04-09T23:47:28.668632600Z
        ...

Within the abstract method format, all relevant information are rearranged and formatted using static methods based on the context of the information.

    if (logArray[0].equals("start")) {
        return SecureNUSLogFormatter.startOfSessionLog(record);
    }



[X] Assertions

Added assertions to the code to better safeguard the program against unexpected inputs and lapses in programming logic

    assert this.storage != null;
    assert index >= 0;
    if (index >= storage.size()) {
        throw new ArrayIndexOutOfBoundsException();
    } 

[X] Contributions to Team Based Tasks

  1. Wrote the junit tests for various Backend Functionalities
  2. Authored the text-ui-tests to automate testing for the core functionalities implemented in the program
  3. Team PR reviewed [#48]

[X] Community