Skip to content

aazirani/guide_wizard

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

630 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Guide Wizard Mobile App

A Flutter mobile application that provides personalized, step-by-step guidance through complex processes. The app delivers adaptive content based on user responses with multilingual support and intelligent logic-based personalization.

🌐 Website: https://aazirani.github.io/guidewizard/

πŸ“± Screenshots

Welcome Screen Step Navigation Question Interface Task List Task Details

🌟 Live Implementations

Guide Wizard is currently being used by:

Using Guide Wizard? Let me know and I'll list your implementation here! Open an issue or contact me to be featured.

πŸš€ Features

  • Personalized Guidance: Dynamic content adaptation based on user profile and answers
  • Step-by-Step Navigation: Intuitive wizard-style interface guiding users through multi-step processes
  • Intelligent Logic System: Content personalization using expression-based conditional logic
  • Multilingual Support: Full internationalization with dynamic language switching
  • Offline Capability: Local database caching for offline access to downloaded content
  • Image-Rich Content: Visual guides with image-based questions and task illustrations
  • Task Management: Track progress through checklists and subtasks
  • Clean Architecture: MobX state management with reactive UI updates
  • Material Design: Modern, responsive UI following Material Design guidelines

πŸ“‹ Prerequisites

Before you begin, ensure you have the following installed:

  • Flutter SDK (2.0.0 or higher)
  • Dart SDK (2.12.0 or higher)
  • Android Studio or Xcode (for mobile development)
  • Git

Backend Requirement

This app requires the Guide Wizard Backend to be running. The backend provides the API for content management, logic evaluation, and personalization.

Backend Repository: Guide Wizard Backend

πŸ”§ Installation

Step 1: Clone the Repository

git clone https://github.com/aazirani/guide_wizard.git
cd guide_wizard

Step 2: Install Dependencies

flutter pub get

Step 3: Generate Code Files

This project uses code generation for MobX stores and JSON serialization. Run the build runner:

# One-time generation
flutter packages pub run build_runner build --delete-conflicting-outputs

# Or use watch mode for automatic regeneration during development
flutter packages pub run build_runner watch

Step 4: Configure Backend URL

The app is configured to connect to http://localhost:8080 by default for local development.

To change the backend URL, edit lib/data/network/constants/endpoints.dart:

class Endpoints {
  static const String baseUrl = "http://your-backend-url.com";
  // ... rest of the file
}

Step 5: Run the App

# For Android
flutter run

# For iOS
flutter run

# For a specific device
flutter devices
flutter run -d <device-id>

πŸ—οΈ Project Architecture

This project follows a clean architecture pattern with clear separation of concerns:

lib/
β”œβ”€β”€ constants/              # App-level constants
β”‚   β”œβ”€β”€ app_theme.dart     # Theme configuration
β”‚   β”œβ”€β”€ endpoints.dart     # API endpoints
β”‚   β”œβ”€β”€ preferences.dart   # SharedPreferences keys
β”‚   └── strings.dart       # String constants
β”œβ”€β”€ data/                   # Data layer
β”‚   β”œβ”€β”€ local/             # Local database (Sembast)
β”‚   β”œβ”€β”€ network/           # API client (Dio)
β”‚   β”œβ”€β”€ sharedpref/        # SharedPreferences helper
β”‚   └── repository.dart    # Central data repository
β”œβ”€β”€ models/                 # Data models
β”‚   β”œβ”€β”€ answer/
β”‚   β”œβ”€β”€ question/
β”‚   β”œβ”€β”€ step/
β”‚   β”œβ”€β”€ task/
β”‚   └── sub_task/
β”œβ”€β”€ stores/                 # MobX state management
β”‚   β”œβ”€β”€ content/           # Content store
β”‚   β”œβ”€β”€ language/          # Language store
β”‚   └── theme/             # Theme store
β”œβ”€β”€ ui/                     # UI layer
β”‚   β”œβ”€β”€ splash/            # Splash screen
β”‚   β”œβ”€β”€ home/              # Home screen
β”‚   β”œβ”€β”€ questions/         # Questions screen
β”‚   └── tasks/             # Tasks screen
β”œβ”€β”€ utils/                  # Utility functions
β”œβ”€β”€ widgets/                # Reusable widgets
β”œβ”€β”€ main.dart              # App entry point
└── routes.dart            # Navigation routes

πŸ“š Key Technologies

State Management

  • MobX - Reactive state management
  • Provider - Dependency injection

Networking

  • Dio - HTTP client for API communication

Local Storage

Code Generation

Other Libraries

🎨 Customization

Changing Theme

Edit lib/constants/app_theme.dart to customize colors, typography, and other theme properties:

final ThemeData themeData = ThemeData(
  primaryColor: Colors.blue,
  accentColor: Colors.blueAccent,
  // ... customize other properties
);

Adding Languages

  1. Add translations to the backend using the admin panel
  2. The app will automatically fetch and display available languages
  3. Users can switch languages from the settings

Modifying API Endpoints

Update lib/data/network/constants/endpoints.dart to match your backend API structure.

πŸ§ͺ Testing

# Run all tests
flutter test

# Run tests with coverage
flutter test --coverage

# Run specific test file
flutter test test/widget_test.dart

πŸ“± Building for Production

Android

# Build APK
flutter build apk --release

# Build App Bundle (recommended for Play Store)
flutter build appbundle --release

The built files will be in build/app/outputs/.

iOS

# Build for iOS
flutter build ios --release

Open ios/Runner.xcworkspace in Xcode to archive and submit to App Store.

Web

# Build for web
flutter build web --release

The built files will be in build/web/. Deploy the contents to your web server or hosting platform.

πŸ” IDE Configuration

Hide Generated Files

Android Studio / IntelliJ IDEA

Navigate to Preferences β†’ Editor β†’ File Types and add the following patterns under Ignore files and folders:

*.inject.summary;*.inject.dart;*.g.dart;

Visual Studio Code

Navigate to Preferences β†’ Settings, search for Files: Exclude, and add:

**/*.inject.summary
**/*.inject.dart
**/*.g.dart

πŸ› Troubleshooting

Build Runner Issues

If code generation fails:

# Clean and rebuild
flutter clean
flutter pub get
flutter packages pub run build_runner build --delete-conflicting-outputs

Network Connection Issues

  • Ensure the backend is running and accessible
  • Check the base URL in endpoints.dart
  • For Android emulator connecting to localhost, use http://10.0.2.2:8080 instead of http://localhost:8080
  • For iOS simulator, http://localhost:8080 should work

Database Issues

Clear app data and reinstall:

# Uninstall from device
flutter clean

# Reinstall
flutter run

πŸ‘₯ Contributors

🀝 Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Follow Flutter/Dart style guidelines
  4. Write tests for new functionality
  5. Commit your changes (git commit -m 'Add some amazing feature')
  6. Push to the branch (git push origin feature/amazing-feature)
  7. Open a Pull Request

Development Guidelines

  • Follow Effective Dart style guide
  • Use MobX for state management
  • Write widget tests for UI components
  • Keep widgets small and focused
  • Use meaningful variable and function names

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE.md file for details.

πŸ”— Related Projects

πŸ“ž Support

For questions and support:

  • Create an issue in the GitHub repository
  • Check Flutter documentation at flutter.dev
  • Review the troubleshooting section above

πŸ™ Acknowledgments

This project was built using the Flutter Boilerplate Project as a foundation.


Built with ❀️ using Flutter

About

A Flutter mobile application that provides personalized, step-by-step guidance through complex processes. The app delivers adaptive content based on user responses with multilingual support and intelligent logic-based personalization.

Topics

Resources

License

Stars

Watchers

Forks

Contributors

Languages