Questable is an application designed to manage and explore RPG Adventures ("Quests"). This README provides instructions on how to build, deploy, and contribute to the project.
- Build Steps
- Getting Started
- Features
- Technology Stack
- Assets
- Project Structure
- Localization
- Testing
- Contributing
- Contact / Issues
- License
To build and deploy the project, follow these steps:
# Build the web app for production
flutter build web --no-tree-shake-icons
# Deploy to Firebase Hosting
firebase deploy --only hosting# Run the app locally with hot reload
flutter run -d chrome-
Prerequisites
- Install Flutter
- Install Firebase CLI
- Obtain Firebase configuration files
-
Setup
# Clone the repository git clone https://github.com/your-username/quest_cards.git # Install dependencies flutter pub get # Configure Firebase (ensure you have firebase_options.dart configured) firebase login firebase use your-project-id # Replace with your actual Firebase project ID
- Quest Card Management: Upload, analyze, and catalog RPG adventures
- Firebase Integration: Cloud storage, authentication, and Firestore database
- AI-powered Analysis: Automatic categorization and extraction of quest data
- Multi-platform Support: Web, iOS, and Android compatibility
Questable is built using the following technologies:
- Frontend: Flutter (Dart)
- Backend: Firebase (Authentication, Firestore, Cloud Storage, Cloud Functions)
- Cloud Functions Language: Python
- Analysis Scripts: JavaScript (Node.js)
The assets folder contains:
- Icons for different RPG systems
- App logos and images
- Theme configuration files
The project is organized into the following main directories:
lib/: Contains the main Flutter application code (Dart).functions/: Contains Firebase Cloud Functions code (Python).analysis_scripts/: Holds scripts for data analysis (JavaScript).assets/: Stores static assets like icons and images.test/: Contains application tests.ios/,android/,web/,linux/,macos/,windows/: Platform-specific code.public/: Web-specific static files likeindex.html.
The application supports localization. To add or modify translations:
- Update the localization files in the
lib/l10ndirectory - Run the following command to generate the necessary files:
flutter gen-l10n
To run the automated tests:
flutter testWe welcome contributions to Questable. To contribute, follow these steps:
- Fork the repository.
- Create a new branch:
git checkout -b feature/your-feature-name
- Make your changes and commit them:
git commit -m 'Add some feature' - Push to the branch:
git push origin feature/your-feature-name
- Create a pull request.
We recommend using Firebase Local Emulator Suite for local development: https://firebase.google.com/docs/emulator-suite
# Install Firebase Emulators
firebase init emulators
# Start the emulators
firebase emulators:startPlease report any issues or suggest features via the GitHub Issues page. (Remember to replace the URL if your repository location is different).
This project is licensed under the BSD-3 License - see the LICENSE file for details.