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.