Bobby Davis

Software Engineer

ePortfolio

CS-499 Computer Science Capstone

Welcome

My name is Bobby Davis, and I am a passionate and goal-oriented software engineer with a strong foundation in full-stack web development, mobile application development, and secure software design. This portfolio showcases the culmination of my work throughout the Computer Science program at Southern New Hampshire University, including my capstone project where I transformed a Java-based console application into a full-stack web application using Angular, Spring Boot, and MongoDB.

Here you will find detailed explanations of my work in key areas such as software engineering and design, algorithms and data structures, and database development. My goal in this portfolio is to not only present the technical skills I've gained but also demonstrate my ability to build scalable, maintainable, and secure applications that reflect real-world development practices.

I invite you to explore my project walkthroughs, code reviews, and technical demonstrations as you scroll through this page. Thank you for visiting, and I hope this portfolio gives you a clear view of both my technical capabilities and my passion for software engineering.

Professional Self-Assessment

I started the Computer Science program with the goal of transitioning into software engineering. While I had some background in technology and application development, I wanted to develop a much deeper and broader skill set that would prepare me for real-world software engineering roles. Throughout my studies, I've built a strong foundation in programming, data structures, algorithms, web development, mobile development, and database management. My passion for technology has grown even more as I've had the opportunity to design, build, and enhance multiple types of applications using both mobile and full-stack web technologies.

During the program, I developed and published Android applications using Java and Android Studio, which allowed me to gain experience in mobile development, user interface design, and backend integration. As I continued learning, I expanded into full-stack web development, where I worked with both the MEAN (MongoDB, Express, Angular, Node.js) and MERN (MongoDB, Express, React, Node.js) stacks. This helped me develop skills in RESTful API development, asynchronous data handling, secure authentication, and dynamic front-end user experiences. Additionally, I gained experience working with cloud technologies through AWS, including services such as Lambda, DynamoDB, IAM, and API Gateway, allowing me to build scalable, serverless applications with secure access and efficient data management.

For my capstone project, I chose to take a console-based Java application I originally developed — a Rescue Animal Management System — and transform it into a fully functional full-stack web application. This project allowed me to apply everything I've learned throughout the program, while also challenging me to learn new technologies such as Spring Boot, JWT-based authentication, and advanced MongoDB query optimization. My final application combines Angular for the front-end, Spring Boot for the back-end, and MongoDB for the database, providing a modern, scalable, and secure system that reflects professional software development practices.

Throughout this project, I applied key software engineering principles such as modular design, MVC (Model-View-Controller) architecture, and secure coding. I also focused heavily on data structures and algorithms while implementing features like filtering, sorting, and pagination to ensure efficient performance as the dataset grows. I worked extensively with MongoDB to design a flexible schema that can handle dynamic data, and built full CRUD functionality to manage rescue animal records, users, and authentication.

In addition to the technical skills, this program has helped me grow tremendously in my ability to communicate professionally, document my work, and organize complex projects. I've learned how to break large problems into smaller, manageable tasks, and how to clearly communicate my work both through written documentation and code reviews. During assignments and project discussions, I learned the value of clear communication. Writing documentation, managing code with version control (Git/GitHub), participating in peer feedback, and presenting technical work have all helped me develop soft skills that are essential in any software engineering role. These professional skills are equally important as technical abilities, and I feel confident in my ability to contribute to software development teams, collaborate with peers, and engage with clients or stakeholders.

Over the course of my studies, I've also developed a strong security mindset. I now approach application development with an understanding of potential vulnerabilities and the importance of securing user data through proper authentication, authorization, and data handling practices. Implementing secure JWT-based authentication in my capstone project was one example where I applied this mindset directly to a real-world system.

Through this program, I've built a solid foundation in both hard and soft skills that I will carry forward in my professional career. My experience with multiple development stacks, mobile and web applications, secure coding, database design, and system architecture has prepared me to step confidently into a software engineering role. I am excited to continue learning, improving, and contributing to meaningful software projects in the future.

Initial Enhancement Plan

Before beggining development, I created a detailed enhancement plan outlining how I would transform the original console-based Rescue Animal Management System into a modern full-stack application. This plan helped guide the structure, technology stack, and features of the project while ensuring that all enhancements aligned with specific course outcomes.

You can read the full plan here: View the Initial Enhancement Plan on GitHub

Explore the Project

Code Review
This section walks through the original Java console-based application used to manage rescue animals. It includes a direct comparison between the original structure and the enhanced full-stack version. You'll see how the code was refactored for modularity, improved validation, and better data handling, along with an explanation of the updates made to support modern development standards.

Software Design and Engineering
This page explores how the original Java console program was transformed into a full-stack web application using Angular for the frontend, Spring Boot for the backend, and MongoDB for data storage. It highlights the secure login system with JWT, REST API endpoints, MVC design, image handling, and admin-only features, all organized to reflect scalable and maintainable design principles.

Algorithms and Data Structures
This section focuses on the enhancements made to optimize data access and performance. It explains how MongoDB queries replaced manual list scanning, enabling efficient filtering, sorting, and pagination. You'll see the impact of validated backend query construction and dynamic frontend interaction using Angular.

Databases
This page covers how the project evolved from using temporary in-memory ArrayLists to a fully integrated MongoDB solution. It explains how data persistence, model validation, repository interfaces, and schema flexibility were implemented using Spring Boot and MongoDB. Validation rules and real-time feedback on the UI are also demonstrated.

Explore the Source Code and Narratives

Original Java Console-Based Application

This version was developed in IT-145 and serves as the foundation for the full-stack transformation. It manages rescue animals using console input and stores data in memory using ArrayLists.
View Original Console Application on GitHub

Enhanced Full-Stack Web Application

The enhanced version includes a frontend built in Angular, a Spring Boot backend, and MongoDB for persistent storage. It implements modern design principles, secure login, and full CRUD functionality.
View Full-Stack Application on GitHub

Enhancement Narratives

Each enhancement area is explained in a short narrative that outlines the original code, planned improvements, implemented solutions, and course outcomes demonstrated. Narratives are included for each category and can be read here.

Back to Top