Grazioso Salvare Rescue Web Application
CS340 Client/Server Development
Overview
A rescue animal training company, Grazioso Salvare, aims to identify dogs that make good candidates for their search-and-rescue training programs. After these dogs are trained, they can rescue both humans and dogs from life-threatening conditions. In collaboration with animal shelters in Austin, Texas, Grazioso Salvare selects dogs for their training program. The Grazioso Salvare dog training program does have a specific profile they are looking for in dogs to train. With the help of this program, GS will be able to identify and categorize available dogs based on existing data from Austin animal shelters. The project aims to enable users to generate new animal entries and locate those already in the database. The purpose of this project is to help organize the shelter’s animal database. Making creating, reading, updating, and deleting database operations functional.
In this project, animal information will be accessible through a database for users to use. An animal database allows the creation, reading, updating, and deleting of animals from the database, also known as CRUD.MongoDB provides an official Python driver called PyMongo. Using PyMongo, you can communicate with a MongoDB server in a variety of ways. The application facilitates querying, retrieving results, writing and deleting data, and running database commands. We built an interactive dashboard with filters for the Austin Animal Center Outcomes data.
Currently, the application is modular enough. Modules are separated from the core codebase rather than being integrated into it, which makes the codebase more readable and easier to maintain. This project uses MongoDB as a database. Dash Plotly and Dash Leaflet comprise the view layer, and Python using Pymongo makes up the controller layer. In this project I have established user authentication for administrators and users, and access data via a MongoDB database, thereby gaining more hands-on experience in data modeling, searching, sorting, filtering and other advanced MongoDB concepts. Authentication and authorization of a user are managed based on user credentials, and user interaction with modules and actions are accountable for CRUD operations. In order to ensure that the services can all be deployed separately, I divided them into smaller, reusable, and maintainable units, including modules, functions, and classes.
Rescue Web App Final Paper- Narrative
Reflection
In this artifact, I have successfully 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 refining the Animal Shelter class’s data structure and algorithms. Using advanced algorithm operations with a List that enhanced data access speed and facilitated operations, I thereby showcase my ability to make design trade-offs for improved performance. In my enhancements, I also illustrate the engineering aspects of the relationships and functions among various classes and methods by utilizing arguments, parameters, and variables within scope, which reflects my capability to apply sound and creative techniques, skills, and computational tools to develop computer solutions that provide value and achieve goals specific to the industry.
I demonstrate proficiency in applying established and creative computing methods, skills, and tools to develop computer solutions that provide value and meet industry-specific objectives by optimizing algorithms, reducing unnecessary processes, and enhancing the program’s efficiency. I have also Developed a security mindset that anticipates adversarial exploits in software architecture and designs to expose potential vulnerabilities. My implementation of input validation and exception handling has improved data security and safeguarded account information, while enhancing accessibility and user-friendliness, both of which are crucial. I enhanced my understanding of CRUD (Create, Read, Update, Delete) operations within MongoDB. This allowed me to enhance these tools for data-centric projects and deepen my understanding of the data analysis workflow.