Professional Self-Assessment
Throughout the Computer Science program, I have developed a stronger understanding of what it means to build software that is useful, organized, maintainable, and secure. My coursework has exposed me to software engineering, databases, algorithms, cybersecurity, full-stack development, testing, and project planning. As I have moved through the program, my career goals have become more focused on practical software development, especially web applications, backend development, and tools that solve real problems for users.
Developing this ePortfolio helped me connect the skills I learned across multiple courses into one complete project. The main artifact in this portfolio is my Flask-based resume website. I enhanced this artifact in three major areas: software design and engineering, algorithms and data structures, and databases. These enhancements show my ability to improve an existing application, add meaningful functionality, evaluate design decisions, and organize code in a way that supports future growth.
The software engineering enhancement improved the structure and usability of the site through navigation updates, project revisions, and better organization. The algorithms enhancement added an interactive sorting algorithm visualizer that compares algorithms on the same dataset and displays performance metrics. The database enhancement integrated SQLite so project and algorithm information could be stored in a database and rendered dynamically through Flask routes and templates.
This portfolio also reflects growth in communication and collaboration. Using GitHub branches helped separate each enhancement and made the development process easier to track. Writing narratives and preparing a code review required me to explain technical decisions clearly for an audience that may include instructors, peers, or future employers. These experiences helped me understand that software development is not only about writing code, but also about explaining decisions, documenting progress, and creating work that others can understand.
Security has also become an important part of how I think about software. Through coursework and this project, I have learned to consider data handling, validation, maintainability, and potential design flaws earlier in the development process. While this portfolio is not a large production system, the process of improving it helped me practice a security-focused mindset and think more carefully about how software should be structured and protected.
This portfolio also reflects growth in communication and collaboration. Using GitHub branches helped separate each enhancement and made the development process easier to track. Writing narratives and preparing a code review required me to explain technical decisions clearly for an audience that may include instructors, peers, or future employers. These experiences helped me understand that software development is not only about writing code, but also about explaining decisions, documenting progress, and creating work that others can understand.
Overall, this ePortfolio demonstrates my growth as a computer science student and my preparation to continue developing as a software professional. It brings together practical programming, web development, algorithmic thinking, database integration, communication, and secure design principles into one cohesive project.
Code Review
The code review video will provide a walkthrough of the original artifact, identify areas for improvement, and explain the planned enhancements for software engineering, algorithms and data structures, and databases.
Enhancement One: Software Design and Engineering
This enhancement improved the structure, usability, and professional presentation of the Flask resume website. I added clearer navigation, improved project organization, updated portfolio content, and made the site easier to use as a professional portfolio.
Before Enhancement
After Enhancement
After Enhancement: Projects Section
Enhancement Two: Algorithms and Data Structures
This enhancement added an interactive algorithm visualizer to the portfolio site. The visualizer allows users to compare sorting algorithms using the same dataset and view performance metrics such as comparisons, swaps, runtime, and winner results.
Before Enhancement
After Enhancement: Visualizer
After Enhancement: Comparison Results
Enhancement Three: Databases
This enhancement integrated a SQLite database into the Flask website. Project information and algorithm metadata were moved from hardcoded HTML into database records. Flask now retrieves this data through a database access layer and renders it dynamically in the website templates.
Before Enhancement: Hardcoded Content
After Enhancement: Database Files
After Enhancement: Dynamic Projects