Original Grazios Rescue Project

Java Command-Line Application

Project Overview

The original Grazios Rescue System was a Java-based command-line application developed in January 2023 for IT-145. This project served as the foundation for my capstone enhancements, which transformed it into a comprehensive Node.js web application with MongoDB integration.

The original project implemented a simple object-oriented system for tracking rescue animals (dogs and monkeys) through inheritance, allowing users to:

  • Intake new animals (dogs and monkeys)
  • Reserve animals for service
  • View lists of available animals
  • Track training status and service locations

Core Classes

RescueAnimal.java

Base class defining common properties for all rescue animals:

//IT-145 Grazios Project
// Adam Vosburg
// 01/28/2023

import java.lang.String;

public class RescueAnimal {

    // Instance variables
    private String name;
    private String animalType;
    private String gender;
    private String age;
    private String weight;
    private String acquisitionDate;
    private String acquisitionCountry;
    private String trainingStatus;
    private boolean reserved;
    private String inServiceCountry;

    // Constructor
    public RescueAnimal() {
    }

    // Getters and setters...
}

Dog.java

Specialized class for dog rescue animals:

//IT-145 Grazios Project
// Adam Vosburg
// 01/28/2023

public class Dog extends RescueAnimal {

    // Instance variable
    private String breed;

    // Constructor
    public Dog(String name, String breed, String gender, String age,
    String weight, String acquisitionDate, String acquisitionCountry,
    String trainingStatus, boolean reserved, String inServiceCountry) {
        setName(name);
        setBreed(breed);
        setGender(gender);
        setAge(age);
        setWeight(weight);
        setAcquisitionDate(acquisitionDate);
        setAcquisitionLocation(acquisitionCountry);
        setTrainingStatus(trainingStatus);
        setReserved(reserved);
        setInServiceCountry(inServiceCountry);
    }

    // Getters, setters, and toString method...
}

Monkey.java

Specialized class for monkey rescue animals:

//IT-145 Grazios Project
// Adam Vosburg
// 01/28/2023

public class Monkey extends RescueAnimal {

    // Instance variable
    private String species;
    private String tailLength;
    private String height;
    private String bodyLength;

    // Constructor
    public Monkey(String name, String species, String age, String gender, 
    String weight, String tailLength, String height, String bodyLength, String acquisitionDate, String acquisitionCountry,
    String trainingStatus, boolean reserved, String inServiceCountry) {
        setName(name);
        setSpecies(species);
        setGender(gender);
        setAge(age);
        setWeight(weight);
        setTailLength(tailLength);
        setHeight(height);
        setBodyLength(bodyLength);
        setAcquisitionDate(acquisitionDate);
        setAcquisitionLocation(acquisitionCountry);
        setTrainingStatus(trainingStatus);
        setReserved(reserved);
        setInServiceCountry(inServiceCountry);
    }

    // Getters, setters, and toString method...
}

From Java to Node.js: The Evolution

The original Java project laid the groundwork for the concepts and data models that were later implemented in the enhanced Node.js application. Key transitions included:

  • Java Classes → MongoDB Schemas: Converting the inheritance model to MongoDB's discriminator pattern
  • Command Line → RESTful API: Transforming user interactions into HTTP endpoints
  • In-Memory Lists → Database Collections: Moving from ArrayList storage to persistent MongoDB collections
  • Basic Methods → Complex Algorithms: Evolving simple getters/setters into sophisticated matching algorithms

This evolution demonstrates my growth as a developer, from implementing basic object-oriented principles to developing a comprehensive web application with advanced features like schema inheritance, transaction support, and sophisticated matching algorithms.