Project: Mycelium

Mycelium is a desktop application aimed at helping freelance web developers manage clients and projects from multiple online sources like Upstack, Fiverr, and Toptal. All interactions with Mycelium are done through text commands or HotKeys, enabling one to efficiently manipulate data while availing oneself to the convenience of viewing, offered by the Graphical User Interface (GUI) created with JavaFX. The application is written in Java.

Summary of Contributions

My overall code contributions can be seen here.

Enhancements implemented

I contributed to two main components of the project - fuzzy search, and Project CRUD.

  1. Fuzzy search is a feature which allows users to search for something via a partial match, similar to file searching capabilities in most IDEs. I implemented the main algorithm used, and helped to hook it up to the UI.
  2. A core feature of Mycelium is to manage projects, which thus requires code for defining and manipulating a project. I implemented the Project model, and was responsible for the end-to-end CRUD functionalities of projects, including its integration into the current app’s Model, serialization into JSON, and other abstractions needed. I also implemented the command and functionality for updating projects.

Testing

I have contributed unit and integration tests for most aspects of the application except the GUI. These include tests for:

  • Project CRUD
  • Commands and command parsers
  • Fuzzy search algorithm
  • JSON serialization

Contributions to the UG

I covered these sections for the UG:

I also wrote most of the frontmatter.

Contributions to the DG

I wrote the section explaining how fuzzy search is implemented. I also wrote the instructions for manual testing as well as most of the frontmatter.

Code reviews

I have provided non-trivial code reviews (beyond just a LGTM) for these PRs: #62, #75, #99, #100, #120, #139, #141, and #175.