Skip to the content.

Project Portfolio Page - Decodex

Overview

This is a student project for Software Engineering & Object-Oriented Programming (CS2113/T). And, I am Sim Tian Boon, one of the contributors of Decodex.

Project Name: Decodex

Decodex is a Command Line Interface (CLI) application for Capture-The-Flag (CTF) players to quickly transform data from one format to another easily and intuitively.

Summary of Contributions

Below are my contributions to the Decodex

Note that the PR links below are the more notable ones - easier to find.

Features/Functionalities

  1. Added Parser functionality to parse user inputs (For non-recipe commands) (#53, #72)
    • Functionality - Performs the parsing of user input to corresponding command.
    • Justification - Helps to parse user input so that Decodex can run the correct command that users expect.
  2. Added the ability to show current data (#274)
    • Feature - Shows the user the current data that they have. By default, this current data will be your original data if no modules has been run on it.
    • Justification - Allows user to keep track of the current data they are working on, and also credits to @alwinangys for the suggestion.
  3. Added Base64 Modules (Base64 Encoder and Decoder) (#35)
    • Feature - Allows users to use these modules to encode/decode using base64 formats.
    • Justification - This is one of the more common encoding formats that appear in CTFs.
  4. Added ability to load recipes from files on start up (#208)
    • Functionality - Performs the loading of saved recipe files upon run of Decodex.
    • Justification - Allows users to load previously saved recipes and provides convenience.
  5. Added ability to save recipe into file, and delete the recipe file (#208)
    • Functionality - Saves (Auto) the recipe into a file named recipeName.txt and stores it in the recipe/ directory. The auto-deletion of the recipe file happens when user deletes the recipe on Decodex.
    • Justification - Allows users to save recipes into file and delete without having to manually do it.

Enhancements to Existing Features

Documentation (Most classified under Others due to page limit)

Community