Grocery Tracker Application

Databases and Software Engineering

From C++ grocery tracker using text file to a full stack application with Java, Spring boot, MySQL, and Angular

About This Project

The Grocery Tracker is a web-based application designed to monitor and track the frequency of product purchases from a store, while also providing insights on sales trends. The original version of this artifact was created in C++ and focused on reading and analyzing data from text files generated by a store. This enhanced version, built with Java Spring Boot for the backend, MySQL for the database, and Angular for the frontend, introduces a robust user interface, product management features, and visual representations of sales data, such as product frequency charts.
The artifact was initiated as part of a project for the CS210 course in 2023. I decided to include this artifact because it highlights my strengths in database management, backend development, and data visualization, all important components of software engineering.

Performed Enhancements

  1. Ported the program from C++ to Java.
  2. Implemented a backend using Java and Spring Boot.
  3. Integrated MySQL database.
  4. Separated backend code into modules.
  5. Implemented Data transfer objects ( DTOs).
  6. Designed and implemented RESTful APIs.
  7. Ensured that API returns JSON objects.
  8. Created a webSecurityConfig class to handle CORS issues.
  9. Integrated Spring Security to manage authentication and protect API endpoints.
  10. Built a responsive and user-friendly fronted interface using Angular.
  11. Implemented the ability to sort and filter the product list by different criteria such as product name, category, location, or purchase frequency.
  12. Added the ability to upload and display images for each product.
  13. Created a dashboard to analyze sales data, such as purchase frequency, sales performance by region, and overall sales trends.
  14. Added charts, graphs, and various visual elements to display sales trends.
  15. Developed a detailed README file that outlines how to install and run the application.

Enhancement Gallery

Demonstration of Skills and Achievements

The Grocery Tracker project provided an opportunity to showcase a comprehensive set of skills, particularly in the design and management of relational databases, integration between backend and frontend systems, and the implementation of advanced SQL queries. The following outcomes highlight how I applied these skills while enhancing the functionality of the application: