Josseph Downs

Back to Home

Enhancement One: Software Design and Engineering

Artifact Description

The artifact selected for this enhancement is RateMyLandlord, a full-stack Ruby on Rails web application that allows tenants to search for landlords, create reviews, manage profiles, and share rental experiences with other users. The application includes user authentication, landlord management, review creation, search functionality, and database integration. The project was originally created outside of coursework while working professionally as a software engineer and was approved for use as my CS 499 artifact because it demonstrates a broad range of software engineering concepts and real-world application development.

Justification for Inclusion

I selected this artifact because it represents the strongest example of my software engineering abilities and aligns closely with my professional experience. The application demonstrates full-stack development through the integration of user interfaces, backend logic, database interactions, and user authentication workflows. It also provides opportunities to showcase software architecture, maintainability, security considerations, and user experience improvements.

Several components of the application highlight my software development skills, including the landlord search functionality, review management system, user registration and authentication features, profile management pages, and responsive user interface design. These features demonstrate my ability to build applications that support real-world business requirements while maintaining usability and scalability.

For this enhancement, I focused on improving the software design and maintainability of the application’s view layer. The original implementation contained duplicated code, inconsistent Bootstrap styling, repetitive form structures, and opportunities for improved user experience. I enhanced the application by standardizing page layouts, improving navigation consistency, restructuring forms, improving responsiveness, correcting interface issues, and applying more consistent design patterns throughout the application. These improvements make the application easier to maintain, easier to extend, and more user friendly.

Artifact Files

Course Outcomes

The enhancement successfully addressed the course outcomes identified in Module One.

Course Outcome 2 was demonstrated through the redesign of the user interface and the creation of a more consistent and professional user experience. The enhanced views provide clearer communication to users and improve the presentation of information.

Course Outcome 3 was demonstrated by evaluating design trade-offs and implementing solutions that improve maintainability and usability while preserving existing functionality.

Course Outcome 4 was demonstrated through the use of software engineering practices, Ruby on Rails development techniques, Bootstrap framework integration, and structured application design improvements that increase the overall value of the application.

Course Outcome 5 was demonstrated by maintaining secure authentication workflows, improving form handling practices, and ensuring that user interactions continue to follow secure application design principles.

At this time, my outcome coverage remains consistent with the plan established in Module One and does not require significant modification.

Reflection

Enhancing this artifact reinforced the importance of maintainable software design and thoughtful user interface development. While the original application functioned correctly, the enhancement process demonstrated that software quality extends beyond functionality. Readability, consistency, maintainability, and user experience all contribute to the overall effectiveness of a software solution.

One of the most valuable lessons learned was the importance of reducing duplication and establishing consistent design patterns throughout an application. Standardized layouts and reusable design structures make future enhancements significantly easier and reduce the likelihood of introducing defects during development.

The primary challenge was improving the application while preserving existing functionality. Because many pages shared similar structures, modifications required careful testing to ensure changes did not negatively affect other areas of the application. Balancing improved maintainability with preserving existing behavior helped strengthen my understanding of software engineering trade-offs.

Overall, this enhancement provided valuable experience applying professional software engineering practices to an existing application. The project strengthened my understanding of maintainable application design, user-centered development, and scalable software architecture while supporting my long-term goal of advancing as a software engineer and AI solutions architect.


Back to Home Enhancement Two: Algorithms and Data Structure Enhancement Three: Databases