Ravikumar Nikhila - Project Portfolio Page

Overview

UniTracker is a one-stop university tracker designed and created to help NUS students keep track of all the resources needed for their modules. It also includes helpful features such as a CAP simulator and a task manager. The user can interact with it using a Command Line Interface (CLI). UniTracker was created with Java, and has about 7 kLOC.

Summary of Contributions

Code contributed

For the RepoSense report of my tP Code Dashboard - Click Here

Enhancements implemented

For our product, I have implemented the following:

  1. Main Menu: skeleton code for others to integrate their features in
  2. ModuleInfo Menu: skeleton code
  3. Storage methods for ModuleInfo:
    1. loadAllFiles() method: Loads all Files
    2. saveAllFiles() method: Saves all Files
    3. loadModuleInfoFile() method: Loads ModuleInfo files (if existing) from computer OR Creates new ModuleInfo files
    4. downloadModules() method: Loads all ModuleInfo files (if existing)
    5. modulesFileSaver() method: Stores all ModuleInfo data into files
  4. Features implemented under ModuleInfo Menu:
    1. addNewModule() method: Adds new Module
      1. checkIfModuleExists() method: Checks if module to be added already exists
      2. isAlphaNumeric() and moduleNameIsAlphaNumeric() methods: checks if module name is alphanumeric
    2. viewAModule() method (except printModuleTaskList() method)
    3. viewAllModules() method: Prints the list of Modules from modules ArrayList
    4. checkAndRemoveDelimiter(): Removes the “ ~~ “ restricted character.
    5. deleteModule() method: Deletes a module
      1. testDeleteModule(),
      2. readModuleNumberToBeDeleted()
      3. printDeletedModuleMessage()
    6. addReview() method: Adds a review to a module
      1. printAlreadyAddedReviewMessage(),
      2. readReview()
      3. printReviewAddedMessage()
    7. viewAllReviews() method: Prints all reviews for all modules
    8. deleteReview() method: Deletes a review of a selected module
      1. printDeletedReviewMessage()

Contributions to User Guide

For the user guide, I have included instructions on how to use the features I have implemented.
Here are my implementations and the links to the following sections of our User Guide:

  1. Add a Module
  2. View a Module
  3. View All Modules
  4. Delete a Module
  5. Add a Review
  6. View All Reviews
  7. Delete a Review
  8. To improve navigability: I included hyperlinks to content page and command summary for all sections.
  9. Vetting of user guide in general (Links of PRs given below in Contribution to team-based tasks)

Contributions to Developer Guide

For the developer guide, I have included instructions on how I implemented the features I was assigned.
Here are my implementations and the links to the following sections of our Developer Guide:

  1. Add a Module
  2. View a Module
  3. View All Modules
  4. Delete a Module
  5. Add a Review
  6. View All Reviews
  7. Delete a Review
  8. Instructions for manual testing

The following are the diagrams I have added:

Diagram
Figure 1 Add New Module (Click here for link to this section of DG)

Diagram
Figure 2 Add New Review (Click here for link to this section of DG)

Contributions to team-based tasks

For the team-based tasks, the following were the tasks I have carried out:

  1. Created and Updated the agenda for each week, and the schedule for the project with key deadlines in our shared document (Google Docs reference: Click here to view)
  2. Maintained the issue tracker: Assigning and resolving issues regularly
  3. Updated user/developer guides that are not specific to a feature: General proof-reading, updating table of contents, etc.
    1. PRs: #77 ,#163, #179, #197, #208, #323

Review/mentoring contributions

  1. Reviewed another team’s Developer Guide: click here for link
  2. Reported bugs for another team’s product and user guide: click here for product release and here for user guide.