Pushpa Laxman ePortfolio

SNHU CS499 - Computer Science Capstone

View project on GitHub

Welcome

My ePortfolio showcases a comprehensive understanding of essential elements of computer science, such as programming languages, algorithms, data structures, and software development techniques that I gained and developed during my time studying Computer Science at Southern New Hampshire University (SNHU).   In my portfolio, I showcase projects that demonstrate designing, developing, and enhancing software solutions by employing best practices, coding methodologies, and the latest tools across multiple areas, including backend services, web applications, and system-driven frameworks.

Table of Content

Professional Self-Assessment
Code Review
Refinement Plan and Video Links
Software Design and Engineering
Algorithms and Data Structure
Databases

Professional Self-Assessment

Welcome to my CS499 Capstone ePortfolio. This page presents some of the work I've done as an undergraduate student at Southern New Hampshire University. Throughout the program, I consistently looked forward to acquiring new skills, ranging from computer systems and programming to developing cutting-edge technology. It was my passion for working with computers and technology that drew me to this program, where I refined my ability to solve complex problems, think critically, and contribute to the advancement of various fields.

During my course, I have been able to enhance my abilities, highlighting my drive, analytical skills, and strong understanding of the different elements and tools necessary for effective planning and programming. Additionally, the expertise I have gained in various programming languages, including Java, Python, and SQL, as well as development tools and IDEs, has improved my capabilities.

The technical competencies I have developed include problem-solving in coding, debugging, building robust applications, ensuring data security, and troubleshooting, all while placing a strong emphasis on adhering to industry best practices and standards. Coding in simple blocks and testing as part of my workflow helps me improve these skills and abilities by being organized, cautious, and cautious. As a project becomes more complex, testing becomes increasingly complicated to ensure that a program functions properly and has no weaknesses or vulnerabilities. This program has made me more adept at making informed design choices, managing tradeoffs related to performance and scalability, and effectively communicating technical solutions. My passion for exploring new concepts and quickly mastering the skills needed drives me to excel and pushes me to achieve greater heights.

In my first project, I showcase my understanding of software engineering and design through a weight-tracking app designed to monitor a user's weight and health. This project emphasizes the user interface, where I applied object-oriented design principles to create software that is reliable, scalable, and easy to maintain. The second project focuses on Algorithms and Data Structures, featuring a website for an animal rescue organization with a training dashboard designed to recruit dogs for search-and-rescue initiatives. For my third project, I utilize MongoDB databases to examine and manipulate data through Python in the Jupyter environment.

By actively participating in peer review every week through general discussion, I gained valuable insights, built stronger relationships with my colleagues, and ultimately improved the quality of my work. It provides a platform for giving and receiving constructive feedback, thereby enhancing skills in delivering and interpreting feedback effectively. It is essential to consider security throughout the entire process, rather than leaving it until the end, as this will help improve my coding skills. My ability to analyze code enables me to identify mistakes and vulnerabilities that I might have overlooked during my focus on code development. Using best practices and standards, I produce formatted, understandable, and maintainable software code and systems. Similarly, seeking help from peers to review my work is another way to enhance my attention to detail and communication skills. Reviewing my work from a new perspective allows me to promptly identify mistakes I may have missed.

Throughout my course, I focus on developing a potent combination of technical and soft skills. It was helpful for me to learn about how the SDLC works by analyzing, designing, coding (implementation), testing, and maintaining, a step that is crucial for delivering high-quality software products. This course provided insights into algorithms, data structures, and security flaws, which have proven to be incredibly useful for tackling challenges efficiently and enhancing software performance. To succeed as a computer scientist, one must have a firm grasp of algorithms such as sorting, searching, and graphs, as well as data structures such as arrays, linked lists, and trees.

My experience in the Computer Science Program has helped me learn and improve my skills, Emphasizing my motivation, problem-solving skills, and solid grasp of the various components and tools essential for planning and programming. I developed skills in problem-solving and analytical thinking, as well as the ability to break down complex problems into smaller, manageable components. Additionally, staying informed about the latest technologies and trends is essential. The importance of focusing on details cannot be overstated when programming, debugging software, or conducting data analysis.

Code Review

Code review is often referred to as a peer assessment of code, which helps developers ensure or improve code quality and identify and rectify errors that may have been missed during the initial development stage before integration and deployment. In other words, code reviews are a practice focused on maintaining software quality, wherein one or more individuals or tools methodically inspect and evaluate the program's source code. After a software developer completes coding, they can easily make mistakes. With this in mind, code reviews provide an excellent opportunity to gain a different perspective on the solutions and implementations, helping to identify bugs, logical errors, overlooked edge cases, or other concerns so we can collaboratively resolve them and prevent mistakes.

The goals of this course included an informal code review where I assessed projects from three prior courses to evaluate both the strengths and weaknesses of the code, as well as suggested improvements that encompassed software engineering, data structures and algorithms, and database elements. Through the enhancements I selected, I was able to demonstrate my ability to fulfill all five course outcomes.

Course Outcomes

1) Employ strategies for building collaborative environments that enable diverse audiences to support organizational decision-making in the field of computer science.
2) Design, develop, and deliver professional-quality oral, written, and visual communications that are coherent, technically sound, and appropriately adapted to specific audiences and contexts
3) Design and evaluate 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.
4) Demonstrate an ability to use well-founded and innovative techniques, skills, and tools in computing practices for the purpose of implementing computer solutions that deliver value and accomplish industry-specific goals.
5) Develop 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.

Artifact 1: Software Design and Engineering

This artifact was a suitable choice for my portfolio, as it encompassed the entire software design and engineering process. In addition to the design of the user experience, it involves the user's interaction with the different screens and actions that the application includes. It gives use the exposure to understand how Activities (screens) and Fragments (reusable UI components) are structured and how they interact within your app. Also, you learn how to use Intents to navigate between Activities. It will broaden our concepts on how to design user interfaces using XML, defining the visual structure and layout of your app, apply Material Design principles for a modern, consistent, and user-friendly UI, create custom UI elements to meet specific design requirements and also teach how to create adaptable layouts for various screen sizes and resolutions.

Weight tracking App Screenshot Through its industry-standard icons and symbols, it ensures intuitive usage of the application. In addition to their algorithms and data structure between the different classes and methods, and their layout and source code, it includes design and engineering considerations. A relational database is used to store the data generated, read, updated, and deleted by users of the application. The debugging tools in Android Studio will also enable you to identify and fix errors in your code. Different types of testing (unit, UI, integration) can be used to ensure your app is functional and stable, as well as Git and platforms like GitHub to manage your code, collaborate with others, and track changes.

Artifact 2: Algorithm and Data Structures

This artifact was chosen because it provides exposure to designing and implementing MongoDB databases, querying data effectively, and exploring and manipulating data using Python and the Jupyter environment. Additionally, this project will establish user authentication for administrators and users, and provide access to data via a MongoDB database, thereby gaining hands-on experience in data modeling, indexing, and other advanced MongoDB concepts.

  Animal Shelter Screenshot With the help of a database, the project will make animal information accessible to users. The CRUD process involves creating, reading, updating, and deleting animals in an animal database. In addition to its official Python driver, MongoDB provides PyMongo as well. There are a number of ways to communicate with MongoDB servers using PyMongo. The program allows you to write and delete data, run queries, retrieve retrieval results, access databases, and execute database commands. With the help of an interactive dashboard (buttons, drop-downs), the Outcomes data from the Austin Animal Center was filtered.  

Artifact 3: Databases

As the selected artifact for the databases category, we are featuring Grazioso Salvare, an organization dedicated to finding dogs suitable for search-and-rescue training, who seeks a Rescue Web App. The purpose of this web application is to develop an interactive and fully functional dashboard that can identify and sort available dogs based on the information from Austin's animal shelters. As part of the CS340 Client/Server development course, a web application was conceptualized and created. This full-stack application uses Model, View, and Controller development patterns.

Animal Dashboard Screenshot The model layer represents the underlying data/database used in development, while the view layer represents the user-facing visual representation. In user interfaces (UIs), users communicate with the requested data. A MongoDB database is used for this project. The view layer uses Dash Plotly, while the controller layer uses Python with Pymongo, relying on Dash Leaflet. In addition to querying, retrieving results, writing and deleting data, and running database commands, this application performs many database operations.

Code review videos feature an assessment of the three chosen artifact codes for the capstone project, focusing on their shortcomings and vulnerabilities, along with a description of my strategy for improvements. The code review involves a detailed examination of the current source code, providing a concise overview of the project, its purpose, and what the application accomplishes. Following this, I assessed the provided checklist in relation to the existing source code, discussing its limitations and sharing my insights on the proposed enhancements across three categories: software design and engineering artifacts, algorithms and data structures, and databases.

Through the creation of these videos, I am enhancing my skills in professional communication across written, verbal, and visual channels. Furthermore, I am ensuring that my code review presentation is effectively communicated in a collaborative setting and that I express my ideas clearly and concisely.

In the artifact of the Code analysis, I illustrate the key components of the current code and its operation. This segment examines the capabilities and performance of the current code.

Code Review: Highlight areas requiring improvement concerning structure, documentation, security, testing, loops, functionality, comments, etc.

Planned Improvements: This section outlines the intended enhancements that address the concerns identified during the code review.

Software Design and Engineering

The chosen artifact for the code review of software design and engineering is the Weight Tracking Mobile App. This application was created as part of the computer science course CS360 Mobile Architecture and Programming. Its primary objective is to allow users to monitor their weight through an Android device. The development and programming tool used for this project is Android Studio IDE. The app was created using Android Studio, the official development environment for Android devices. The application is developed using the JAVA programming language and integrates with an SQLite database. Android Studio employs Gradle as a build system to run the apps on an Android emulator.



Planned upgrades include implementing input validation for usernames and passwords, enhancing error handling, creating a dedicated account page for new users, and adding graphs or charts to help users track their weight progress or changes. With these enhancements, I aim to improve data security, enhance account management and login functionalities, safeguard account information, ensure accessibility, and make the interface more user-friendly while also addressing exception handling.

CS360 Mobile Architecture and Programming - Weight Tracking Mobile App - Enhancement

Weight Tracking App Final Paper- Narrative

Artifact Original files repository at - CS360 Mobile Architecture and Programming - Weight Tracking Mobile App - Repository

Artifact enhancement files repository at - CS360 Mobile Architecture and Programming - Weight Tracking Mobile App - Repository

The planned enhancement for the CS project ( Mobile Architecture and Programming) aligns with the following course outcomes:

Course outcomes:

[Course Outcome 1]. Employ strategies for building collaborative environments that enable diverse audiences to support organizational decision-making in the field of computer science.


I have developed a well-designed user interface that adheres to design principles intended to create collaborative environments, as outlined in my refinement plan. With this approach, users can easily navigate the interface and enjoy a user-friendly experience across screens and activities. Also, my software solutions allow developers to create visually appealing and consistent user interfaces that align with their app requirements, ensuring accuracy in scale and design, and simulating the implications of UI/UX more efficiently and accurately. My experience with Android Studio has also significantly enhanced my ability to solve problems, think analytically, and work effectively in a collaborative environment.These improvements demonstrate my ability to utilize strategies that foster collaborative environments, empowering diverse groups to contribute to organizational decision-making within the field of computer science.

[Course Outcomes: 3]: Design and evaluate 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.


   Through my knowledge of website goals and requirements, design standards, and current industry trends, I've created more realistic and captivating UI/UX designs for this weight-tracking app. Utilizing modular components, I've optimized the design of the artifact and enhanced its efficiency, demonstrating my ability to improve software performance and refine the design process, which benefits both visual design and effective development. These actions demonstrate my ability to create and evaluate computing solutions that address a specific problem by applying algorithmic principles and relevant computer science practices and standards, while also considering the trade-offs associated with design decisions.

[Course Outcomes: 4]: Demonstrate an ability to use well-founded and innovative techniques, skills, and tools in computing practices for the purpose of implementing computer solutions that deliver value and accomplish industry-specific goals.


The enhancements I made align with the intended learning outcomes, enhancing my skills in designing layouts, user interfaces, and the overall visual appeal of web pages. Digital products, including Web UIs, commonly incorporate graphical user interfaces (GUIs) with graphical components such as windows, drop-down menus, buttons, scroll bars, and icons. Utilizing the visual tools in Android Studio, particularly the Layout Editor, I developed the UI and personalized its look and functionality by specifying colors, styles, and themes in XML files. These actions demonstrate my ability to apply established and innovative techniques, skills, and tools in computing practices to develop computer solutions that deliver value and achieve industry-specific objectives.

[Course Outcome 5]: Develop a security mindset that anticipates adversarial exploits in software architecture and designs to expose potential vulnerabilities.


The transition involves configuring user accounts and applying input validation and output encoding to maintain data integrity and mitigate code execution vulnerabilities. I have also established appropriate authorization controls to limit user permissions according to the principle of least privilege, ensuring that only registered users have access to the website. By implementing these extensive security measures, I am significantly enhancing the security posture of my mobile app, thereby safeguarding user data and fostering trust in the application.

Algorithms and Data Structures

The code review for algorithms and data structures pertains to the Animal Shelter class. This program was planned, designed, and developed as part of the Computer Science curriculum, specifically the CS 340 Client-Server Development course. In this project, the Model-View-Controller (MVC) development pattern was used to create an interactive web-based dashboard. It was designed to provide interactive and fully functional training for an animal rescue organization that identifies dogs suitable for their search-and-rescue training programs, where dogs are trained to rescue humans and other dogs.



The application is structured as a monolithic architecture, which limits its flexibility and scalability due to a tightly coupled codebase. I have decomposed the code into smaller, individual services, ensuring that each service can be independently built, developed, and tested. Additionally, I have utilized advanced operations, as the list will facilitate sorting algorithms such as sorting, searching, and filtering, which are beneficial for dynamic data in this complex application. With these enhancements, I have improved the data structures and algorithms of the Animal Shelter class, thereby boosting the overall performance and value of the system.

CS340 Client/Server Development - Grazioso Salvare Rescue Web Application - Enhancement

Rescue Web App Final Paper- Narrative

Artifact Original files repository at - CS340 Client/Server Development - Grazioso Salvare Rescue Web Application - Repository

Artifact enhancement files repository at - CS340 Client/Server Development - Grazioso Salvare Rescue Web Application - Repository

The planned enhancement for the CS 340 project (Client/Server Development ) aligns with the following course outcomes:

Course outcomes:

[Course Outcomes: 3]: Design and evaluate 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.


   To demonstrate my ability to create efficient solutions, I refined the Animal Shelter class's data structure and algorithms, utilizing algorithmic principles and computer science practices. The improvement also reflects my ability to make design trade-offs, such as utilizing advanced algorithm operations with Lists, which will enhance data access speed and facilitate operations like Merge sort, Linear search, Time sort, and Binary search, leading to improved performance.

[Course Outcomes: 4]: Demonstrate an ability to use well-founded and innovative techniques, skills, and tools in computing practices for the purpose of implementing computer solutions that deliver value and accomplish industry-specific goals.


By selecting data structures and algorithms creatively, I enhance the system's value and performance. Its primary objective is to offer a scalable and efficient solution for the industry. A further benefit of this distinction is that it helps manage complexity, enhance scalability, and make maintenance easier. Through algorithm optimization, I eliminate unnecessary processes, thereby increasing the program's efficiency. It is possible to enhance the user experience by applying these principles and enhancements to code apps, making them more efficient, performant, and scalable. These actions demonstrate my ability to use established and creative methods, expertise, and resources to build in-demand computer solutions that provide value and achieve industry-specific objectives.

[Course Outcome 5]: Develop a security mindset that anticipates adversarial exploits in software architecture and designs to expose potential vulnerabilities.


The process involves implementing input validation and data sanitization to maintain data integrity and minimize the risk of code execution vulnerabilities. I have also created suitable authorization measures to restrict user access based on the principle of least privilege. Additionally, I have adhered to secure coding standards to safeguard against common security threats, including SQL injection, cross-site scripting, and buffer overflow attacks. These actions demonstrate my ability to adopt a security-oriented perspective that identifies potential adversarial attacks in software design and architecture, revealing possible vulnerabilities.

Databases

Code reviews in databases are an artifact of the Grazioso Salvare Search for Rescue Web Application. This web application was developed as part of the CS340 Client-Server Development course. Leveraging a pre-existing database from animal shelters, the application identifies and classifies available dogs for training in various rescue programs by developing a web interface. This full-stack application uses Model, View, and Controller development patterns. The project utilizes MongoDB in conjunction with the Dash framework within the Python application. Integration between MongoDB and Python is achieved through the PyMongo library. Assessments of the web application are performed using Jupyter Notebook.



The planned enhancement involves utilizing the advanced features of MongoDB by creating indexes on frequently searched attributes such as age, animal ID, type, and color. This will enable the database to find data more rapidly, eliminating the need to scan the entire table, and thus allowing for significant horizontal scalability without altering the application logic. Since the data entered into the database lacks validation, it poses security risks; therefore, I intend to implement stringent input validation as the second enhancement for the project. Furthermore, I plan to conduct all operations directly within the database using Aggregation pipelines, which will remove the necessity for transferring large result sets across the network.

CS340 Client/Server Development - Grazioso Salvare Rescue Web Application - Enhancement

Rescue Web App Database-Narrative

Artifact Original files repository at - CS340 Client/Server Development - Grazioso Salvare Rescue Web Application - Repository

Artifact enhancement files repository at - CS340 Client/Server Development - Grazioso Salvare Rescue Web Application - Repository

The planned enhancement for the CS 340 project (Client/Server Development ) aligns with the following course outcomes:

Course outcomes:

[Course Outcomes: 3]: Design and evaluate 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.


   As part of the proposed improvement, indexing and aggregation are utilized, along with leveraging algorithmic principles to enhance performance, which aligns with CS 340 learning outcomes, particularly in terms of database optimization, data retrieval, and system scalability. By implementing MongoDB indexes and aggregation pipelines, I demonstrated my ability to enhance database performance and efficiency. Optimizing query performance requires creating an index on the animal ID field. Database indexing is a widely accepted method of enhancing database effectiveness, which aligns perfectly with the course outcome of utilizing innovative and well-founded computing methods. Adaptable and efficient data retrieval methods reflect my understanding of performance optimization and user-centric queries. Additionally, developing computing solutions that navigate the tradeoffs involved in design decisions supports the course outcome.

[Course Outcomes: 4]: Demonstrate an ability to use well-founded and innovative techniques, skills, and tools in computing practices for the purpose of implementing computer solutions that deliver value and accomplish industry-specific goals.


In my enhancement, I use MongoDB's indexing and aggregation capabilities to enhance performance and functionality. With the new web application, animal rescue data can now be processed in real-time, providing valuable and useful solutions. By utilizing MongoDB's aggregation framework, I demonstrated my ability to manipulate complex data, producing statistics such as the number of animals by breed type. The ability to craft and assess algorithms-based computing solutions is necessary for this skill. Through aggregation, data can be transformed in intricate ways, such as being filtered, grouped, sorted, and projected, which facilitates analysis and reporting. These actions demonstrate my ability to utilize well-founded and innovative techniques, skills, and tools in computing practices to implement computer solutions that deliver value and achieve industry-specific goals.

[Course Outcome 5]: Develop a security mindset that anticipates adversarial exploits in software architecture and designs to expose potential vulnerabilities.


It is crucial to validate data in databases to maintain data accuracy, integrity, and reliability, ensuring that the data is reliable and trustworthy.  By preventing errors, inconsistencies, and inaccuracies, it helps ensure a successful project. My goal is to mitigate potential security threats by implementing input validation, such as preventing incorrect data entry, while also ensuring the system's integrity and safety. This showcases my ability to develop a security mindset that anticipates adversarial exploits in software architecture and designs, exposing potential vulnerabilities.

References

Smart freelancing platform. Insolvo. (n.d.). https://insolvo.com/development-and-it/web-development/myfreecams-mobile-app

GeeksforGeeks. (2025a, February 3). Aggregation in mongodb. https://www.geeksforgeeks.org/aggregation-in-mongodb/

Shera Adams. (n.d.). https://sheraadams.github.io/ (Referred for git pages)

Mydbops, & Author, A. the. (2025, May 9). MongoDB aggregation: Beginner’s Guide with examples. RSS. https://www.mydbops.com/blog/mongodb-aggregation-guide

Best way to teach data structures and algorithms? | Researchgate. (n.d.-b). https://www.researchgate.net/post/Best_way_to_teach_Data_Structures_and_Algorithms

Team, L. (2024, February 23). Understanding computational thinking for more effective learning. Learning. https://www.learning.com/blog/understanding-computational-thinking/