/web_utility_app

Applied the concepts of GitFlow, Test Driven Development, S.O.L.I.D, Cohesion and Coupling, and Design Patterns in Java programming language to develop a simple web utility application using Spring framework. The application is deployed using Heroku.

Primary LanguageJava

Web Utility Application - CSCI5308 project

Topic: Advanced Software Development Concepts (https://academiccalendar.dal.ca/Catalog/ViewCatalog.aspx?pageid=viewcatalog&entitytype=CID&entitycode=CSCI+5308)

Instructor: Dr. Robert Hawkey (https://www.linkedin.com/in/roberthawkey?originalSubdomain=ca)

• Understood professional programming in an environment where quality is paramount.

• Understood the importance of integrating quality assurance into programming practices.

• Applied Agile methodology to develop this project.

• Used appropriate tools to automate builds, deployment and configuration.

• Understood GitFlow.

• Analyze and applied test driven development to the software project.

• Implemented the S.O.L.I.D. principles of object-oriented design (single responsibility, open/closed,Liskov substitution, interface segregation, dependency inversion).

• Understood and implemented the principles of cohesion and coupling and avoid their misuse.

• Understood how to write clean, readable code.

• Applied design patterns and analyzed the benefits of using existing code / APIs.

• Recognized code smells and refactored the code to avoid them.

• Understood the importance of establishing boundaries in the systems (i.e. data, business logic, display logic)

• Understood the importance of the consistent application of naming conventions.

• Understood the concept of technical debt and the long-term costs of bad code.

• Analyzed and improved the existing code through refactoring.

• Identified and addressed the fragility and inflexibility in code.