View on GitHub

Brandon Lombard

This is my final project for CS-499, Computer Science Capstone at SNHU.

Computer Science Capstone

CS-499 | SNHU

CODE REVIEW

A code review involves quality assurance on a particular project by reviewing its source code and output. This is highly important to the success of computer science professionals, since it ensures a level of consistency in the development of a project and allows for a higher level of coding standards to be met.

You can watch the code review here.

Project 1: Software Engineering and Design

The first artifact of this portfolio is a Mehanic Service Order Website, where customers can fill out a form with their chosen services and see the total cost. This is an example of my full stack capabilities.

See the artifact's report and code here.

Project 2: Algorithms and Data Structures

This project is a vacation destination slide show that was written in Java. It displays my knowledge of Object Oriented Programming, along with the implementation of design aspects.

See the artifact's report and code here.

Project 3: Databases

This database project has a Python TKinter GUI that uses SQLite to communicate with a database. Therefore, displaying my knowledge of collecting and interpreting data.

See the artifact's report and code here.

Professional Self-Assessment

My time in the Computer Science program at Southern New Hampshire University has assisted in shaping my professional goals and values. It has prepared me to become an asset to prospective employers. This ePortfolio shows my ability to plan and develop industry-standard code and software programs. Although this is not a complete reflection of my work in this program, it still depicts my knowledge in three categories: Software Design and Engineering, Algorithms and Data Structures, and Databases.

The first project displays my knowledge of Software Design and Engineering. It is a mechanic shop webform that allows customers to order services online for their vehicle. This focuses on my full stack skillset, where I designed a front-end website that utilizes JavaScript and allows the items to be purchased. The second project, which focuses on Algorithms and Data Structures, is a vacation destination slideshow that displays an image and information about a vacation spot. It was written in Java, exhibiting my Object-Oriented capabilities with classes. Finally, my third project focuses on databases which involve a Python application that uses SQLite to communicate with a database. This project also displays my ability in functional programming.

I have gained knowledge in these categories, including several other important topics, such as collaborating in a team environment, communicating with stakeholders, and security. During the Computer Science program, I’ve completed multiple activities that involve working in a team to develop and plan the development of Software. Particularly during my time in CS-310, Team Collaboration and Project. During this course, multiple assignments were completed while working as a team, such as conducting changelogs and code reviews. Additionally, I have experience communicating with stakeholders to ensure a well-rounded product in numerous classes. To include my work in Software Development Lifecycle, where I gained knowledge for each role in a team software environment, such as QA, product owner, project manager, developer, etc. Security was another segment of my studies, where I’ve taken multiple courses that teach these concepts, including Secure Coding, Reverse Software Engineering, and Client Server Development. Particularly in Secure Coding, I learned about creating security policies and types of vulnerabilities in software programs.

Course Outcome 1: I Employed strategies for building collaborative environments that enable diverse audiences to support organizational decision-making in the field of computer science by completing the code review before beginning my enhancements. The code review is vital to the success of software projects, as it allows developers to fully understand which areas may be improved, alongside an in-depth analysis. This allows for organizational decision-making to be conducted properly. One enhancement that also has met this outcome is Project 3: Databases. This project entailed a front-end database using Python and SQLite. This project easily allows for building a collaborative environment in which data may be entered by anyone easily, even those without programming experience.

Course Outcome 2: I Designed, Developed, and Delivered professional-quality oral, written, and visual communications that are coherent, technically sound, and appropriately adapted to specific audiences and contexts by completing Project 1: Software Engineering and Design. This project heavily relies on a front-end design that, since it is meant for a business, should be professionally developed with both an appropriate design and professionally written content. It is visually coherent and technically sound in that the front-end and back end work seamlessly to provide a pleasant and easy experience to the customer.

Course Outcome 3: I Designed and Evaluated computing solutions that solve a given problem using algorithmic principles and computer science practices and standards appropriate to its solution while managing the trade-offs involved in design choices by completing Project 2: Algorithms and Data Structures. For this project, I enhanced a Java Slideshow with an updated design and functionality. This project used Object-Oriented Programming techniques, where each item had its class, such as each button on the screen, for example. I was able to make multiple enhancements, not only to the design but to the functionality of the buttons. I added a random button, which gives the user a random destination from the list of options. This makes the program more appealing, as they do not have to go in order using just the next and previous buttons. Additionally, I was able to upgrade the design and therefore manage trade-offs involved in design choices. This project needed a bit of updating, so I implemented a color scheme after importing new modules to be used in the program. I also was able to fix design issues, such as parts of the button being cut off depending on screen size by using new methods and functions.

Course Outcome 4: I Demonstrated an ability to use well-founded and innovative techniques, skills, and tools in computing practices to implement computer solutions that deliver value and accomplish industry-specific goals by completing Project 1: Software Engineering and Design. For this project, I built and enhanced a Mechanic Shop Website where prospective customers could order their chosen services and the total is output on the screen. This outcome was met because both a backend and frontend were developed, which required full-stack knowledge to complete the project, from working with HTML, CSS, and JavaScript. The innovative techniques used in this project include a responsive website and form. The web form can know if a user fills it out entirely, and if they miss an item such as their first name, last name, or phone number, the empty fields fill with red. This project also meets industry-specific goals in that it is a web form that allows customers to select their chosen services.

Course Outcome 5: I Developed a security mindset that anticipates adversarial exploits in software architecture and designs to expose potential vulnerabilities, mitigate design flaws, and ensure privacy and enhanced security of data and resources by completing Project 3: Databases. Since this project works with data, it was imperative to ensure security measures were in place. Firstly, this database is held on a local file and not through the internet, with the database files themselves having basic encoding so they cannot be read easily. Additionally, all input data is entered as a string that gets added to the database when a button is pressed. Multiple SQL Injection techniques have been tested on this project, such as 105; DROP TABLE addresses. All attempts to conduct SQL Injection were unsuccessful, therefore this program is a secure product.