Your AI Selfie Companion.
Introducing Beauticator - the revolutionary mobile app that uses advanced AI computer vision technology to help you take the perfect selfie!
Our app has analyzed thousands of social media profile pictures and selfies to understand what makes a great photo. Using this knowledge, we have trained an AI model that can predict the quality of your selfie and offer guidance on how to improve it.
It's important to note that Beauticator is not designed to measure physical appearance or beauty, it simply provides suggestions on how to take a more aesthetically pleasing photo.
We understand that not everyone is a professional photographer, which is why we created Beauticator to help anyone take a great photo. While our predictions may not always be perfect, we strive to provide helpful advice to make your selfies more engaging and fun.
We take your privacy seriously, which is why Beauticator only analyzes photos on your device, we never store or share your images with anyone else. So go ahead and experiment with your selfies without worrying about anyone else seeing them, it's just between you and Beauticator.
- Install Flutter (stable channel) and run
flutter doctorto verify toolchain and device/emulator availability. - Install dependencies:
flutter pub get. - Configure Firebase (required for auth/storage):
- Install FlutterFire CLI (
dart pub global activate flutterfire_cli). - Run
flutterfire configureand select your Firebase project to regeneratelib/firebase_options.dart,android/app/google-services.json, andios/Runner/GoogleService-Info.plistwith real values. The repo currently contains placeholders only. - For iOS, open
iosand runpod installafter the config is generated.
- Install FlutterFire CLI (
- Configure Sentry (optional): set a DSN in
lib/main.dartor via environment at runtime; the committed value is a placeholder. - Run the app:
flutter run(add-d <device>to target a specific emulator/device).
Certificates (TLS trust store augmentation):
- The app loads a CA bundle at
assets/ca/lets-encrypt-r3.pem(seelib/main.dart) to trust Let’s Encrypt R3. - This path is git-ignored (
assets/ca/). If you need it, create the directory and place the PEM file there, or comment out the certificate-loading lines inlib/main.dart.
To build a release version for beauticator app, follow these steps:
-
Make sure you have an upload keystore. We have an upload keystore at:
~/private_keys/android_release.
To create a new keystore, check https://docs.flutter.dev/deployment/android#create-an-upload-keystore. -
Create a file named
[project]/android/key.propertiesand add the following information:
storePassword=**keystore_password**
keyPassword=**keystore_password**
keyAlias=android_release_key
storeFile=/Users/yourusername/android_release/key.jks
- Add Add the keystore information from your properties file before the
androidblock in[project]/android/app/build.gradle:
def keystoreProperties = new Properties()
def keystorePropertiesFile = rootProject.file('key.properties')
if (keystorePropertiesFile.exists()) {
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
}- Find the buildTypes block and update the
releaseblock:
release {
signingConfig signingConfigs.release
}- Change the version of the app in
pubspec.yamlfile:
version: 2.0.0+10
- Run this command in terminal to obfuscate the dart code and build an app bundle for releasing:
flutter build appbundle --obfuscate --split-debug-info=./debug_infoOr this command without obfuscating source code:
flutter build appbundleThe release bundle for your app is created at [project]/build/app/outputs/bundle/release/app.aab.
You can run a coslidated command for all:
flutter clean && flutter build appbundle --obfuscate --split-debug-info=./debug_info && open build/app/outputs/bundle/release/- Run this command to build an APK (Useful when uploading test file for external tester to install the app or for app store where appbundle is not supported yet.)
flutter build apk --split-per-abiThis command results in three APK files:
[project]/build/app/outputs/apk/release/app-armeabi-v7a-release.apk
[project]/build/app/outputs/apk/release/app-arm64-v8a-release.apk
[project]/build/app/outputs/apk/release/app-x86_64-release.apk
- To install an APK on device, run in terminal:
flutter installNote: You may need to run flutter clean after changing the gradle file. This prevents cached builds from affecting the signing process.
For a detail step-by-step guide, see: https://docs.flutter.dev/deployment/android
- Code: Licensed under MIT (see
LICENSE). - Assets: No third-party images or fonts are bundled. Only project logos under
assets/images/logo/are included.