A modern Flutter app that helps users discover and adopt pets from nearby shelters, connect with a pet-loving community, and share stories. Built with Firebase, GetX, and a polished onboarding experience, this app empowers users to browse, filter, favorite, adopt animals, and engage socially β all from their phone.
| Feature | Description |
|---|---|
| π’ Splash Screen | Clean app launcher with initial setup |
| π± Onboarding + Auth | Firebase login, signup, and onboarding flow |
| π Authentication | Email/Password and Google Sign-In via Firebase |
| πΆ Pet Listings | Browse pets with real images, filters, and shelter info |
| β€οΈ Favorites | Save favorite pets for later |
| π Add a Pet | Post a new pet for adoption with images |
| π§ Real-Time Updates | Firestore updates reflect live across the app |
| ποΈ Bottom Navigation | Animated notch bottom bar for modern navigation |
| π€ User Profile | Edit user info, view saved pets, and more |
| π Dark & Light Theme | Adaptive themes based on system preferences |
| π¨ Clean UI | Modern, minimal, pet-friendly design |
| β‘ Fast UX | Built using GetX for reactive, performant state management |
| πΈ Community Page | Share pet stories, post media, like/comment, follow users |
| π Push Notifications | Get notified about new pets, community posts, and interactions |
| Technology | Purpose |
|---|---|
| Flutter | App development framework |
| Firebase | Backend (Auth, Firestore, Storage, Cloud Messaging) |
| GetX | State management and routing |
| animated_notch_bottom_bar | Animated bottom navigation |
| Iconsax | Icon set for modern UI |
| Carousel Slider | Show pet images in carousels |
| CachedNetworkImage | Optimized image caching/loading |
| Feature | Description |
|---|---|
| Post Creation | Upload pet photos/videos with captions and tags |
| Reactions | Like and comment on posts |
| Follow System | Follow/unfollow users to personalize your feed |
| Explore Feed | Discover trending pet stories and adoption updates |
| Real-Time Updates | Posts, likes, and comments appear instantly via Firestore |
lib/
βββ core/ # Global constants, themes, colors
βββ controllers/ # GetX Controllers for all screens
βββ models/ # Data models (User, Pet, Post, etc.)
βββ views/ # UI screens
β βββ home/
β βββ category/
β βββ community/
β βββ profile/
βββ widgets/ # Reusable widgets
βββ firebase_options.dart
βββ main.dart
class MyColors {
static const Color primaryColor = Color(0xFFFFA726);
static const Color secondaryColor = Color(0xFF81D4FA);
static const Color accent = Color(0xFFAED581);
static const Color darker = Color(0xFF616161);
static const Color buttonDark = Color(0xFF4F4F4F);
static const Color buttonLight = Color(0xFFF4F4F4);
static const Color selectedButton = Color(0xFFCE93D8);
}Fonts: GoogleFonts + System fonts. Consistent text hierarchy via ThemeData.
- Clone the Repo
git clone https://github.com/your-username/pet_adoption_app.git
cd pet_adoption_app
flutter pub get-
Set up Firebase
- Add your google-services.json and GoogleService-Info.plist
- Enable Email/Password and Google Sign-In in Firebase Auth
- Set up Firestore DB and Storage
- Configure Firebase Cloud Messaging for push notifications
dependencies:
animated_notch_bottom_bar: ^1.0.3
build_runner: ^2.6.0
carousel_slider: ^5.1.1
cloud_firestore: ^6.0.0
connectivity_plus: ^6.1.4
cupertino_icons: ^1.0.8
equatable: ^2.0.7
firebase_auth: ^6.0.0
firebase_cloud_messaging_flutter: ^1.0.6
firebase_core: ^4.0.0
flutter:
sdk: flutter
flutter_local_notifications: ^19.4.0
firebase_messaging: ^16.0.0
flutter_native_splash: ^2.4.6
flutter_staggered_grid_view: ^0.7.0
get: ^4.7.2
get_storage: ^2.1.1
getx_test: ^1.0.3
google_fonts: ^6.3.0
google_sign_in: ^6.2.2
iconsax: ^0.0.8
intl: ^0.20.2
logger: ^2.6.1
lottie: ^3.3.1
shimmer: ^3.0.0
supabase: ^2.8.0
supabase_flutter: ^2.9.1
url_launcher: ^6.3.2
uuid: ^4.5.1Open to suggestions and contributions! Please submit a PR or open an issue before major changes.
β€οΈ Made with Flutter β For pet lovers everywhere.