Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Beauticator

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.

Development setup

  1. Install Flutter (stable channel) and run flutter doctor to verify toolchain and device/emulator availability.
  2. Install dependencies: flutter pub get.
  3. Configure Firebase (required for auth/storage):
    • Install FlutterFire CLI (dart pub global activate flutterfire_cli).
    • Run flutterfire configure and select your Firebase project to regenerate lib/firebase_options.dart, android/app/google-services.json, and ios/Runner/GoogleService-Info.plist with real values. The repo currently contains placeholders only.
    • For iOS, open ios and run pod install after the config is generated.
  4. Configure Sentry (optional): set a DSN in lib/main.dart or via environment at runtime; the committed value is a placeholder.
  5. 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 (see lib/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 in lib/main.dart.

Build to Release

To build a release version for beauticator app, follow these steps:

  1. 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.

  2. Create a file named [project]/android/key.properties and add the following information:

storePassword=**keystore_password**
keyPassword=**keystore_password**
keyAlias=android_release_key
storeFile=/Users/yourusername/android_release/key.jks
  1. Add Add the keystore information from your properties file before the android block in [project]/android/app/build.gradle:
def keystoreProperties = new Properties()
def keystorePropertiesFile = rootProject.file('key.properties')
if (keystorePropertiesFile.exists()) {
    keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
}
  1. Find the buildTypes block and update the release block:
release {
    signingConfig signingConfigs.release
}
  1. Change the version of the app in pubspec.yaml file:
version: 2.0.0+10
  1. 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_info

Or this command without obfuscating source code:

flutter build appbundle

The 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/
  1. 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-abi

This 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
  1. To install an APK on device, run in terminal:
flutter install

Note: 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

Assets & Licenses

  • Code: Licensed under MIT (see LICENSE).
  • Assets: No third-party images or fonts are bundled. Only project logos under assets/images/logo/ are included.

About

Your AI Selfie Companion

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages