Software Design & Engineering

This artifact demonstrates improvements to structure, maintainability, documentation, and reliability using professional software engineering practices.

Artifact Overview

Artifact: CS 340 Grazioso Salvare Dashboard (Python/Dash + MongoDB CRUD module)
Originally Created: CS 340 (Advanced Programming Concepts)
Category: Software Design and Engineering

The Grazioso Salvare Dashboard is an interactive application that loads animal shelter records from a MongoDB database and displays them in a searchable table. Users can apply rescue filters, select records, view a mapped location for a chosen animal, and explore basic visualizations (such as breed distribution). The dashboard relies on a separate CRUD module that encapsulates database access and provides create/read/update/delete operations.

Why This Artifact Belongs in My ePortfolio

I selected this artifact because it demonstrates real-world software design challenges that appear in professional development: separating concerns between user interface and database access, designing reusable modules, handling errors gracefully, and writing code that can be maintained and enhanced over time. This project aligns well with my career interests in full-stack and backend development because it represents an application that integrates user-facing behavior with reliable backend services and data handling.

Original Limitations

In the original version, parts of the code were functional but not yet written at a professional standard. Main limitations included: (1) limited documentation for methods and expected inputs/outputs, (2) weaker error handling around database operations and connection issues, (3) inconsistent validation of parameters, and (4) reduced maintainability due to unclear structure and minimal logging.

Enhancements Implemented

For the software design and engineering enhancement, I improved the CRUD module by: (1) adding clearer documentation and type hints to improve readability and maintainability, (2) strengthening error handling for connection and CRUD failures, (3) implementing input validation to prevent invalid operations, and (4) adding basic logging to support debugging and professional-quality diagnostics. These improvements make the module easier to maintain and safer to use in other parts of the application.

Impact of Changes

The enhanced design improves reliability and makes the code easier to extend. Better validation and explicit exceptions reduce unexpected failures. Logging supports faster troubleshooting, and improved structure creates a more professional foundation for future enhancements. Overall, the project is closer to production-quality code and better demonstrates software engineering standards.

Course Outcomes Demonstrated

This artifact supports multiple CS 499 outcomes through professional engineering practices and clear communication:

  • Outcome 2 (Communication): I improved readability through documentation, consistent structure, and clear method behavior that supports technical review and stakeholder understanding.
  • Outcome 4 (Tools & Practices): I demonstrated professional engineering practices by improving modular design, applying logging and error handling, and strengthening maintainability of the CRUD layer.
  • Outcome 5 (Security Mindset): I applied defensive programming via parameter validation and safer database interaction patterns that reduce risk from invalid or unexpected inputs.

Original vs Enhanced Files

The following links provide direct access to the code before and after enhancements.

Key files for this category include CRUD_Python_Module.py and its integration in the dashboard.

Reflection

Enhancing this artifact strengthened my understanding of what “professional-quality code” looks like in practice. I learned that working code is not the same as maintainable code, and that design improvements, such as validation, logging, and clear documentation, make projects easier to scale and safer to modify. A key challenge was ensuring that improvements to the CRUD module remained compatible with the dashboard and did not break existing functionality. Testing and iterative refinement helped confirm that the enhanced structure improved reliability while maintaining the expected behavior of the overall application.