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