Milestone Four Narrative
Category Three: Databases
1. Briefly describe the artifact. What is it? When was it created?
The artifact selected for this milestone is a Python-based dashboard application originally created during the CS-340 Client-Server Development course. The project integrates a MongoDB database containing animal shelter data with a Python CRUD module and a Dash-based user interface to allow users to filter, visualize, and explore animal records. The original artifact demonstrated basic database connectivity and query functionality, and it has since been enhanced across multiple milestones to reflect additional professional practices in software engineering, algorithms, and databases.
2. Justify the inclusion of the artifact in your ePortfolio. How was it improved?
This artifact was selected because it demonstrates practical database skills that are directly applicable to industry environments. For the databases enhancement, the project was improved by extending the original CRUD module to support more advanced MongoDB features. These enhancements include the addition of aggregation pipeline support for database-side analytics, optional projection-based reads to limit retrieved fields, and improved cache management to ensure data consistency after write operations. Together, these changes showcase an understanding of database optimization, scalability, and the importance of leveraging database-native capabilities rather than relying solely on application-side processing.
3. Did you meet the course outcomes you planned to meet with this enhancement?
Yes, this enhancement met the course outcomes planned in Module One. In particular, it demonstrates the ability to use well-founded tools and techniques in computing practices in order to deliver value through database design and interaction. Additionally, these enhancements also reflect an understanding of trade-offs involved within database-driven applications, such as performance optimization, data consistency, and efficient querying. No changes to the planned outcome coverage are necessary at this time.
4. Reflect on the process of enhancing and modifying the artifact.
Enhancing this artifact reinforced the importance of designing applications that make effective use of database features, rather than treating the database as a passive data store. Implementing aggregation pipelines and projections highlighted how much work can be offloaded to the database layer in order to improve performance and scalability. One challenge that I encountered was working in a theoretical environment without live database access (being that I cannot connect to the server from the class this project was originally created for); however, this also emphasized the value of sound design principles and clear documentation. Overall, this enhancement strengthened my understanding of database architecture, optimization strategies, and how databases fit into larger software systems.