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.