Computer Science ePortfolio

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

This portfolio shows how my BioSync Android app grew from an earlier Kotlin weight tracker into a more organized Java project. Through CS-499, I used the same app to show growth in software design, algorithms and data structures, databases, and security.

Professional Self-Assessment

What This Program Helped Me Build Toward

This section introduces the portfolio by connecting my coursework, my capstone work, and the kind of developer I am trying to become.

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 like building things a person can actually interact with, whether that is a game mechanic, a mobile app screen, a visual scene, or a full application. This ePortfolio shows that growth by bringing my program work together through one capstone project.

My main goal is still to pursue game development or another interactive software role. At the same time, I understand that a Computer Science degree gives me a wider foundation than one specific job path. Across the program, I worked with software development, mobile apps, 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 clear 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.

In my CS-465 Full Stack Development course, I started to understand how larger applications come together. That class helped me see how frontend development, backend services, APIs, authentication, and databases work as one connected system. Before that, it was easier to see each part of an application as its own separate thing. That experience carried into my capstone because BioSync also needed login handling, database storage, user input, and a clear flow between screens.

To me, my CS-360 Mobile Architecture and Programming course became one of the most important pieces of this final portfolio because it gave me the original artifact I enhanced in 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. That helped the portfolio feel more connected because I was not jumping between random assignments. I was showing one app becoming stronger over time.

My graphics and game-related courses also shaped how I look at software. In CS-330 Computational Graphics and Visualization, I worked with visual scenes, transformations, textures, camera movement, and rendering concepts. That connects directly to why I am interested in game development. It also reminded me that programming is not only about making something technically work. It is also about making something a user can see, understand, and interact with. My game development courses added to that by giving me more exposure to gameplay systems, Unreal Engine work, player interaction, animation setup, and visual design.

The first enhancement in my capstone focused on software engineering and design. I rebuilt the Weight Tracking App from Kotlin into Java and improved the organization of the project. 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. That made the app easier to read and easier to build on later. This mattered because a working application can still be hard 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 was not doing 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. The app processes a List<WeightEntry>, backed by an ArrayList, and checks each entry once. That gives the calculation O(n) time complexity, which works well for this kind of mobile dataset. This enhancement showed how data structures and algorithmic thinking can make saved information more useful.

The third enhancement focused on databases and security. The original app had account creation and login, but the weight entries and goal weight were not fully connected to the account that created them. For the database enhancement, I improved the SQLite structure so each user has their own saved weights and goal. 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. I tested this with separate accounts and confirmed that each account kept its own dates, weights, and goals.

Security became a stronger part of how I think about software, especially through CS-305 and through the database enhancement in this capstone. One of the biggest things I learned is that security is not something that should only be added at the end. Even a smaller academic app needs to think about user data, validation, permissions, and access control. Separating user-specific data in BioSync helped me understand that a login screen by itself is not enough. The database also has to support the idea that each user should only access their own information.

Testing and debugging were major parts of this project too. In CS-320 Software Test Automation, I learned more about why testing matters instead of assuming software 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 one change affected another file. One example was when I updated the weight log screen to use a user ID, but some helper methods were still written with older method signatures. Fixing that meant tracing how the files connected and making sure DatabaseHelper, GoalHelper, and WeightLogActivity all matched.

Communication and documentation were also a big part of CS-499. The code review, enhancement narratives, journals, and ePortfolio all required me to explain what I built instead of only submitting code. I had to explain what the artifact was, why I selected it, what I changed, what skills the changes demonstrated, and how those changes connected to the course outcomes. That matters professionally because software development is not just writing code by yourself. Developers need to explain decisions, document reasoning, respond to feedback, and make their work understandable to instructors, reviewers, teammates, and stakeholders.

Collaboration showed up differently in this capstone because the project itself was individual, but I still had to work through feedback and use that feedback to improve the final portfolio. Instructor feedback helped me polish how I explained the data structure behind the algorithms enhancement and the user-specific relationships in the database enhancement. The code review also helped me look at my own work more critically. It pushed me past simply saying “the app works” and into explaining how the structure, logic, database design, and user experience improved.

This ePortfolio shows my growth from completing class assignments to building and explaining a more complete software project. BioSync 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 the project came from the whole Computer Science program. Full-stack development helped me understand connected systems. Mobile development helped me build user-facing apps. Graphics and game development strengthened my interest in visual and interactive software. Database, security, testing, and data structure courses helped me make the app 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. Still, this program gave 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

One app, rebuilt step by step.

BioSync is an Android mobile application focused on weight tracking, goal management, and progress visibility. The original version let a user create an account, log in, add weight entries, update records, delete records, and track progress toward a goal.

I chose this app for my capstone because it gave me a clear way to show growth in one place. Instead of using three unrelated projects, I improved one artifact across software design, algorithms and data structures, and databases. That makes the final portfolio feel more connected and shows the project maturing over time.

Publication One

Code Review

My code review explains where the project started, what already worked, and what I planned to improve across the three enhancement areas.

01

Starting Point

I reviewed the original login system, weight entry management, goal tracking, and SQLite database setup.

02

What Needed Work

I looked at readability, organization, calculations, validation, database structure, and areas where the app could be stronger.

03

Enhancement Plan

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

Published Enhancement One

Software Engineering and Design

This enhancement covers the Java rebuild and the structural cleanup that made BioSync easier to maintain and continue improving.

Enhancement Summary

From Weight Tracker to BioSync

For Enhancement One, I focused on software engineering and design. I rebuilt the original CS-360 Weight Tracker app from Kotlin into Java and reorganized it into a cleaner Android project. The goal was not just to change languages. The goal was to make the project easier to read, easier to explain, and easier to build on.

I separated 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 had 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 improvement is that the code is cleaner and better prepared for the later algorithm and database enhancements.

Published Enhancement Two

Algorithms and Data Structures

This enhancement turns stored weight entries into useful progress feedback through comparison logic and structured data.

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 was not doing much with that information after the user entered it.

I added a progress summary that calculates starting weight, current weight, total change, highest recorded weight, lowest recorded weight, and goal progress. That made 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 the saved records. The calculation logic is separated into a reusable WeightStats class, which loops through the entries once to compare values and build the summary. Since each entry only needs to be checked one time, the algorithm runs in O(n) time.

Published Enhancement Three

Databases and Security

This enhancement fixes the shared-data issue by tying saved weights and goals to the active user account.

Enhancement Summary

Making the Login Actually Matter

For Enhancement Three, I focused on the database and security side of BioSync. The app already had account creation and login, but that alone did not mean the data was truly separated. Before this change, the app could look private from the user’s point of view while the database underneath was still too flat.

I fixed that by adding user_id relationships to the weight and goal records. Now the app passes the active user’s ID from MainActivity into WeightLogActivity, and that ID is used when the app saves, loads, updates, deletes, or checks goal data.

The before and after is the important part: before the enhancement, the database stored records without fully tying them to the active account. After the enhancement, one user can have many weight records, and each user can have their own goal record. That makes the app work more like a real multi-user application instead of a single-user class project with a login screen placed on top.

I tested this by creating separate accounts, such as testA and testB, then adding different weights and goals under each account. When I switched between users, each account kept its own data. That testing helped prove that the CRUD operations were isolated by user instead of pulling from one shared set of saved records.

Course Outcome Alignment

Skills Demonstrated

These skills connect my capstone work to the main outcomes of the Computer Science program.

Professional Communication

I used the code review, narratives, and ePortfolio to explain technical decisions clearly instead of only submitting code.

Software Development

I improved a working mobile app through better structure, cleaner implementation choices, and repeated testing.

Algorithmic Solutions

I added calculations and data processing so stored weight entries could give the user more useful feedback.

Security Mindset

I improved validation, user-specific data handling, and database access boundaries through defensive programming practices.