ketan yeluri.

gitGud

gitGud - Repo, Website

Get good gif

gitGud is a slang rendering of get good, and refers to getting better at a task or skill, used especially among video gamers online.

What is it?

gitGud is a GUI-based desktop application for storing and managing your friends’ gaming information and schedules. It is built for gamers and provides a gamer-themed experience with a focus on increasing the efficiency through its typing-based interface.

This product is the result of a brown-field software team project that was done as part of CS2103T - Software Engineering, a course/module that I took in Year 2 Semester 1 of my undergraduate studies.

What did I do?

Since there was quite an extensive codebase when we started on the project, there was a lot of refactoring to be done considering that we wanted to morph the product (rather than evolve, the two options we were given). I took on the role and responsibility of refactoring and maintaining the Model part of the application, described in the Developer guide as:

a runtime model of the data using Java objects that represent real-world entities and associations that simulate relationships between these entities.

I was incharge of implementing any and all functionality required from the Model, as well as writing unit tests to ensure bug-free behavior. Since the team designed the product collectively, I got to design, implement and document a completely new feature. I won't bother you with the exact details of the feature, but it enables the user to get information of a specific friend or game using their respective commands. There's a dedicated page if you want a more in-depth technical view of my contributions to the project. You can also check out the slides we made for the Product pitch presentation.

Did I learn anything?

Did you learn anything gif

This was my first experience working on a software project in a team setting. Naturally it came with its own challenges like communication, creative conflicts, deadlines and different working styles. I learnt how to and how not to deal with these challenges, and the importance of respecting others' time. I also learnt technical stuff like - the different types of SDLC, design, requirements, modelling, testing, documentation, project management, and common SE tools/practices.

Numbers for perspective

  • Contributed over 3.8k lines of functional, test and documentation code
  • Achieved over 98% coverage on the assigned section of the codebase
  • Deployed the fully functional, submission-ready version in 12 weeks since the start of the project

Made possible using

  • Java - Written in Java™ SE Development Kit 11.0.9 (JDK 11.0.9)
  • JavaFX - An open source software platform for creating GUI-based desktop applications built on Java. JavaFX Version 11 used.
  • SceneBuilder - A visual layout tool with Drag & Drop interface for designing JavaFX application interfaces. Scene Builder 16.0.0 used.
  • Jackson - JSON library for java
  • JUnit 5 - A popular testing framework for Java
  • IntelliJ IDEA Community Edition - Text editor for Java. IntelliJ IDEA 2021.2 IC-212.4746.92 used.

The team