An intelligent Android application that provides personalized skincare advice using AI-powered image analysis. The app analyzes your skin condition through photos and provides customized recommendations for skincare routines and products.
- Smart Image Analysis: Upload photos of your skin for AI-powered analysis
- Comprehensive Results: Get detailed insights about skin type, hydration, oil levels, and overall condition
- Concern Detection: Identify specific skin concerns like acne, dryness, aging signs, and more
- Personalized Recommendations: Receive tailored advice based on your unique skin analysis
- Interactive Skincare Consultation: Chat with an AI assistant for personalized skincare advice
- Real-time Responses: Get instant answers to your skincare questions
- Expert Knowledge: Access professional-level skincare guidance powered by advanced AI
- Curated Product Database: Browse skincare products matched to your skin type
- Smart Filtering: Products recommended based on your skin analysis results
- Direct Purchase Links: Easy access to purchase recommended products
- Category-based Organization: Find products by cleanser, moisturizer, serum, and more
- Custom Routines: Create and manage daily skincare routines
- Step-by-step Guidance: Follow structured routines with checkboxes for tracking
- Progress Tracking: Monitor your skincare journey over time
- Firebase Authentication: Secure login with email/password and Google Sign-In
- Profile Management: Manage your personal information and preferences
- Analysis History: View past skin analysis results and track improvements
- Dark/Light Theme: Toggle between different app themes
- Firebase Security: Secure data storage with Firebase Firestore
- reCAPTCHA Protection: Enhanced security for user authentication
- Local Data Storage: Secure local storage for user preferences
- Kotlin: Modern Android development language
- Jetpack Compose: Modern Android UI toolkit
- Material Design 3: Google's latest design system
- Navigation Compose: Type-safe navigation
- Coil: Image loading library
- Firebase Authentication: User authentication and management
- Firebase Firestore: NoSQL cloud database
- Azure AI: Advanced AI models for skin analysis
- Google Generative AI (Gemini): AI chat functionality
- Firebase Crashlytics: Crash reporting and analytics
- MVVM Pattern: Model-View-ViewModel architecture
- Repository Pattern: Clean data layer architecture
- StateFlow: Reactive state management
- Coroutines: Asynchronous programming
Screenshots will be added here showing the main features of the app
- Android Studio Arctic Fox or later
- Android SDK 26 or higher
- Java 11 or higher
- Firebase project setup
- Azure AI credentials
-
Clone the repository
git clone https://github.com/duongdatdev/ai-skincare-advisor-app.git cd ai-skincare-advisor-app -
Setup Firebase
- Create a new Firebase project at Firebase Console
- Enable Authentication and Firestore Database
- Download
google-services.jsonand place it in theapp/directory - Enable Google Sign-In in Authentication methods
-
Configure API Keys Create a
local.propertiesfile in the root directory with the following:# Azure AI Configuration apiAIToken=your_azure_ai_token_here azureAIEndpoint=your_azure_ai_endpoint_here # Google Services GOOGLE_WEB_CLIENT_ID=your_google_web_client_id_here
-
Setup reCAPTCHA
- Get your reCAPTCHA site key from Google reCAPTCHA
- Update
recaptcha_site_keyinapp/src/main/res/values/strings.xml
-
Build and Run
chmod +x gradlew ./gradlew assembleDebug
- Go to Firebase Console
- Create a new project or use existing one
- Add an Android app with package name:
com.proteam.aiskincareadvisor - Download and add
google-services.jsontoapp/folder - Enable Authentication with Email/Password and Google Sign-In
- Create Firestore Database in test mode
- Create an Azure AI service account
- Get your API token and endpoint
- Add them to
local.propertiesfile
- Get API key from Google AI Studio
- Add it as
apiAITokeninlocal.properties
app/
βββ src/main/java/com/proteam/aiskincareadvisor/
β βββ data/
β β βββ api/ # AI client configurations
β β βββ auth/ # Firebase authentication
β β βββ firestore/ # Database operations
β β βββ model/ # Data models
β β βββ repository/ # Data repositories
β β βββ viewmodel/ # ViewModels
β βββ ui/
β β βββ components/ # Reusable UI components
β β βββ screens/ # Application screens
β β βββ theme/ # App theming
β βββ MainActivity.kt # Main activity
βββ src/main/res/ # Resources (layouts, strings, etc.)
- SkinAnalysisResult: Stores comprehensive skin analysis data
- Product: Represents skincare products with recommendations
- RoutineStep: Individual steps in skincare routines
- HomeScreen: Dashboard with analysis results and product recommendations
- AnalysisScreen: Camera integration and skin analysis
- ChatScreen: AI chat assistant
- RoutineScreen: Skincare routine management
- ProfileScreen: User profile and settings
- AIClient: Handles Azure AI and Google Generative AI connections
- SkinAnalysisRepository: Manages skin analysis operations
- ChatRepository: Manages AI chat functionality
Run tests using:
./gradlew test # Unit tests
./gradlew connectedAndroidTest # Integration testsThe app integrates with Azure AI and Google's Generative AI to provide:
- Image-based skin analysis
- Skin type detection
- Hydration and oil level assessment
- Personalized recommendations
- Authentication: Email/password and Google Sign-In
- Firestore: Real-time database for user data and analysis history
- Crashlytics: Automatic crash reporting
- Fork the repository
- Create a 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
This project is licensed under the MIT License - see the LICENSE file for details.
For support and questions:
- Create an issue in this repository
- Contact: duongdat030@gmail.com
- Google Firebase for backend services
- Azure AI for advanced skin analysis capabilities
- Google Generative AI for chat functionality
- Jetpack Compose team for the modern UI toolkit
- Material Design team for design guidelines
Note: This app requires proper API keys and Firebase configuration to function correctly. Make sure to follow the setup instructions carefully.