CVDEX is a Flutter-based Pokédex app that lets users scan Pokémon images in real life, leveraging a PyTorch model, Firebase integration, and a clean UI inspired by the original Pokédex. Users can build their digital Pokédex while enjoying a gamified experience.
Android SDK (>= 34), Android Studio (>= Ladybug version 2024.2), Android emulators, Python 3 (>= 3.6), PyTorch 2.x, Gradle, latest Flutter version (>= 3.24.5), Java JDK 17 or higher (21 recommended)
To run the PyTorch model server, navigate to models/, install all dependencies with pip install -r requirements.txt, and then run python3 src/server.py which loads the model from Kaggle on a Flask server ready for handling requests.
Before every build and testing every change, run flutter clean before flutter pub get and then flutter build apk. After the APK is built, launch an emulator of your choice by checking flutter emulators and then flutter emulators --launch <emulator id>. After the emulator is launched, install the APK into the emulator with adb install build/app/outputs/flutter-apk/app-release.apk. Then once that's done the app can be launched automatically with adb shell monkey -p com.example.cvdex 1.
When cloning, be sure to run flutter pub get before flutter run with any additional parameters. For chrome the parameters should be -d chrome after flutter run. Note that for Chrome as far as we know, camera integration is not yet enabled so photo uploads will happen by prompting the file explorer instead. To compile a release, run flutter build web --release, navigate to build/web and spin up a web server with python3 -m http.server 8000 (npm http-server also works).

