Skip to content

A simple flutter app to keep track of movies and series that has been watched, currently being watched, and on the agenda to watch.

License

Notifications You must be signed in to change notification settings

ZanderCowboy/multichoice

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

62 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

multichoice

style: very good analysis GitHub Release GitHub Tag

Linting Build Deploy

Quality Gate Status codecov GitHub License

📱 Download

Get it on Google Play

📖 Description

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.

✨ Features

  • 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

📸 Screenshots

Dark Theme Light Theme
Reading Dark Horizontal Reading Light Horizontal
Reading Dark Vertical Reading Light Vertical

🗺️ Roadmap

🚀 Upcoming Ideas (v1.0)

Core Improvements

  • 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

User Experience

  • 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

Quality of Life

  • 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

🔮 Future Ideas (v2.0+)

Advanced Features

  • 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

Platform Enhancements

  • iOS App: Native iOS application

This roadmap is based on user feedback and development priorities. Features may be adjusted based on community needs.

🚀 Getting Started

Prerequisites

  • Flutter version: 3.27.1
  • Dart version: 3.6.0
  • Android Studio / VS Code
  • Windows (for Windows platform development)

Quick Setup Links

Installation

  1. Clone the repository

    git clone https://github.com/ZanderCowboy/multichoice.git
    cd apps/multichoice
  2. 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
  3. Configure platforms

    flutter config --list

    Enable/disable platforms as needed (Android, Web, Windows).

  4. Run the application

    melos run --scope=multichoice flutter run

VS Code Setup

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.

🏗️ Project Structure

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

📚 Important Files

README Files

Changelog Files

Documentation

For any additional documentation, refer to docs folder

🧪 Testing

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

📋 Development Workflow

Versioning

Every PR from develop into main must have one of these labels:

  • patch: Fixes, hot-fixes, and patches
  • minor: New features
  • major: Major releases or significant changes

Note: If no label is provided, patch will be used by default.

CI/CD Pipeline - needs updating

  • 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

🔧 Configuration

config.yml

Located in the root directory, contains project configuration settings.

Makefile

Provides convenient commands for common development tasks.

.scripts folder

Contains automation scripts for various development workflows.

🌐 Links

SonarCloud

Code Coverage

Changelog

🐛 Known Issues & Fixes

Android Gradle Upgrade

If you encounter Android Gradle issues, ensure you're using the latest compatible versions.

📄 License

This project is licensed under the terms specified in the LICENSE file.

🤝 Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request into develop branch

📞 Support

If you encounter any issues or have questions, please:

  1. Check the existing issues
  2. Create a new issue with detailed information
  3. Use the in-app feedback feature

About

A simple flutter app to keep track of movies and series that has been watched, currently being watched, and on the agenda to watch.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •