An intelligent mobile application that helps users discover the perfect dog breed based on their lifestyle, preferences, and living situation using Google Gemini AI.
Pawspective.Demo.Video.mp4
- AI-Powered Recommendations: Intelligent dog breed suggestions using Google Gemini AI
- Interactive Chat Interface: Natural conversation flow for personalized recommendations
- User Authentication: Secure login with Email/Password and Google Sign-In
- Profile Management: Customizable user profiles with photo upload
- Chat History: Save and manage conversation history
- Dark/Light Theme: Adaptive UI theme support
- Offline Support: Local data caching for better performance
- Firebase Authentication integration
- Secure API endpoints with user validation
- Environment-based configuration
- Data encryption and secure storage
- Modern Material Design 3 interface
- Smooth animations and transitions
- Responsive design for various screen sizes
- Intuitive onboarding experience
- Accessibility support
| Technology | Version | Purpose |
|---|---|---|
| Kotlin | Latest | Primary programming language |
| Jetpack Compose | Latest | Modern UI toolkit |
| Material Design 3 | Latest | Design system |
| Firebase Auth | 23.2.1 | Authentication |
| Retrofit | 2.9.0 | HTTP client |
| Room Database | Latest | Local database |
| Coil | 2.5.0 | Image loading |
| Coroutines | 1.7.3 | Asynchronous programming |
| Technology | Version | Purpose |
|---|---|---|
| Python | 3.9+ | Backend language |
| Flask | Latest | Web framework |
| Google Gemini AI | Latest | LLM |
| Firebase Admin SDK | Latest | Database & auth |
| Flask-CORS | Latest | Cross-origin requests |
| python-dotenv | Latest | Environment management |
- Firebase Firestore - NoSQL database
- Firebase Authentication - User management
- Firebase Storage - File storage
- Google Gemini AI - Natural language processing
- Docker - Containerization
- Python 3.9+ with pip
- Android Studio Arctic Fox or newer
- JDK 11 or newer
- Git for version control
- Firebase Project with Firestore and Authentication enabled
- Google Cloud Project with Gemini AI API access
- Google API Key for Gemini AI
- Android SDK API 24+ (Android 7.0)
- Target SDK 35 (Android 15)
- Gradle 8.0+
git clone https://github.com/your-username/pawspective.git cd pawspective
cd backend
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
pip install -r requirements.txt
cp .env.example .env # Configure your environment variables
python app.py
cd Pawspective
# Open in Android Studio and sync project
# Configure Firebase (see detailed setup below)
# Run the app
cd backend
python -m venv venv
# Activate virtual environment
# On Windows:
venv\Scripts\activate
# On macOS/Linux:
source venv/bin/activate
pip install -r requirements.txt
Create .env file in the �ackend directory: `env
GOOGLE_API_KEY=your_google_api_key_here
FIREBASE_PROJECT_ID=your_firebase_project_id FIREBASE_SERVICE_ACCOUNT_PATH=./firebase-service-account.json `
- Go to Firebase Console
- Select your project Project Settings Service Accounts
- Generate new private key
- Save as firebase-service-account.json in backend directory
python app.py
The API will be available at http://localhost:5000
curl http://localhost:5000/api/status
cd Pawspective
- Go to Firebase Console
- Add Android app to your project
- Download google-services.json
- Place it in Pawspective/app/ directory
In Firebase Console, enable:
- Authentication (Email/Password & Google Sign-In)
- Firestore Database
- Storage (for profile pictures)
- In Firebase Console Authentication Sign-in method
- Enable Google Sign-In
- Add your SHA-1 fingerprint:
In app/src/main/java/com/ppb/pawspective/data/api/ApiClient.kt:
kotlin private const val BASE_URL = "http://your-backend-url:5000/"
./gradlew assembleDebug # Or use Android Studio's Run button
cd backend
docker build -t pawspective-backend .
docker run -d \
--name pawspective-api \
-p 5000:5000 \
--env-file .env \
pawspective-backend
# Using docker-compose (create docker-compose.yml)
docker-compose up -d
This project is open source and available under the Apache License 2.0.