Enhancement Three: Databases
Abram Steinbrenner
Artifact Description
The artifact selected for this enhancement is the CS 360 Scale Up! Weight Tracker App, originally developed during the CS 360 Mobile Architecture and Programming course. The application is an Android-based mobile app that allows users to create accounts, authenticate securely, and store weight tracking data using a local SQLite database.
The original implementation supported basic data persistence and CRUD operations but relied on minimal validation and stored sensitive data in an insecure format. While functionally correct, the database design and access patterns left opportunities for improvement in security, maintainability, and structural clarity.
Justification for Inclusion in the ePortfolio
This artifact was selected for inclusion in my ePortfolio because it demonstrates practical database design within a real-world application context. The system manages persistent user data, authentication records, and time-series weight entries, making it a strong example of applied database-backed software development.
The enhancement showcases my ability to identify weaknesses in an existing database design and implement improvements using industry-aligned practices. Key improvements include schema refinement, centralized data access, strict validation, and secure credential storage. Together, these changes significantly improve the reliability and security of the application.
Implemented Database Enhancements
- Refactored database schema with explicit foreign key relationships and constraints
- Centralized all CRUD operations using a repository pattern
- Added layered input validation prior to all database writes
- Improved separation between UI logic and database access logic
- Replaced plaintext password storage with salted and hashed credentials
- Introduced a dedicated account creation screen to enforce stronger password rules
Alignment With Planned Course Outcomes
This enhancement demonstrates strong alignment with the planned course outcomes. In particular, it illustrates the ability to design and evaluate computing solutions involving persistent data, implement reliable database-backed systems, and apply a security-focused mindset when handling sensitive information.
The refactored database architecture and secure credential handling directly support outcomes related to software engineering, database design, and security awareness. No changes to the original outcome coverage plan were required.
Reflection on the Enhancement Process
Enhancing this artifact reinforced the importance of treating databases as a critical component of application security and reliability rather than as simple storage mechanisms. Implementing secure password handling and enforcing validation at multiple layers highlighted how small design decisions can significantly impact system integrity.
One challenge involved refactoring database access without breaking existing application behavior. This required careful testing and a clear separation of responsibilities between the UI and data layers. The process emphasized defensive programming and long-term maintainability.
Overall, this enhancement strengthened my confidence in designing secure, database-driven applications and communicating technical improvements clearly in a professional context.
Evidence
- Repository: View Enhancement 3 Code on GitHub (cs499-enhancement2)
- Original Repository (Before Changes): View CS 360: Original Code on GitHub
- Implementation Notes: Enhancements can be verified by reviewing the repository tag, which includes the updated database schema, repository layer, secure authentication logic, and validation rules.