CS 499 Computer Science Capstone | Southern New Hampshire University
đą FitnessApp: Professional Android Development Portfolio
Completing the Computer Science program at Southern New Hampshire University has fundamentally shaped how I approach software development and prepared me for a career in technology. The capstone process crystallized the diverse skills I developed throughout my coursework into a cohesive demonstration of technical competence across software architecture, algorithms, and database design.
Throughout my coursework, I learned that effective software development requires both technical skills and collaborative communication. In CS 310 Collaboration and Team Project, I worked with a distributed team using Agile methodologies, learning to conduct constructive code reviews and navigate conflicting priorities diplomatically. The MVVM architecture I implemented in my capstone demonstrates understanding of collaboration even in individual workâthe clear separation of concerns enables parallel development where UI designers, backend developers, and QA engineers can work simultaneously without conflicts.
My comprehensive documentation practices throughout the capstone show readiness to contribute to professional codebases. Javadoc comments explain not just what code does but why design decisions were made, Big-O complexity analysis documents algorithm performance characteristics, and detailed narratives explain architectural trade-offs. In professional environments where code must be maintained by people who didn't write it, potentially years later, this documentation mindset is essential.
The ability to communicate technical concepts to diverse audiencesâpeers, non-technical stakeholders, and end usersâis a skill I deliberately cultivated. The three enhancement narratives I developed demonstrate my ability to address multiple audiences simultaneously: technical reviewers wanting implementation details, academic evaluators assessing outcomes, and potential employers seeking practical skills. I balanced these audiences by leading with high-level accomplishments before technical specifics, using concrete examples to illustrate abstract concepts, and connecting technical work to broader competencies.
My 30-minute code review video demonstrates oral communication skills, requiring me to organize complex information logically and maintain appropriate pacing. This mirrors technical presentations software engineers deliver in design reviews and sprint demos. Additionally, my GitHub repository structure with descriptive commit messages and comprehensive README documentation shows understanding that version control is a communication tool in distributed team contexts.
The algorithms enhancement showcases my ability to design, implement, and analyze algorithms grounded in computer science theory. I implemented statistical analysis (moving averages with O(nĂw) complexity, linear regression with O(n)), nutrition calculations (Mifflin-St Jeor BMR equation, TDEE with activity multipliers), and workout metrics (averaged Epley and Brzycki 1RM formulas). Each algorithm required researching domain-specific problems, selecting appropriate computational solutions, and implementing them with proper edge case handling.
The workout analysis demonstrates understanding that real-world algorithms often combine multiple approaches rather than relying on single formulas. By averaging Epley and Brzycki formulas, each with different accuracy characteristics across rep ranges, I improved overall accuracy while showing maturity beyond textbook implementations. I documented complexity throughout with Javadoc comments, demonstrating that algorithmic efficiency must be balanced against code clarity and that premature optimization wastes development time.
The software architecture enhancement demonstrates my ability to recognize technical debt and refactor toward industry best practices. The original application exhibited problems common in student projects: mixed concerns, security vulnerabilities (plaintext passwords), and minimal error handling. By implementing MVVM architecture, I created separation of concerns essential for testability, maintainability, and scalability. Activities that previously contained 150+ lines of mixed logic now contain 60-100 lines of view-binding code, with business logic properly isolated in ViewModels.
The introduction of BCrypt password hashing with 12-round cost factor addresses critical security vulnerabilities while demonstrating understanding of cryptographic principles and performance trade-offs. The Result<T> wrapper pattern for type-safe error handling shows awareness of functional programming concepts increasingly common in modern development, making error states visible in the type system.
The database enhancement from 2 tables to 12 tables demonstrates ability to design normalized relational schemas. The nutrition module separates foods from meals through a many-to-many join table, preventing data duplication while enabling scalability. However, I also learned that normalization isn't absoluteâstoring pre-calculated totals in the meals table trades storage for query performance, showing understanding of when to deliberately violate normalization for practical benefits.
Foreign key constraints with CASCADE and RESTRICT behaviors enforce business rules at the database level, while composite indexes on frequently-queried columns demonstrate understanding of query optimization. The use of Android Room rather than raw SQLite shows appropriate tool selectionâRoom's compile-time verification and type-safe interfaces justify the complexity for a 12-table schema.
Security considerations permeate my capstone work, reflecting a defensive mindset developed through CS 405 Secure Coding. Beyond BCrypt password hashing, I implemented layered security: input validation preventing SQL injection and buffer overflow attacks, error message sanitization preventing information leakage, and parameterized queries eliminating injection vulnerabilities. The validation occurs at multiple layers (UI, ViewModel, Repository) following defense-in-depth principles.
The design decisions required thinking adversariallyâinstead of exposing detailed error messages that reveal database structure, the app shows user-friendly messages. Instead of distinguishing between "username not found" and "password incorrect" (helping attackers enumerate accounts), login failures show generic "Invalid credentials." This demonstrates understanding that security vulnerabilities often stem from trusting user input and exposing unnecessary information.
The three enhancement artifacts work together as a unified demonstration of computer science competence. Enhancement One (Software Design) establishes the architectural foundation through MVVM refactoring and security improvements, creating the structure that makes subsequent enhancements possible. Enhancement Two (Algorithms) transforms the application from passive data logger to intelligent analytics platform, integrating with the MVVM architecture and anticipating database persistence needs. Enhancement Three (Databases) provides the storage layer enabling long-term fitness tracking, integrating with both the architecture (Repository pattern, DAO interfaces) and algorithms (storing calculated nutrition goals and estimated 1RM values).
This progression mirrors professional development: fix architecture first, add features, then scale the data layer. The portfolio demonstrates not just technical skills but also the ability to work independently on long-term projects, self-directed learning to research unfamiliar domains (metabolic science, strength training formulas), and clear communication through comprehensive documentation.
The Computer Science program transformed me from someone who could write code into someone who can architect systems, evaluate algorithmic trade-offs, design databases, and communicate technical decisions effectively. More importantly, it taught me how to learn independentlyâa critical skill where frameworks and best practices evolve constantly. When implementing BCrypt hashing, I researched OWASP recommendations and tested performance on Android devices. When designing the database, I consulted Room documentation and adapted general principles to platform-specific constraints.
This self-directed learning capacity, cultivated through challenging coursework and an intensive capstone, prepares me not just for my first job but for a career of continuous growth. The ePortfolio presents concrete evidence of technical capabilities through three comprehensive enhancements, each with detailed narratives explaining design decisions, challenges overcome, and lessons learned. I'm not simply a technician implementing specifications; I'm an engineer who evaluates alternatives, makes reasoned decisions, and communicates rationale to stakeholders.
As I enter the professional software development field, I bring technical competence (demonstrated through portfolio artifacts), soft skills (collaboration, communication, self-directed learning), and professional values (security mindfulness, user-centric design, maintainable code). The Computer Science program provided the foundation, but the capstone proved I can apply that foundation independently to solve real-world problemsâprecisely what employers need from software engineers.
Watch my comprehensive code review walking through the complete FitnessApp enhancement process, including MVVM architecture implementation, BCrypt security, and the development of a 25+ method algorithm suite with scientifically-validated fitness formulas.
FitnessApp is a comprehensive Android fitness tracking application enhanced through a three-module capstone process, transforming a basic weight tracker into an intelligent fitness platform with professional architecture, enterprise-grade security, scientifically-validated algorithms, and a production-ready normalized database.
Status: â Complete
Implemented MVVM architecture, BCrypt password security (12-round cost), comprehensive input validation framework, and structured error handling with Result<T> pattern.
Deliverables: 10 new files, 7 modified files
Status: â Complete
Developed 25+ algorithm methods including statistical analysis, nutrition calculations (Mifflin-St Jeor equation), and workout metrics. All formulas peer-reviewed and validated.
Deliverables: 10 algorithm classes
Status: â Complete
Expanded database from 2 tables to 12 tables with proper normalization, foreign key constraints, and referential integrity. Supports nutrition tracking, workout logging, and personal record management.
Deliverables: 10 entities + 10 DAOs
All algorithms implement peer-reviewed, scientifically-validated formulas from published research:
MVVM architecture enables parallel development with clear separation of concerns. Normalized database schema supports multiple developers working on different features. Comprehensive documentation supports team collaboration.
Algorithm complexity documented with Big-O notation. All formulas cited with peer-reviewed sources. Database relationships documented with ERD principles and normalization justification.
Managed security vs. performance trade-offs. Evaluated BCrypt cost factors, validation strictness, and database normalization vs. query performance. Balanced foreign key constraints for data integrity.
Implemented scientifically-validated formulas: Mifflin-St Jeor, Epley, Brzycki, least squares regression. Applied Third Normal Form database design, proper indexing strategies, and industry-standard design patterns.
Defense-in-depth validation, BCrypt hashing, SQL injection prevention via parameterized queries, referential integrity constraints, cascade deletion for data cleanup, error message sanitization.