A small Flutter app for managing daily "quests" — short tasks the user can complete to earn points.
Questly is a lightweight mobile app (Flutter) that provides a set of built-in quests, lets users add custom quests with configurable points, keeps track of completion state and total points using local storage, integrates simple local notifications, plays a completion sound, and includes a profile and social/account pages.
- Predefined quests (journal entry, visit a landmark, take a meal photo, physical activities, etc.)
- Add custom quests with custom point values
- Persisted data using
shared_preferences(username, quests, checks, points) - Points awarded when quests are completed; points are stored locally
- Simple daily notification scaffold (using
flutter_local_notifications+timezone) - Completion sound effect (assets/sound/checkSound.wav) using
audioplayers - Basic location-based verification for certain quests (uses
geolocator)
- Flutter (Dart SDK >= 3.6.1 per
pubspec.yaml) - image_picker — take/select photos
- audioplayers — play local sound effects
- timezone + flutter_local_notifications — schedule and show local notifications
- shared_preferences — persist user settings and quest state
- geolocator — optional location-based quests
See pubspec.yaml for exact versions.
Prerequisites
- Flutter SDK installed (match your system setup). See https://flutter.dev/docs/get-started/install
- Xcode (macOS) for iOS builds and Android SDK / Android Studio for Android builds
Clone the repo and install dependencies:
git clone <repo-url>
cd questly
flutter pub getRun on an emulator or device:
# Run on iOS simulator
flutter run
# Run on Android emulator
flutter run -d <device-id>Notes
- The app stores a username and points in
SharedPreferences. To reset app state during development, uninstall the app from the device/emulator or clear app data. - Local notifications require additional platform setup (Android notification channel and iOS permissions). The code includes an initialization scaffold in
lib/main.dartbut you may need to configure AndroidManifest / Info.plist for full behavior.
lib/— main Dart source files:main.dart, pages (login_page.dart,profile.dart,acount_page.dart,social_page.dart, etc.), and modelsassets/— sound effects and other raw assetsimages/— image assets used by the appandroid/,ios/— platform-specific projects