Skip to the content.

Project Portfolio Page - Decodex

Overview

This is a project in accordance to the fulfilment of the Software Engineering & Object-Oriented Programming (CS2113T) module.

I am Tan Jia Le, one of the contributors for Decodex.

Project Name: Decodex

Decodex is a Command Line Interface (CLI) application for Capture-The-Flag (CTF) players to perform rapid encoding, decoding, encryption, decryption of data with ease and without any programming needed.

Summary of Contributions

Below are my contributions to the Decodex

Features/Functionalities

  1. Added the input command (Formally known as the data command):
    1. What it does: Allow the user to enter the data that they wish to execute the modules/recipes on.
    2. Related pull requests: #52, #112
    3. Underlying components that were implemented along with it: Data class (#32), DataManager class (#34, #46)
  2. Added the reset command:
    1. What it does: Allow the user to revert any changes done to the data that they first inputted.
    2. Related pull requests: #65
  3. Added the RotEncoder (Rotational Cipher) module:
    1. What it does: Allow the user to perform the rotational cipher on the current data.
    2. Related pull requests: #148
  4. Added the recipe select, recipe push, recipe pop, recipe reset commands:
    1. What they do: Allow the user to select a recipe and perform modifications to it.
    2. Related pull requests: #190, #192, #194, #196
  5. Added the help command:
    1. What it does: Allow the user to view the syntax and purpose of the commands.
    2. Related pull requests: #226

Code contributed: more than 2000 lines of code (Reposense)

Enhancements to Existing Features

  1. Wrote tests for RecipeManager class: #171
  2. Added capabilities for RecipeManager to make changes to a particular selected recipe: #171
  3. Decoupled Storage class from the RecipeManager class: #250
  4. Added naming restrictions to recipes using Regex: #206

Review/mentoring contributions

  1. Reviewed teammates’ PRs: 85 out of 187 PRs (Also ranked #2 on tP comments dashboard)
  2. Reported bugs/comments for other teams: (1, 2, 3, 4, 5)

User Guide

  1. Created all example screenshots using carbon and maintained them.
  2. Added documentation for input and reset command: #118
  3. Added list of supported modules: #243
  4. Added section on understanding the application’s prompt: #243

Developer Guide

  1. Updated AboutUs.md to point to respective PPP pages.
  2. Created most of the class and sequence diagrams using PlantUML: #229
  3. Added Acknowledgements and Setting Up the Project sections: #174
  4. Added implementation details for all recipe commands: #233, #322