Computer Science Homework Help

SNHU Apply Database Systems Concepts and Principles Project

 

Competencies

In this project, you will demonstrate your mastery of the following competencies:

  • Apply database systems concepts and principles in the development of a client/server application
  • Create a database that can interface with client-side code

Scenario

You work for Global Rain, a software engineering company that specializes in custom software design and development. Your team has been assigned to work on a project for an innovative international rescue-animal training company, Grazioso Salvare. You have been made the lead developer on this project.

As part of its work, Grazioso Salvare identifies dogs that are good candidates for search-and-rescue training. When trained, these dogs are able to find and help to rescue humans or other animals, often in life-threatening conditions. To help identify dogs for training, Grazioso Salvare has reached an agreement with a non-profit agency that operates five animal shelters in the region around Austin, Texas. This non-profit agency will provide Grazioso Salvare with data from their shelters.

In meeting with the client, Grazioso Salvare, you have discovered that they look for certain profiles in dogs to train. For instance, search-and-rescue training is generally more effective for dogs that are no more than two years old. Additionally, certain breeds of dogs are proficient at different types of rescue, such as water rescue, mountain or wilderness rescue, locating humans after a disaster, or finding a specific human by tracking their scent.

Grazioso Salvare is seeking a software application that can work with existing data from the animal shelters to identify and categorize available dogs. Global Rain has contracted for a full stack development of this application that will include a database and a client-facing web application dashboard, through which users at Grazioso Salvare will access the database. The full stack development will be fully completed in Projects One and Two.

Grazioso Salvare has also requested that the code for this project be open source and accessible on GitHub, so that it may be used and adapted by similar organizations. To that end, they have asked that you also create a README file to accompany your work.

In Project One, you will complete the first phase of this development by creating a database in MongoDB that can interact with client-side code. You will also create an initial README file to accompany your code. In Project Two, later in this course, you will complete the second phase of development by updating the database, producing the dashboard, and updating the README file to explain the full stack development.

Directions

Database Commands and CRUD Python Module
For your work on Project One, you will incorporate two previously completed milestones. First is the indexing for optimizing queries and authentication for database security, which you completed in the Module Three Milestone. Second is the CRUD (Create, Update, Read, and Delete) functionality for the animal database, which you began in the Module Four Milestone and will complete in this project.

You have been asked to create a database for the Grazioso Salvare project that is able to interface with client-side code. In order to do so, you must complete the following:

  1. Upload the Austin Animal Center Outcomes data set into MongoDB by inserting a CSV file using the appropriate MongoDB import tool. The data set is located in the Supporting Materials section. Complete the import using the mongoimport tool and take screenshots of both the import command and its execution. These screenshots will later be included in your README file.

    Note: If you completed the Module Three Milestone, you have already completed this step. Be sure to include your screenshots from the Module Three Milestone in your README file.

  1. Create an administrator account and a user account in the mongo shell to ensure user authentication to the database and collection that was created. Be sure to take a screenshot of the mongo shell execution command screen that shows your login process with both accounts. This screenshot will later be included in your README file.

    Note: If you completed the Module Three Milestone, you have already completed this step. Be sure to include your screenshots from the Module Three Milestone in your README file.

  1. Next, you must develop a Python module in a PY file, using object-oriented programming methodology, to enable CRUD functionality for the database. To support code reusability, your Python code needs to be importable as a module by other Python scripts.

    Develop a CRUD class that, when instantiated, provides the following functionality:

    • A Create method that inserts a document into a specified MongoDB database and collection
      • Input -> argument to function will be a set of key/value pairs in the data type acceptable to the MongoDB driver insert API call.
      • Return -> “True” if successful insert, else “False”.
    • A Read method that queries for document(s) from a specified MongoDB database and specified collection
      • Input -> arguments to function should be the key/value lookup pair to use with the MongoDB driver find API call.
      • Return -> result in cursor if successful, else MongoDB returned error message.
    • An Update method that queries for and changes document(s) from a specified MongoDB database and specified collection
      • Input -> arguments to function should be the key/value lookup pair to use with the MongoDB driver find API call. Last argument to function will be a set of key/value pairs in the data type acceptable to the MongoDB driver insert API call.
      • Return -> result in JSON format if successful, else MongoDB returned error message.
    • A Delete method that queries for and removes document(s) from a specified MongoDB database and specified collection
      • Input -> arguments to function should be the key/value lookup pair to use with the MongoDB driver find API call.
      • Return -> result in JSON format if successful, else MongoDB returned error message.

    As you develop your code, be sure to use industry standard best practices such as proper naming conventions, exception handling, and in-line comments. This will ensure that your code is easy to read and reusable for future projects. Refer to the Python Style Guide, located in the Supporting Materials section, to help with these industry standard best practices.

    Note: If you completed the Module Four Milestone, you have already developed the Create and Read functionality.

  1. Finally, you must test your Python module to make sure that it works. To do this, create a Python script that imports your CRUD Python module to call and test all instances of CRUD functionality. This script should be created in a separate Jupyter Notebook (IPYNB) file, and should import and instantiate an object from your CRUD library to effect changes in MongoDB. Be sure to use the username and password for the “aacuser” account for authentication when instantiating the class. After creating your script, execute it in Jupyter Notebook and take screenshots of the commands and their execution. These screenshots will later be included in your README file.

    Note: If you completed the Module Four Milestone, you have already begun this work. Expand your script to call and test the Update and Delete functionality.

README File
Grazioso Salvare has requested documentation to accompany the CRUD Python module. This will ensure that they are able to understand the work that was completed. It will also help them maintain the code for the database.

To document this project, you must create a README file that includes the following:

  • An explanation of the purpose of the CRUD Python module
  • An explanation of how the module should be used, including:
    • A description of the Python driver for Mongo that was used and why it was chosen
    • An explanation of the attributes and working functionality of the CRUD operations
  • A demonstration of the module’s functional operations, including:
    • Screenshots of the MongoDB import execution. You took these screenshots in Step 1.
    • Screenshots of the user authentication execution. You took these screenshots in Step 2.
    • Screenshots of the CRUD functionality test execution. You took these screenshots in Step 4.

Note: If you completed the Module Four Milestone, you have already begun work on your README file. You will need to add more information to complete your README file and fully document your work in Project One.

What to Submit

To complete this project, you must submit the following:

Database Commands and CRUD Python Module
Submit the IPYNB and PY files containing your code for the project. This includes the Python module that you developed to enable all CRUD functionality and the Python script that calls that functionality. All code files should follow industry standard best practices, including well-commented code.

README File
Your submission should be a Word (DOC or DOCX) file containing an explanation of the Python module that you developed to enable CRUD functionality. In your README file, be sure to include all required screenshots.