A comprehensive console-based Java application for managing pet adoption processes in animal shelters and rescue centers.
- Overview
- Features
- Project Structure
- Prerequisites
- Setup Instructions
- Database Configuration
- Running the Application
- User Guide
- System Architecture
- Troubleshooting
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.
- 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
- β 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
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
- 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)
- Install MySQL Server on your system
- Create the database:
CREATE DATABASE furever;
- Import the schema:
mysql -u root -p furever < furever.sql
- Clone or download the project files
- Add MySQL JDBC Driver to your classpath:
- Download
mysql-connector-java-8.0.x.jar - Add to your project's classpath
- Download
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";The system uses the following default configuration:
- Host: localhost
- Port: 3306
- Database: furever
- Username: root
- Password: (empty)
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
-
Compile the Java files:
cd src/main/java javac -cp .:mysql-connector-java-8.0.x.jar com/furever/*.java com/furever/*/*.java
-
Run the application:
java -cp .:mysql-connector-java-8.0.x.jar com.furever.MainMenu
- Import the project into your IDE
- Add MySQL JDBC driver to the project libraries
- Run the
MainMenu.javaclass
-
Admin Login:
- Use credentials:
admin1/admin123 - Full access to all system features
- Use credentials:
-
Guest Access:
- View-only access to pets and basic statistics
- No login required
- Create, view, update, and delete user accounts
- Manage admin and adopter roles
- View user statistics
- Add new pets with complete profiles
- Update pet information and status
- Track adoption status (Available/Pending/Adopted)
- Search pets by various criteria
- Register new adopters
- Maintain adopter contact information
- Track adopter history
- Create adoption requests
- Approve or reject requests
- Track request status and history
- Generate adoption reports
- 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
- MVC Pattern: Separation of models, views (dashboards), and controllers (CRUD)
- Singleton Pattern: Database connection management
- DAO Pattern: Data access object pattern for database operations
- Normalized schema with proper foreign key relationships
- Referential integrity maintained across all tables
- Optimized indexes for better query performance
- Input validation for all user inputs
- Database error handling with meaningful messages
- Connection management with automatic cleanup
- Exception handling throughout the application
-
Database Connection Failed
- Check MySQL service is running
- Verify database credentials in
DbConnection.java - Ensure database
fureverexists
-
ClassNotFoundException: MySQL Driver
- Add
mysql-connector-java.jarto classpath - Verify JDBC driver version compatibility
- Add
-
Access Denied for User
- Check MySQL user permissions
- Update password in
DbConnection.java
-
Table Doesn't Exist
- Import the
furever.sqlfile - Check database name is correct
- Import the
- 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
- Web-based interface
- Email notifications for adoption updates
- Photo upload functionality
- Advanced reporting and analytics
- Multi-location support
- Mobile application
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
This project is developed for educational purposes. Feel free to use and modify as needed.
For issues or questions, please check the troubleshooting section or contact the development team.
Furever Pet Adoption System - Helping pets find their forever homes! πΎ