Skip to content

tiffgom/Client-Server-Development

Repository files navigation

Client-Server-Development

Dashboard Screen Cast

Dashboard Screencast

Programming

How do you write programs that are maintainable, readable, and adaptable? Especially consider your work on the CRUD Python module from Project One, which you used to connect the dashboard widgets to the database in Project Two. What were the advantages of working in this way? How else could you use this CRUD Python module in the future?

Following best coding practices by utilizing functions, properly naming variables, and producing well-commented code creates a program that is maintainable, readable, and adaptable. This was especially important when developing the CRUD Python module which serves as the "Glue" level of this multi-tiered application. The module is responsible for the basic functionality of the program that communicates the data from the MongoDB database to the user's dashboard interface. The module's readability not only allowed me to easily identify what function is needed to call from the python web application to retrieve all data from MongoDB, but in future use, if I wish to expand upon the program to give the user more functionality, I can easily identify which functions to call for updating, removing, or updating entries which in turn makes the program adaptable. Likewise, the maintainability of the program is displayed during troubleshooting issues. It is simple to understand, maintain, and reuse a program that can be tested by sections because it is more efficient to search and find errors. As a result, the CRUD Python module is a versatile and easily modifiable CRUD python class with a testing script that could be instantiated to perform in different projects to connect a database to an interface by any developer.

Approach as a Computer Scientist

How do you approach a problem as a computer scientist? Consider how you approached the database or dashboard requirements that Grazioso Salvare requested. How did your approach to this project differ from previous assignments in other courses? What techniques or strategies would you use in the future to create databases to meet other client requests?

As a computer scientist, I approached the problem by first analyzing each level of the program to understand the role of the base, glue, and client level in the application and how they connect. Then it was a matter of developing a solution for each level. By beginning at the base level, I focused on being able to access and query the database which is one of the more fundamental aspects of the program. At the next level, the glue level, I could focus solely on functionality and testing the module's ability to manipulate and connect to the database. By the time I reached the client level and begin creating the dashboard for users to the interface, I was confident in my program's ability to access and interact with the database and could then focus on developing features with the client in mind and developing the queries to call from the database. My approach differed from previous assignments as I found myself not looking at the overall project but breaking the project up into levels and really understanding, testing, and finding solutions for each component. I understood that as a multi-tiered application it could be more difficult to identify errors and debug the program, which is why I found the technique of working and testing smaller sections of each level a technique I will use in the future to meet other client's requests in terms of not only databases but all projects in general. Employing this stragtey will help me improve my ability to identify the client's requirments and establish the program's requirments as a result of them.

Role in Project as a Computer Scientist

What do computer scientists do, and why does it matter? How would your work on this type of project help a company, like Grazioso Salvare, to do their work better?

Computer scientists employ various programming skills and languages to advantageously use technology to solve problems. This may include creating computer software, web applications, developing websites, etc... They are important because as innovators that study complex issues and study viable computing solutions, they excel at solving them in a way that promotes friendly interaction between the technology and users. The client Grazioso Salvare was looking for a solution to creating an application that allowed a user to quickly filter through hundreds of data from different animal shelters to efficiently identify dogs with certain criteria that would be suitable for rescue missions. Through a well-tested backend application and an intuitive interface, using the best tools to effectively build the program, I helped Grazioso Salvare enable their users to easily navigate a user-friendly web application that offers simple features to efficiently filter and categorize different breeds of dogs in relation to a rescue type and display the data in the form of a data table, a pie chart, and a geolocation chart which accurately and immediately updates to reflect a user's selections.

About

No description or website provided.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published