PetMate is an Android mobile application built using Kotlin. The app helps pet owners manage their pets, track activities, and connect with other pet lovers.
The application follows modern Android development practices including MVVM architecture, Jetpack Compose, and Firebase integration.
- Add and manage multiple pets
- Track pet activities (walking, feeding, vet visits, etc.)
- Maintain pet care records
- Activity reminders and notifications
- Connect with other pet lovers
- Secure authentication using Firebase
- Modern Material Design UI
- Built with Jetpack Compose
- Language: Kotlin
- Architecture: MVVM
- UI Toolkit: Jetpack Compose
- Backend & Database: Firebase (Authentication & Firestore)
- Design System: Material Design
- Async Handling: Coroutines & Flow
com.yourpackage.petmate
│
├── data # Data sources, models, repositories
├── ui # Screens and Compose UI components
├── viewmodel # ViewModels (MVVM)
├── utils # Utility classes
└── di # Dependency injection (if used)
git clone https://github.com/Chamalka20/PetMate- Open Android Studio
- Select Open an Existing Project
- Choose the cloned folder
- Go to Firebase Console
- Create a new project
- Add an Android app
- Download
google-services.json - Place it inside the
app/directory - Enable Authentication and Cloud Firestore
PetMate uses Cloudinary to upload and manage pet images.
- Go to https://cloudinary.com
- Create a free account
- Open the Dashboard
- Copy the following credentials:
- Cloud Name
- API Key
- API Secret
Open the local.properties file in the project root and add:
cloudinary.cloud.name=YOUR_CLOUD_NAME
cloudinary.api.key=YOUR_API_KEY
cloudinary.api.secret=YOUR_API_SECRETExample:
cloudinary.cloud.name=petmatecloud
cloudinary.api.key=123456789012345
cloudinary.api.secret=abc123xyz456secretlocal.properties is ignored by Git, so your credentials stay secure.
Connect a device or emulator and press Run ▶
PetMate follows the MVVM (Model-View-ViewModel) architecture:
- Model → Handles data and business logic
- View → Jetpack Compose UI
- ViewModel → Manages UI-related data and state
This ensures clean separation of concerns, scalability, and maintainability.
- Fork the project
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes
- Push to the branch
- Open a Pull Request
This project is licensed under the MIT License.