diff --git a/.vscode/settings.json b/.vscode/settings.json
new file mode 100644
index 0000000..c5f3f6b
--- /dev/null
+++ b/.vscode/settings.json
@@ -0,0 +1,3 @@
+{
+ "java.configuration.updateBuildConfiguration": "interactive"
+}
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index bde0b59..08ced97 100644
--- a/pom.xml
+++ b/pom.xml
@@ -9,4 +9,12 @@
1.0-SNAPSHOT
+
+
+
+ junit
+ junit
+ 4.13.2
+
+
\ No newline at end of file
diff --git a/src/main/java/com/zipcodewilmington/centrallibrary/Book.java b/src/main/java/com/zipcodewilmington/centrallibrary/Book.java
new file mode 100644
index 0000000..db39c7c
--- /dev/null
+++ b/src/main/java/com/zipcodewilmington/centrallibrary/Book.java
@@ -0,0 +1,52 @@
+package com.zipcodewilmington.centrallibrary;
+
+public class Book extends LibraryItem {
+ private String author;
+ private String genre;
+ private String isbn;
+ private int pages;
+
+
+
+ public Book(String author, String genre, String isbn, int numberOfPages) {
+
+ this.author = author;
+ this.genre = genre;
+ this.isbn = isbn;
+ this.pages = numberOfPages;
+
+ }
+
+
+ public String getAuthor() {
+ return author;
+ }
+ public void setAuthor(String author) {
+ this.author = author;
+
+ }
+
+ public String getGenre() {
+ return genre;
+ }
+ public void setGenre(String genre) {
+ this.genre = genre;
+ }
+
+ public String getIsbn() {
+ return isbn;
+ }
+
+ public void setIsbn(String isbn) {
+ this.isbn = isbn;
+ }
+
+ public int getPages() {
+ return pages;
+ }
+ public void setPages(int pages) {
+ this.pages = pages;
+
+ }
+}
+
diff --git a/src/main/java/com/zipcodewilmington/centrallibrary/BookTest.java b/src/main/java/com/zipcodewilmington/centrallibrary/BookTest.java
new file mode 100644
index 0000000..9357472
--- /dev/null
+++ b/src/main/java/com/zipcodewilmington/centrallibrary/BookTest.java
@@ -0,0 +1,21 @@
+package com.zipcodewilmington.centrallibrary;
+
+public class BookTest {
+
+public static void main(String[] args) {
+
+ Book book = new Book("A100", "The Great Gatsby", "Aisle 3", 180);
+
+
+ System.out.println(book.getAuthor());
+ System.out.println(book.getGenre());
+ System.out.println(book.getPages());
+ System.out.println(book.isAvailable());
+ System.out.println(book.getLocation());
+ System.out.println(book.getId());
+ System.out.println(book.getTitle());
+
+}
+
+
+}
diff --git a/src/main/java/com/zipcodewilmington/centrallibrary/LibraryItem.java b/src/main/java/com/zipcodewilmington/centrallibrary/LibraryItem.java
new file mode 100644
index 0000000..776cd2b
--- /dev/null
+++ b/src/main/java/com/zipcodewilmington/centrallibrary/LibraryItem.java
@@ -0,0 +1,80 @@
+package com.zipcodewilmington.centrallibrary;
+
+
+public class LibraryItem {
+ private int id;
+ private String title;
+ private String location;
+ private boolean isAvailable;
+ private String isbn;
+
+//constructor
+
+
+ public LibraryItem() {
+
+ }
+
+ public LibraryItem(int id, String title, String location){
+ this.id = id;
+ this.title = title;
+ this.location = location;
+ this.isAvailable = true;
+
+ //getters and setters
+
+ }
+ public int getId() {
+ return id;
+ }
+ public void setId(int id) {
+ this.id = id;
+ }
+
+ public String getTitle() {
+ return title;
+ }
+ public void setTitle(String title) {
+ this.title = title;
+ }
+
+ public String getLocation() {
+ return location;
+ }
+ public void setLocation(String location) {
+ this.location = location;
+ }
+
+ public boolean isAvailable() {
+ return isAvailable;
+ }
+ public void setAvailable(boolean available) {
+ isAvailable = available;
+ }
+
+ public void checkOut() {
+ this.isAvailable = false;
+ }
+
+ public void checkIn() {
+ this.isAvailable = true;
+
+ }
+ public String getIsbn() {
+ return isbn;
+ }
+ public void setIsbn(String isbn) {
+ this.isbn = isbn;
+ }
+
+
+
+
+
+
+
+
+
+}
+
+
diff --git a/src/main/java/com/zipcodewilmington/centrallibrary/MainApplication.java b/src/main/java/com/zipcodewilmington/centrallibrary/MainApplication.java
index c914d10..d8e8bed 100644
--- a/src/main/java/com/zipcodewilmington/centrallibrary/MainApplication.java
+++ b/src/main/java/com/zipcodewilmington/centrallibrary/MainApplication.java
@@ -1,4 +1,4 @@
-package com.zipcodewilmington.centralibrary;
+package com.zipcodewilmington.centrallibrary;
/**
* Created by n3pjk on 6/9/2025.
diff --git a/src/test/Reservable.java b/src/test/Reservable.java
new file mode 100644
index 0000000..d8fd84a
--- /dev/null
+++ b/src/test/Reservable.java
@@ -0,0 +1,11 @@
+package library;
+
+class LibraryMember {
+
+}
+public interface Reservable {
+ void reserve(LibraryMember member);
+ void cancelReserve(LibraryMember member);
+ boolean isReserved();
+
+}
diff --git a/src/test/Searchable.java b/src/test/Searchable.java
new file mode 100644
index 0000000..0433ff5
--- /dev/null
+++ b/src/test/Searchable.java
@@ -0,0 +1,5 @@
+public interface Searchable {
+ boolean matchesKeyword(String keyword);
+ String[] getSearchableFields();
+ }
+
diff --git a/src/test/java/com/zipcodewilmington/centrallibrary/Address.java b/src/test/java/com/zipcodewilmington/centrallibrary/Address.java
new file mode 100644
index 0000000..c15725e
--- /dev/null
+++ b/src/test/java/com/zipcodewilmington/centrallibrary/Address.java
@@ -0,0 +1,32 @@
+package com.zipcodewilmington.centrallibrary;
+
+
+
+public class Address{
+ private String street;
+ private String city;
+ private String state;
+ private String zipcode;
+
+ public Address(String street, String city, String state, String zipcode) {
+ this.street = street;
+ this.city = city;
+ this.state = state;
+ this.zipcode = zipcode;
+ }
+
+ public String getStreet() {return street; }
+ public String getCity() {return city; }
+ public String getState() {return state; }
+ public String getZipcode() {return zipcode; }
+
+ public void SetStreet(String street) {this.street = state; }
+ public void SetCity(String city) {this.city = city; }
+ public void SetState(String state) {this.state = state; }
+ public void SetZipcode(String zipCode) {this.zipcode = zipCode; }
+
+ @Override
+ public String toString() {
+ return street + ", " + city + ", " + state + ", " + zipcode;
+ }
+}
\ No newline at end of file
diff --git a/src/test/java/com/zipcodewilmington/centrallibrary/AddressTest.java b/src/test/java/com/zipcodewilmington/centrallibrary/AddressTest.java
new file mode 100644
index 0000000..1a48f82
--- /dev/null
+++ b/src/test/java/com/zipcodewilmington/centrallibrary/AddressTest.java
@@ -0,0 +1,25 @@
+package com.zipcodewilmington.centrallibrary;
+
+import org.junit.Assert;
+import org.junit.Test;
+
+public class AddressTest {
+
+ @Test
+ public void testAddressConstructorAndGetters() {
+ // given
+ String street = "123 North St.";
+ String city = "Narnia";
+ String state = "Fairytaleland";
+ String zipcode = "12345";
+
+ // when
+ Address address = new Address (street, city, state,zipcode);
+
+ Assert.assertEquals(street, address.getStreet());
+ Assert.assertEquals(city, address.getCity());
+ Assert.assertEquals(state, address.getState());
+ Assert.assertEquals(zipcode, address.getZipcode());
+ }
+
+}
diff --git a/src/test/java/com/zipcodewilmington/centrallibrary/Library.java b/src/test/java/com/zipcodewilmington/centrallibrary/Library.java
new file mode 100644
index 0000000..f207cb4
--- /dev/null
+++ b/src/test/java/com/zipcodewilmington/centrallibrary/Library.java
@@ -0,0 +1,16 @@
+package com.zipcodewilmington.centrallibrary;
+
+import java.util.Scanner;
+
+public class Library {
+
+ public static String name(String libraryNameString) {
+ Scanner scanner = new Scanner(System.in);
+ System.out.println(libraryNameString);
+ String userInput = scanner.nextLine();
+ return userInput;
+ }
+
+
+
+}
diff --git a/src/test/java/com/zipcodewilmington/centrallibrary/LibraryMember b/src/test/java/com/zipcodewilmington/centrallibrary/LibraryMember
new file mode 100644
index 0000000..e69de29
diff --git a/src/test/java/com/zipcodewilmington/centrallibrary/MainApplicationTest.java b/src/test/java/com/zipcodewilmington/centrallibrary/MainApplicationTest.java
index f706f32..daa47d7 100644
--- a/src/test/java/com/zipcodewilmington/centrallibrary/MainApplicationTest.java
+++ b/src/test/java/com/zipcodewilmington/centrallibrary/MainApplicationTest.java
@@ -1,7 +1,9 @@
-package com.zipcodewilmington.centralibrary;
+package com.zipcodewilmington.centrallibrary;
/**
* Created by n3pjk on 6/9/2025.
*/
public class MainApplicationTest {
+
+
}
diff --git a/src/test/java/com/zipcodewilmington/centrallibrary/Person.java b/src/test/java/com/zipcodewilmington/centrallibrary/Person.java
new file mode 100644
index 0000000..5018f75
--- /dev/null
+++ b/src/test/java/com/zipcodewilmington/centrallibrary/Person.java
@@ -0,0 +1,37 @@
+
+package com.zipcodewilmington.centrallibrary;
+
+public final class Person {
+ private String name;
+ private String phoneNumber;
+ private int age;
+ private String email;
+
+ public Person(String name, int age, String email, String phoneNumber) {
+ this.name = name;
+ this.phoneNumber = phoneNumber;
+ setAge(age);
+ this.email = email;
+ }
+
+ public String getName() {return name; }
+
+ public String getPhoneNumber() {return phoneNumber; }
+ public int getAge() {return age; }
+ public String getEmail() {return email;}
+
+ public void setName(String name) {this.name = name; }
+
+ public void setPhoneNumber(String phoneNumber) {this.phoneNumber = phoneNumber; }
+ public void setAge(int age) {
+ if (age < 0) throw new IllegalArgumentException("Age cannot be negative.");
+ this.age = age;
+ }
+ public void setEmail(String email) {this.email = email; }
+
+ @Override
+ public String toString() {
+ return name + ", " + phoneNumber + ", " + age + ", " + email;
+ }
+}
+
diff --git a/src/test/java/com/zipcodewilmington/centrallibrary/PersonTest.java b/src/test/java/com/zipcodewilmington/centrallibrary/PersonTest.java
new file mode 100644
index 0000000..a9eb483
--- /dev/null
+++ b/src/test/java/com/zipcodewilmington/centrallibrary/PersonTest.java
@@ -0,0 +1,34 @@
+package com.zipcodewilmington.centrallibrary;
+
+
+import org.junit.Test;
+import org.junit.Assert;
+
+
+public class PersonTest {
+
+ @Test
+ public void testPersonConstructorAndGetters() {
+ // given
+ String name = "Joe";
+ String phoneNumber = "302-555-1111";
+ String email = "joeschmo@gmail.com";
+ int age = 30;
+
+ // when
+ Person person = new Person (name, age, email, phoneNumber);
+
+ Assert.assertEquals(name, person.getName());
+ Assert.assertEquals(phoneNumber, person.getPhoneNumber());
+ Assert.assertEquals(email, person.getEmail());
+ Assert.assertEquals(age, person.getAge());
+ }
+ @Test
+ public void testSetAge_negativeAge_throwsException() {
+ Person person = new Person("Joe", 30, "joeschmo@gmail.com", "123-456-7890");
+
+ Assert.assertThrows(IllegalArgumentException.class, () -> {
+ person.setAge(-1);
+ });
+ }
+}
diff --git a/src/test/java/person.java b/src/test/java/person.java
new file mode 100644
index 0000000..a6304f4
--- /dev/null
+++ b/src/test/java/person.java
@@ -0,0 +1,45 @@
+
+public class person {
+ private String name;
+ private String email;
+ private String phoneNumber;
+ private int age;
+ //constructor initialized variable instances that belong to the person class
+
+ public person(String name, String email, String phoneNumber, int age) {
+ this.name = name;
+ this.email = email;
+ this.phoneNumber = phoneNumber;
+ this.age = age;
+ }
+ //getters and setters for the person class
+ public String getName() {
+ return name;
+ }
+ public int getAge() {
+ return age;
+ }
+ public String getEmail() {
+ return email;
+ }
+ public String getPhoneNumber() {
+ return phoneNumber;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+ public void setEmail(String email) {
+ this.email = email;
+ }
+ public void setPhoneNumber(String phoneNumber) {
+ if (phoneNumber == null || phoneNumber.trim().isEmpty()) {
+ throw new IllegalArgumentException("Phone number cannot be null or empty");
+ }
+ this.phoneNumber = phoneNumber;
+}
+@Override
+ public String toString() {
+ return "person{" + "name='" + name + '\'' + ", email='" + email + '\'' + ", phoneNumber='" + phoneNumber + '\'' + ", age=" + age +'}';
+ }
+}
\ No newline at end of file