Profile Picture

Welcome to My ePortfolio

Showcasing my expertise in software engineering, algorithms, and databases.

Software Design & Engineering - Inventory Management System

The Inventory Management System is a mobile application developed as part of the CS 360 - Mobile Architecture course in January 2024. The application was designed to help users track and manage inventory efficiently. It features user authentication, inventory tracking, and real-time database integration.

Justification for Inclusion

This artifact was selected because it demonstrates my ability to develop scalable mobile applications using industry-standard tools and frameworks. The enhancements made to this application significantly improved its functionality and usability in the following ways:

These enhancements highlight my skills in mobile application development, UI/UX design, database management, and algorithm optimization.

Reflection on the Enhancement Process

Enhancing this artifact allowed me to apply best practices in mobile application development, while also deepening my understanding of real-time database interactions and secure authentication mechanisms. Some key takeaways from this process include:

Enhancements:

View Enhancements on Github

Algorithms & Data Structures - Inventory Management System

Artifact Overview

The artifact is an Android-based inventory management application originally created during CS-360. It allows users to manage items in a database with the ability to add, edit, view, and delete records. The app initially stored data locally using SQLite and featured a user authentication system and permission prompt for SMS notifications. It has since been enhanced to use Firebase Realtime Database instead of a local SQLite database, improving scalability and enabling real-time updates.

Justification for Inclusion

This artifact is included in my ePortfolio to highlight my skills in applying data structures and algorithms in a practical setting. Specifically, it demonstrates:

To optimize data handling and retrieval from Firebase, I converted raw item lists into structured InventoryItem objects, applied a custom merge sort to organize inventory by name, and used binary search for fast lookup. I also implemented a HashMap-based cache for efficient access by item name. These enhancements highlight my proficiency in selecting and applying appropriate data structures for performance and usability.

Alignment with Learning Outcomes

This enhancement aligns with the course outcome:

"Design and evaluate computing solutions that solve a given problem using algorithmic principles and computer science practices and standards appropriate to its solution..."

By integrating optimized search and sorting mechanisms, I demonstrated my ability to choose the right algorithmic approach based on data and usage context. I also showcased the ability to design efficient client-side algorithms that work seamlessly with cloud-based NoSQL databases like Firebase, balancing latency and user responsiveness.

Challenges Faced and Problem Solving

While enhancing the app, I deepened my understanding of algorithm performance trade-offs. For example, using a HashMap significantly reduced lookup time for frequently accessed items. The biggest challenge was restructuring the data retrieval flow without breaking existing logic, particularly in the ItemAdapter and DataDisplayActivity classes. Integrating sorting and searching logic with Firebase required careful transformation of Firestore documents into usable data structures.

Another challenge was maintaining UI responsiveness while applying sorting algorithms and converting between Item and InventoryItem objects. I also applied defensive programming techniques to ensure that sorting or searching on an empty dataset would not crash the app. Overall, these enhancements improved both my coding efficiency and problem-solving mindset.

Enhancements:

View Enhancements on GitHub

Databases - QuantigrationUpdates MySQL Database

The QuantigrationUpdates Database was developed during the DAD 220 - Databases course in June 2023. This project involved designing and implementing a relational database system for structured business data management. It includes CRUD operations, SQL indexing, and data security features.

Justification for Inclusion

This artifact was chosen because it demonstrates my ability to design, optimize, and secure database systems. The enhancements made showcase skills in:

Reflection on the Enhancement Process

Improving this artifact strengthened my knowledge of relational and non-relational database structures and their real-world applications. Some key insights include:

Enhancements:

View Enhancement on GitHub