Shift Master is an intuitive mobile app for shift planning on Android and iOS. The app allows you to create shift cycle profiles, track shifts in a calendar view, and add notes to individual days.
- Monthly overview with color-coded shifts
- Automatic calculation of shifts using modulo arithmetic
- Codes and shapes for each shift (accessibility)
- Day notes with visual indicators
- Global shift library (A/B/C...) with colors and shapes
- Cycle profiles - recurring work day patterns
- Visual editor for easy cycle creation
- Templates for quick start (24h, Week days, Carousel, 5-2)
- Live cycle statistics (average hours/month, work:rest ratio)
- Mini calendar preview when creating profiles
- Pre-calculation of shifts for the entire month
- Complete data export (shifts + profiles + notes)
- Import with overwrite or merge options
- JSON format with versioning
The app uses Clean Architecture with a Feature-First approach:
lib/
βββ core/ # Shared components
β βββ logging/ # Logging system
β βββ ...
βββ features/
β βββ shift_scheduler/ # Main functionality
β βββ domain/ # Business logic
β β βββ entities/ # Domain entities
β β βββ repositories/ # Repository interfaces
β β βββ usecases/ # Business use cases
β βββ data/ # Data layer
β β βββ models/ # Hive models
β β βββ datasources/ # Data sources
β β βββ repositories/ # Repository implementations
β β βββ mappers/ # Data mappers
β βββ presentation/ # UI layer
β βββ providers/ # Riverpod providers
β βββ screens/ # Screens
β βββ widgets/ # Components
βββ main.dart
- Flutter - UI framework
- Dart - Programming language
- Riverpod - State management
- Hive-CE - Local database
- Table Calendar - Calendar component
- Flex Color Picker - Color picker
- Google Fonts - Typography
- Flutter SDK (latest stable)
- Dart SDK (latest stable)
- Android Studio or Xcode (for native builds)
-
Clone the repository:
git clone https://github.com/your-username/shift_master.git cd shift_master -
Install dependencies:
flutter pub get
-
Generate code (Hive adapters, Riverpod):
flutter pub run build_runner build
-
Run the app:
flutter run
Android APK:
flutter build apk --releaseiOS (requires macOS + Xcode):
flutter build ios --releaseWeb:
flutter build web --release- Go to Shift Library
- Add a new shift with code (1-2 characters), name, color and shape
- Set the shift duration in hours
- Use a template or create a custom cycle
- Select the start date
- Edit the cycle pattern using the visual editor
- Check the preview and statistics
- Browse months with colored shifts
- Click on a day for details and notes
- Notes are automatically saved
- Export all data to a JSON file
- Import data from other devices
- Choose between overwrite or merge
# Run all tests
flutter test
# Run tests with coverage
flutter test --coverage# Generate Hive adapters
flutter pub run build_runner build
# Watch mode for changes
flutter pub run build_runner watch# Flutter analyze
flutter analyze
# Format code
flutter format .The app supports Slovak (primary UI language) using the intl package for date formatting.
Detailed technical specification can be found in ShiftMaster_SPEC.md.
Contributions are welcome! Please:
- Fork the project
- Create your 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
- Use English for code and comments
- Follow Clean Architecture principles
- Add tests for new functionality
- Update documentation
This project is licensed under the MIT License - see the LICENSE file for details.
Tad - Initial development
- Flutter team for the great framework
- Hive team for the simple local database
- Riverpod team for state management
- Flutter developer community
β If you like this app, give it a star on GitHub!