PetPal is a comprehensive mobile application designed to help pet owners manage their pets' health records, daily activities, and care routines. The app provides a centralized platform for tracking multiple pets, their medical history, appointments, and more.
- Create and manage profiles for multiple pets
- Store pet details including name, breed, age, and photos
- Easily switch between different pet profiles
- Monitor pet weight with visual charts and trends
- Track vaccinations and medical appointments
- Store and access veterinary records
- Record medication schedules and set reminders
- Find nearby pet services (vets, parks, pet stores)
- Custom map styling for better visibility
- Save favorite locations for quick access
- Record daily activities and milestones
- Attach photos to journal entries
- Track behavioral changes and patterns
- Set medication reminders
- Schedule vet appointments
- Get notified about upcoming pet care tasks
- Check local weather conditions
- Plan outdoor activities with your pet
- Receive weather-based recommendations
- Intuitive navigation with tab-based layout
- Dark mode support
- Responsive design for various device sizes
- Frontend: React Native, Expo
- State Management: React Context API
- Authentication: Firebase Authentication
- Database: Firestore
- Storage: Firebase Storage
- Maps: Google Maps API
- Local Storage: AsyncStorage
- Charts: React Native Chart Kit
- UI Components: Custom components with Tailwind-inspired styling
- Node.js (v14 or higher)
- npm or yarn
- Expo CLI
- Firebase account
-
Clone the repository: ```bash git clone https://github.com/yourusername/petpal.git cd petpal ```
-
Install dependencies: ```bash npm install
yarn install ```
-
Create a
.envfile in the root directory with your API keys: ``` EXPO_PUBLIC_GOOGLE_API_KEY=your_google_api_key EXPO_PUBLIC_S3_BUCKET_NAME=your_s3_bucket_name EXPO_PUBLIC_S3_REGION=your_s3_region EXPO_PUBLIC_S3_ACCESS_KEY=your_s3_access_key EXPO_PUBLIC_S3_SECRET_KEY=your_s3_secret_key ``` -
Set up Firebase:
- Create a new Firebase project
- Enable Authentication and Firestore
- Add your Firebase configuration to the app
-
Start the development server: ```bash npx expo start ```
- Sign Up/Login: Create an account or log in to access your pet profiles
- Create Pet Profile: Add your pets with their details and photos
- Dashboard: View upcoming reminders and recent activities
- Health: Track weight, vaccinations, and medical records
- Maps: Find pet-friendly locations nearby
- Journal: Record daily activities and milestones
- Profile: Manage pet profiles and account settings
``` petpal/ ├── app/ # Main application screens │ ├── (app)/ # App screens requiring authentication │ ├── (auth)/ # Authentication screens │ ├── (tabs)/ # Tab navigation screens │ └── context/ # React Context providers ├── components/ # Reusable UI components │ ├── health/ # Health tracking components │ ├── journal/ # Journal related components │ ├── maps/ # Map view components │ ├── profile/ # Profile management components │ ├── reminders/ # Reminder components │ ├── ui/ # Base UI components │ └── weather/ # Weather display components ├── constants/ # App constants and configuration ├── hooks/ # Custom React hooks ├── types/ # TypeScript type definitions ├── utils/ # Utility functions └── assets/ # Static assets ```
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request