Computer Science ePortfolio

BioSync turns personal progress into a cleaner, smarter mobile experience.

This portfolio documents the evolution of BioSync, my Android weight tracking application. The project began as an earlier Kotlin artifact and is being rebuilt into a more organized, secure, and useful mobile app for tracking goals, weight entries, and progress over time.

Professional Self-Assessment

Growth Across the Computer Science Program

This section introduces my ePortfolio by connecting my coursework, capstone enhancements, career goals, and overall development as a computer science student.

Throughout the Computer Science program, one of the biggest things I learned about myself is that I enjoy creating things at my core. I am most interested in the side of computer science where code becomes something visual, interactive, and usable. I enjoy the process of building something that a user can interact with, whether that is a game mechanic, a mobile app screen, a visual scene, or a full application. This ePortfolio represents that growth by showing how my skills developed across the program and how I brought those skills together in my CS-499 capstone project.

My goal is to pursue game development or another interactive software role, but I also understand that a Computer Science degree gives me a broader foundation than only one career path. Across the program, I gained experience in software development, mobile applications, full-stack development, databases, security, testing, data structures, algorithms, and computer graphics. Those areas may seem separate at first, but they all connect back to building better software. A game still needs organized code, efficient logic, secure data handling, testing, user-centered design, and strong communication. Even though my capstone artifact is a mobile weight tracking app instead of a game, the skills behind it still connect heavily to the kind of work I want to do.

One of the courses that helped me see how larger applications come together was CS-465, Full Stack Development. That course helped me understand how frontend development, backend services, APIs, authentication, and databases work together as one system. Before that, it was easier to think of each part of an application as separate. Full-stack development helped me see the bigger picture of how users interact with an application and how the application communicates with the server and database behind the scenes. That experience carried into my capstone because my Weight Tracking App also needed login handling, database storage, user input, and a clear flow between screens.

CS-360, Mobile Architecture and Programming, became one of the most important courses for my final portfolio because it gave me the original artifact I enhanced for CS-499. The Weight Tracking App started as a mobile application that let users create an account, log in, save weight entries, set a goal weight, and manage their records. During the capstone, I used that original project as the foundation for all three enhancements. This allowed me to show growth across multiple areas without jumping between unrelated artifacts. Instead of building three separate projects, I improved one application in stages so the final portfolio shows a single project becoming stronger over time.

My graphics and game-related courses also shaped the way I view software development. In CS-330, Computational Graphics and Visualization, I worked with visual scenes, transformations, textures, camera movement, and rendering concepts. Those skills connect directly to why I am interested in game development. They also helped reinforce that programming is not only about making something technically work. It is also about creating something that a user can see, understand, and interact with. My game development courses added to that interest by giving me more exposure to gameplay systems, Unreal Engine work, player interaction, animation setup, and visual design. Those experiences helped confirm that interactive software is the direction I want to continue pursuing.

The first enhancement in my capstone focused on software design and engineering. I rebuilt the Weight Tracking App from Kotlin into Java and improved the overall organization of the project. This enhancement showed my growth in object-oriented design, code structure, and maintainability. Instead of keeping too much responsibility in one activity, I separated functionality into helper and model classes such as DatabaseHelper, WeightEntry, WeightAdapter, InputHelper, GoalHelper, and SmsHelper. This made the app easier to read and easier to build on later. This enhancement connects to professional software development because clean structure matters. A working application can still be difficult to maintain if the code is crowded or poorly organized.

The second enhancement focused on algorithms and data structures. Before this enhancement, the app could store and display weight entries, but it did not do much with that information. I added a progress summary that calculates the user’s starting weight, current weight, total change, highest recorded weight, lowest recorded weight, and progress toward a goal. This required the app to process a list of WeightEntry objects and use comparison logic to produce useful results. The entries are loaded into a List<WeightEntry>, backed by an ArrayList, which works well for this project because the app needs to process the records in order. The algorithm runs in O(n) time because it checks each entry once. This enhancement showed my ability to use data structures and algorithmic thinking to make stored data more meaningful for the user.

The third enhancement focused on databases. The original app had account creation and login, but the weight entries and goal weight were not fully connected to individual user accounts. For the database enhancement, I improved the SQLite database structure so each user has their own saved weight entries and goal weight. I added user-specific relationships through user_id fields and updated the app so it passes the active user ID from the login screen into the weight log screen. This made the CRUD functionality stronger because adding, reading, updating, and deleting records now happens in relation to the active account. I tested this by creating separate test accounts and confirming that each account kept its own dates, weights, and goals.

Security was also part of my growth during the program, especially through courses like CS-305 and through the database enhancement in CS-499. One of the biggest things I learned is that security is not something that should be added only at the end of a project. Even small applications need to think about user data, validation, permissions, and access control. My capstone app is still an academic project, but separating user-specific data was an important step toward a stronger security mindset. It helped me understand that login functionality alone is not enough. The database also needs to support the idea that each user should only access their own information.

Testing and debugging were also major parts of my development throughout the program. For example, CS-320 Software Test Automation helped reinforce the importance of testing software instead of assuming it works because it runs once. During the capstone, I had to test account creation, login, adding entries, updating entries, deleting entries, setting goals, SMS permission behavior, progress calculations, and user-specific database records. Debugging was not always smooth, especially when changes in one file affected another part of the application. One example was when I updated the weight log screen to use a user ID, but the helper methods still had older method signatures. Fixing that required checking how the files connected and making sure the database helper, goal helper, and activity code all matched. That kind of troubleshooting helped me become more comfortable working through problems instead of getting stuck when the app breaks.

Communication and documentation were another important part of this course. The code review, enhancement narratives, journals, and ePortfolio all required me to explain my work clearly instead of only submitting code. This helped me practice communicating technical choices to an audience that may not be looking directly at the project in Android Studio. I had to explain what the artifact was, why I selected it, what I changed, what skills the changes demonstrated, and how the enhancements aligned with course outcomes. That matters professionally because software development is rarely just writing code alone. Developers also need to explain decisions, document reasoning, respond to feedback, and make their work understandable to instructors, reviewers, teammates, and other stakeholders.

Collaboration was shown differently in this capstone because the project itself was individual, but I still had to work through feedback and communicate my progress. Instructor feedback helped guide what needed to be polished, such as explaining the data structure behind the algorithms enhancement and making sure the ePortfolio would be understandable to outside viewers. I also used the code review process to evaluate my own work more critically. That helped me move from simply saying “the app works” to explaining how the structure, logic, database design, and user experience had improved.

Overall, this ePortfolio shows my growth from completing individual class assignments to building and explaining a more complete software project. The Weight Tracking App gave me one artifact where I could demonstrate software engineering, algorithms and data structures, databases, security thinking, testing, debugging, and communication. At the same time, the skills behind that artifact came from the entire Computer Science program, not only my capstone course. Full-stack development helped me understand connected systems. Mobile development helped me build user-facing applications. Graphics and game development strengthened my interest in visual and interactive software. Database, security, testing, and data structure courses helped me make the application more reliable, organized, and useful.

As I move forward, I want to keep building toward a career in game development or interactive software. Creating things matters to me, and this portfolio shows that I am committed to continuing in this field. I know I still have more to learn, especially in larger production environments, game systems, graphics programming, and professional team workflows. However, this program has given me a stronger foundation and more confidence in my ability to build, troubleshoot, improve, and explain software. This ePortfolio is not just a collection of assignments. It is evidence of the kind of developer I am working to become.

About the Project

A previous project, rebuilt with stronger purpose.

BioSync is an Android mobile application focused on weight tracking, goal management, and progress visibility. The original version allowed a user to log in, create and manage weight entries, and track progress toward a personal goal.

For my capstone, I selected this application because it gives me a clear way to show how my skills have developed. Rather than leaving the project as a basic Weight Tracker, I am rebuilding it into BioSync with stronger organization, improved functionality, better data handling, and a more polished user experience.

Publication One

Code Review

The code review establishes where the project began, what currently works, and what changes are planned across the three enhancement areas.

01

Existing Functionality

Review of the original login system, weight entry management, goal tracking, and SQLite database structure.

02

Code Analysis

Discussion of readability, project organization, calculations, validation, and areas where the application can be strengthened.

03

Enhancement Plan

Planned improvements in software engineering, algorithms and data structures, and databases/security.

Capstone Roadmap

Enhancement Areas

Each enhancement focuses on a different area of computer science while contributing to one complete mobile application.

Published Enhancement One

Software Engineering and Design

This publication presents the first major BioSync enhancement: rebuilding the original Kotlin artifact into a cleaner Java-based Android application.

Enhancement Summary

From Weight Tracker to BioSync

For Enhancement One, I focused on software engineering and design. The original CS-360 Weight Tracker application was rebuilt from Kotlin into Java and reorganized into a cleaner Android project. This gave me the chance to improve the structure of the app while keeping the original functionality intact.

The enhanced version separates repeated logic into helper classes, including InputHelper, GoalHelper, and SmsHelper. I also replaced the older Triple-based data handling with a clearer WeightEntry model so each entry uses named values for ID, date, and weight.

The app still supports account creation, login, weight entry creation, editing, deletion, goal tracking, and SMS notification logic. The main improvement is that the code is easier to read, easier to maintain, and better prepared for the later algorithm and database enhancements.

Published Enhancement Two

Algorithms and Data Structures

This publication presents the second major BioSync enhancement: using algorithmic logic and structured data to turn stored weight entries into useful progress information.

Enhancement Summary

From Stored Entries to Progress Feedback

For Enhancement Two, I focused on algorithms and data structures. Before this enhancement, BioSync could store and display weight entries, but it did not do much with that information after the user entered it.

I improved the app by adding a progress summary that calculates the user's starting weight, current weight, total change, highest recorded weight, lowest recorded weight, and goal progress. These calculations make the app more useful because the saved data is now being analyzed instead of only displayed.

The enhancement uses a list of WeightEntry objects to organize saved records. The calculation logic is separated into a reusable WeightStats class, which loops through the saved entries once to compare values and build the summary. This keeps the algorithm efficient with O(n) time complexity because each saved entry only needs to be checked one time.

Course Outcome Alignment

Skills Demonstrated

The completed portfolio will connect each artifact and narrative to the technical and professional skills developed throughout the program.

Professional Communication

Presenting technical decisions clearly through the code review, enhancement narratives, and organized ePortfolio.

Software Development

Improving a functional mobile application through stronger design, implementation choices, and iterative testing.

Algorithmic Solutions

Applying calculations and data processing to provide more meaningful feedback from stored weight entries.

Security Mindset

Addressing validation, user data handling, and database concerns through defensive programming practices.