Multichoice is a versatile Flutter application that helps users manage and organize their choices across different categories. Built with modern Flutter architecture and following best practices, it provides an intuitive interface for creating, editing, and managing multiple choice items.
- Intuitive UI: Modern, responsive design with dark/light theme support
- Data Management: Create, edit, and organize multiple choice items
- Search Functionality: Quick search through your choices
- Export/Import: Backup and restore your data
- Product Tour: Interactive tutorial for new users
- Feedback System: Built-in feedback mechanism
Dark Theme | Light Theme |
---|---|
![]() |
![]() |
![]() |
![]() |
- Categories: Organize choices into custom categories
- Favorites: Mark frequently used choices as favorites
- Sort Options: Sort by name, date created, last used
- Bulk Delete: Select and delete multiple items at once
- Search History: Remember recent searches
- Custom Themes: Additional color themes beyond dark/light
- Home Screen Widget: Quick access widget for Android
- Keyboard Shortcuts: Keyboard navigation for web/desktop
- Offline Mode: Work without internet connection
- Data Export: Export to CSV and JSON formats
- Undo/Redo: Undo accidental deletions or changes
- Auto-save: Automatically save changes as you type
- Import from Text: Paste a list and auto-create choices
- Duplicate Detection: Warn about duplicate entries
- Backup Reminders: Remind users to backup their data
- Calender Integration: Have reminders in calender
- Cloud Backup: Sync data across devices
- Sharing: Share choice lists with others
- Templates: Pre-built templates for common scenarios
- Statistics: Basic usage statistics and insights
- iOS App: Native iOS application
This roadmap is based on user feedback and development priorities. Features may be adjusted based on community needs.
- Flutter version: 3.27.1
- Dart version: 3.6.0
- Android Studio / VS Code
- Windows (for Windows platform development)
-
Clone the repository
git clone https://github.com/ZanderCowboy/multichoice.git cd apps/multichoice
-
Install dependencies and build
dart pub global activate melos melos bootstrap melos build
Note: If you encounter permissions issues, run:
sudo chown -R ${whoami}:${whoami} /flutter
or
sudo chown -R node:node /flutter
-
Configure platforms
flutter config --list
Enable/disable platforms as needed (Android, Web, Windows).
-
Run the application
melos run --scope=multichoice flutter run
The project includes a .vscode/launch.json
configuration for easy debugging:
- multichoice: Standard debug mode
- multichoice (profile mode): Performance profiling
- multichoice (release mode): Release mode testing
- Run Integration Test with Emulator: Integration testing
Simply press F5
or use the Run and Debug panel in VS Code to start debugging.
multichoice/
├── apps/
│ └── multichoice/ # Main Flutter application
├── packages/
│ ├── core/ # Core business logic
│ ├── models/ # Data models
│ ├── theme/ # App theming
│ └── ui_kit/ # Reusable UI components
├── docs/ # Documentation
└── play_store/ # Store assets
- Main App README - Detailed documentation for the main Flutter application
- Core Package README - Documentation for the core business logic package
- Models Package README - Documentation for data models package
- Theme Package README - Documentation for app theming package
- UI Kit Package README - Documentation for reusable UI components
- Workflows README - Documentation for development workflows
- Main Changelog - Project-wide changes and releases
- App Changelog - Changes specific to the main application
- Core Package Changelog - Changes to the core business logic
- Models Package Changelog - Changes to data models
- Theme Package Changelog - Changes to app theming
- UI Kit Package Changelog - Changes to UI components
- Integration Tests Setup - Guide for setting up integration tests
- Firebase Functions Setup - Guide for Firebase Functions configuration
- Using Wrappers in Code - Documentation on wrapper usage
- VS Code Configuration - Explanation of VS Code setup
- Batch Scripts - Documentation for automation scripts
For any additional documentation, refer to
docs
folder
Run tests using melos:
# Run all tests
melos test:all
# Run specific test suites
melos test:core
melos test:multichoice
melos test:integration
# Generate coverage reports
melos coverage:all
melos coverage:core
melos coverage:multichoice
For integration tests:
melos test:integration
Every PR from develop
into main
must have one of these labels:
patch
: Fixes, hot-fixes, and patchesminor
: New featuresmajor
: Major releases or significant changes
Note: If no label is provided, patch
will be used by default.
- Linting: Runs on push to any branch and on PRs
- Building: Runs on PRs from feature to develop
- Tag and Release: Runs on PRs from develop to main
- Deploy: Runs on push to main
Located in the root directory, contains project configuration settings.
Provides convenient commands for common development tasks.
Contains automation scripts for various development workflows.
If you encounter Android Gradle issues, ensure you're using the latest compatible versions.
This project is licensed under the terms specified in the LICENSE file.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request into
develop
branch
If you encounter any issues or have questions, please:
- Check the existing issues
- Create a new issue with detailed information
- Use the in-app feedback feature