

Discover more from Faces of ALX SE
Kalkidan's Enterprise Issue Tracking and Management Web App
Kalkidan from cohort 7 built a very detailed issue tracker for his portfolio project which blew the minds of all #ALX_SE mentors. Dive in to read about the amazing issue tracker known as Gesela.
SUMMARY
We had a seat down with the amazing Kalkidan Betre to give us a walkthrough of his issue tracking and management system called Gesela. This was Kalkidan’s portfolio project which he started building 2 months earlier and it greatly impressed all our #ALX_SE mentors. Kalkidan’s issue tracker is extremely detailed since it covers all necessary features which most learners include only a few. Kalkidan’s tracker heavily focuses on serving developing countries because most government offices and private companies in these countries use inefficient issue tracking and management systems resulting in customer frustration.
INTRODUCTION
My name is Kalkidan Betre and I am an #ALX_SE graduate from cohort 7. I have a background in civil engineering and computer science and currently I am also pursuing a course in electrical engineering. When I finished foundations, I knew that I wanted to build something big for specialization so that I can showcase it to future employers. It was a big project because it was full stack where I had to do both the front and the backend. I joined presentations for specialization while I was in foundation to know what to expect hence I studied all the requirements and all the things that are needed. During the presentations, I realized that a lot of people were citing limited time as a challenge they face. I jumped down and started planning really early even if you check my GitHub for the projects, open source, the first commit was done two months before my graduation so that shows that I really plan ahead so that I can build a really good project and finish on time.
THE PROJECT
Problem
When I was brainstorming on a project to build, I wanted to solve a real life problem not just to build a fancy one for display. I reflected on a particular problem that I personally faced when applying for a national ID. First I had to physically visit various government offices and I had to make several visits following up on the progress. I would be told to come after a week then when I go back, I am told to come back after 10 days and it was a really frustrating and manual process. The black box model is still prevalent in most companies, where customers are not aware of what is happening to their requests. I, therefore, started thinking of how I can design a system tailored for the developing world where one can put a request for any service online and track the progress without making endless physical visits.
Solution: Gesela
Out of this personal experience and desire to build a solution to a real problem, Gesela was born. Gesela is an enterprise Issue Tracking and Management system specifically designed for service-based organizations, with a focus on those in developing countries. The goal is to provide a user-friendly and secure platform that can efficiently handle all types of customer issues. By combining the strengths of traditional ticketing systems and software issue-tracking systems, the application aims to enhance customer satisfaction, improve organizational efficiency, and contribute to the overall effectiveness and success of enterprises, especially government offices and private service giving organizations. The main features of the Gesela Issue Tracking and Management System are that it:
Allows both customers and employees to create, submit and track issues
Allows the organization to manage issues effectively with a role based model (Issue Manager, and Issue Handler)
Provides report to the organization to visualize the effectiveness of various departments
Provides notifications in each step of the issues life cycle allowing for better transparency
Technology and infrastructure:
This project was built using ReactJS frontend and Spring Boot Backend. This tech stack is selected for various reasons including scalability and security.
The frontend uses ReactJS with Redux. Redux is a great library for state management especially with the Redux Toolkit. The overall architecture of the frontend web app looks like the illustration below:
As illustrated above, the react components communicate with the Redux Store for data as well as authentication. Hence, the Redux store is the only source of truth for the frontend. The store in turn is connected to the backend Gesela API. This makes the frontend very scalable and easy to maintain.
The backend is built using Spring Boot. Spring Boot is a great framework for building REST APIs. It is very easy to use and has a lot of features out of the box. The backend architecture looks like the illustration below:
The backend utilizes a number of Spring Boot features including Spring Security, Spring Data JPA, Spring Web, etc to build a robust and secure REST API. Furthermore, Hibernate is used as the ORM for the database. The database used is MySQL.
Final words of wisdom:
My key advice to peers is to develop an understanding of both the front and back end because this helps you do a good job on the technical and aesthetic aspects of any project you build. It is very easy to imagine that building clones are easy for your portfolio project but find a real life problem and build a solution to it that you can proudly add to your portfolio. Try to explore as much as possible because I for example used docker yet there was no need to use it. I also used spring which is a java framework for my backend yet it is something I have never used before and had to learn. One of the aims of specialization is to test how well you can adapt to new tools because the market will not give you the luxury to always choose to work with what is familiar. When you are building your portfolio project, do not fit it if you can stand out!
To stay in touch with Kalkidan, kindly contact him on LinkedIn, Twitter and GitHub. Here is also the GitHub repositories to this project’s web app and API.