Skip to content

JAE20/furever

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

3 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Furever Pet Adoption System

A comprehensive console-based Java application for managing pet adoption processes in animal shelters and rescue centers.

πŸ“‹ Table of Contents

🎯 Overview

The Furever Pet Adoption System is designed to streamline the pet adoption process by providing a structured way to manage pets, adopters, and adoption requests. The system includes comprehensive CRUD operations, user authentication, and detailed reporting features.

✨ Features

Core Functionality

  • User Management: Admin login system with role-based access
  • Pet Management: Complete pet profile management with health tracking
  • Adopter Management: Comprehensive adopter information system
  • Adoption Request Management: Full lifecycle management of adoption requests
  • Guest Access: Limited read-only features for public viewing

Key Capabilities

  • βœ… CRUD operations for all entities
  • βœ… Input validation and error handling
  • βœ… Database connection management
  • βœ… Real-time statistics and reporting
  • βœ… Status tracking for pets and requests
  • βœ… Search and filter functionality
  • βœ… User-friendly console interface

πŸ“ Project Structure

furever/
β”œβ”€β”€ furever.sql                          # Database schema
β”œβ”€β”€ README.md                           # This file
└── src/main/java/com/furever/
    β”œβ”€β”€ MainMenu.java                   # Main application entry point
    β”œβ”€β”€ database/
    β”‚   └── DbConnection.java           # Database connection handler
    β”œβ”€β”€ models/                         # Data models
    β”‚   β”œβ”€β”€ User.java
    β”‚   β”œβ”€β”€ Adopter.java
    β”‚   β”œβ”€β”€ Pet.java
    β”‚   β”œβ”€β”€ PetType.java
    β”‚   β”œβ”€β”€ PetOwner.java
    β”‚   β”œβ”€β”€ AdoptionRequest.java
    β”‚   β”œβ”€β”€ Adoption.java
    β”‚   └── PetMedia.java
    β”œβ”€β”€ crud/                           # CRUD operations
    β”‚   β”œβ”€β”€ UserCRUD.java
    β”‚   β”œβ”€β”€ AdopterCRUD.java
    β”‚   β”œβ”€β”€ PetCRUD.java
    β”‚   β”œβ”€β”€ PetTypeCRUD.java
    β”‚   └── AdoptionRequestCRUD.java
    β”œβ”€β”€ dashboard/                      # User interfaces
    β”‚   β”œβ”€β”€ UserDashboard.java
    β”‚   β”œβ”€β”€ AdopterDashboard.java
    β”‚   β”œβ”€β”€ PetDashboard.java
    β”‚   └── AdoptionRequestDashboard.java
    └── utils/
        └── InputValidator.java         # Input validation utilities

πŸ”§ Prerequisites

  • Java Development Kit (JDK) 11 or higher
  • MySQL Server 5.7 or higher
  • MySQL JDBC Driver (mysql-connector-java)
  • IDE with Java support (VS Code, IntelliJ IDEA, Eclipse)

πŸš€ Setup Instructions

1. Database Setup

  1. Install MySQL Server on your system
  2. Create the database:
    CREATE DATABASE furever;
  3. Import the schema:
    mysql -u root -p furever < furever.sql

2. Project Configuration

  1. Clone or download the project files
  2. Add MySQL JDBC Driver to your classpath:
    • Download mysql-connector-java-8.0.x.jar
    • Add to your project's classpath

3. Database Connection Configuration

Update the database connection settings in DbConnection.java if needed:

private static final String DB_URL = "jdbc:mysql://localhost:3306/furever";
private static final String DB_USERNAME = "root";
private static final String DB_PASSWORD = "your_password";

πŸ—„οΈ Database Configuration

The system uses the following default configuration:

  • Host: localhost
  • Port: 3306
  • Database: furever
  • Username: root
  • Password: (empty)

Default Data

The database comes pre-populated with:

  • Admin User: username: admin1, password: admin123
  • Sample Pet Types: Dog, Cat
  • Sample Pets: Buddy (Dog), Mittens (Cat)
  • Sample Adopters: Alice Johnson, Mark Cruz

▢️ Running the Application

Using Command Line

  1. Compile the Java files:

    cd src/main/java
    javac -cp .:mysql-connector-java-8.0.x.jar com/furever/*.java com/furever/*/*.java
  2. Run the application:

    java -cp .:mysql-connector-java-8.0.x.jar com.furever.MainMenu

Using IDE

  1. Import the project into your IDE
  2. Add MySQL JDBC driver to the project libraries
  3. Run the MainMenu.java class

πŸ“– User Guide

Login Options

  1. Admin Login:

    • Use credentials: admin1 / admin123
    • Full access to all system features
  2. Guest Access:

    • View-only access to pets and basic statistics
    • No login required

Admin Features

User Management

  • Create, view, update, and delete user accounts
  • Manage admin and adopter roles
  • View user statistics

Pet Management

  • Add new pets with complete profiles
  • Update pet information and status
  • Track adoption status (Available/Pending/Adopted)
  • Search pets by various criteria

Adopter Management

  • Register new adopters
  • Maintain adopter contact information
  • Track adopter history

Adoption Request Management

  • Create adoption requests
  • Approve or reject requests
  • Track request status and history
  • Generate adoption reports

Navigation

  • Use number keys to select menu options
  • Press Enter to confirm selections
  • Follow on-screen prompts for data entry
  • Use Ctrl+C to exit the application

πŸ—οΈ System Architecture

Design Patterns Used

  • MVC Pattern: Separation of models, views (dashboards), and controllers (CRUD)
  • Singleton Pattern: Database connection management
  • DAO Pattern: Data access object pattern for database operations

Database Design

  • Normalized schema with proper foreign key relationships
  • Referential integrity maintained across all tables
  • Optimized indexes for better query performance

Error Handling

  • Input validation for all user inputs
  • Database error handling with meaningful messages
  • Connection management with automatic cleanup
  • Exception handling throughout the application

πŸ”§ Troubleshooting

Common Issues

  1. Database Connection Failed

    • Check MySQL service is running
    • Verify database credentials in DbConnection.java
    • Ensure database furever exists
  2. ClassNotFoundException: MySQL Driver

    • Add mysql-connector-java.jar to classpath
    • Verify JDBC driver version compatibility
  3. Access Denied for User

    • Check MySQL user permissions
    • Update password in DbConnection.java
  4. Table Doesn't Exist

    • Import the furever.sql file
    • Check database name is correct

Performance Tips

  • Connection Pooling: For production use, implement connection pooling
  • Batch Operations: For bulk data operations, use batch processing
  • Index Optimization: Monitor query performance and add indexes as needed

πŸ“ˆ Future Enhancements

  • Web-based interface
  • Email notifications for adoption updates
  • Photo upload functionality
  • Advanced reporting and analytics
  • Multi-location support
  • Mobile application

🀝 Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Test thoroughly
  5. Submit a pull request

πŸ“„ License

This project is developed for educational purposes. Feel free to use and modify as needed.

πŸ“ž Support

For issues or questions, please check the troubleshooting section or contact the development team.


Furever Pet Adoption System - Helping pets find their forever homes! 🐾

About

joysisgroupproject

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages