Welcome to the Zoo Management System (ZOOtopia)! This project is an Object-Oriented Programming (OOP) example designed to help manage a zoo's operations. It includes functionalities for both administrators and visitors, such as managing animals, attractions, events, tickets, and special deals. This guide provides detailed instructions on how to set up and use the system, along with a breakdown of its features.
Make sure you have the following installed on your machine:
- Java Development Kit (JDK) 8 or higher
- Apache Maven
- Download the Project: Download the
2022435_SambhavGautam.zip
file and unzip it. - Navigate to the Project Directory:
cd ZooSystem
- Build the Project:
- Clean the project:
mvn clean
- Compile the source code:
mvn compile
- Package the project into a JAR file:
mvn package
- Clean the project:
- Run the Application:
- Navigate to the
target
directory:cd target
- Run the application using the JAR file:
java -jar ZooSystem-1.0-SNAPSHOT.jar
- Navigate to the
Admins can manage various aspects of the zoo including attractions, animals, events, discounts, and visitor stats. Here are the main features available to the Admin:
- Manage Attractions: Add, view, modify, and remove zoo attractions.
- Manage Animals: Add new animals, update their details, remove them, or view a list of all zoo animals.
- Schedule Events: Manage events, open or close attractions, and set or update ticket prices.
- Set Discounts: Define, modify, or remove discounts for different categories (e.g., Minor, Student, Senior).
- Set Special Deals: Add or remove special deals, such as discounts based on the number of attractions visited.
- View Visitor Stats: Check the total number of visitors and the total profit earned.
- View Feedback: Review feedback left by visitors.
Visitors can interact with the zoo in multiple ways:
- Explore the Zoo: View available attractions and animals.
- Buy Membership: Purchase a zoo membership for additional perks.
- Buy Tickets: Purchase tickets for attractions.
- View Discounts: See the discounts available for different categories.
- View Special Deals: Check out any special deals currently being offered.
- Visit Animals: Interact with or view detailed information about the animals in the zoo.
- Visit Attractions: Visit and learn more about various zoo attractions.
- Leave Feedback: Provide feedback on their zoo experience.
The system gracefully handles input mismatches and other exceptions to ensure a smooth user experience.
The zoo system uses polymorphism to manage different types of animals. The Animal
class is extended by specific animal classes (e.g., Mammal
, Reptile
, Amphibian
), each overriding methods like feed
and read
for unique behavior in the "Visit Animal" section.
Six animals are hardcoded into the system to be present in the zoo by default:
- Simba - A majestic lion 🦁
- Coco - A playful chimpanzee 🐵
- KomodoDragon - A fearsome Komodo dragon 🐉
- Rattler - A venomous rattlesnake 🐍
- Frog - A bullfrog 🐸
- Stripes - A tiger salamander 🦎
For specific animal types, the user must enter exact subcategories to proceed:
- Mammals:
mammaltype1
ormammaltype2
- Reptiles:
reptiletype1
orreptiletype2
- Amphibians:
amphibiantype1
oramphibiantype2
📝 Note: Ensure the correct spelling is used when entering these subcategories!
The default ticket price for all attractions is set to 101.0.
Here is a quick sample run demonstrating how to navigate the system:
-
Start the application:
java -jar ZooSystem-1.0-SNAPSHOT.jar
-
The main menu will appear with options for both Admin and Visitor:
+---------------------------+ | Welcome to ZOOtopia! | +---------------------------+ | 1. Enter as Admin | | 2. Enter as Visitor | | 3. View Special Deals | | 4. Exit | +---------------------------+
-
Admin Workflow Example:
- Enter as Admin and use the credentials:
- Username:
admin
- Password:
admin123
- Username:
- Manage attractions, animals, set discounts, and view visitor stats.
- Enter as Admin and use the credentials:
-
Visitor Workflow Example:
- Register or log in as a visitor.
- Explore the zoo, buy tickets, view animals, and leave feedback.
-
View and Manage Discounts and Deals:
- Admins can add, modify, or remove discounts.
- Special deals can be set up, such as discounts for purchasing multiple attractions.
The Zoo Management System (ZOOtopia) provides a comprehensive platform for managing a zoo's operations effectively. Whether you are an admin managing the backend operations or a visitor exploring the zoo, this system offers a range of functionalities to enhance your experience.
Enjoy managing and exploring ZOOtopia! 🌿🦓🦒🐘🐍
Feel free to contribute or report any issues to help us improve the system!