olololoe110399 / bedtime_stories

🚀 Excited to introduce "Unique Bedtime Chronicles" app! 🌙✨ Transform bedtime into a personalized adventure for your child. Craft custom stories, save favorites, and make bedtime unforgettable.
MIT License
20 stars 6 forks source link
bedtime bedtime-s clean-architecture flutter generative-ai hive hook-riverpod openai riverpod story

Unique Bedtime Chronicles

Introducing Unique Bedtime Chronicles the groundbreaking mobile application poised to transform the way you connect with your child during those treasured bedtime moments. Our cutting-edge app redefines the art of bedtime storytelling by empowering you to craft enchanting bedtime tales meticulously tailored to your child's distinct interests and preferences. With Unique Bedtime Chronicles you'll forge a profound, lasting bond with your child while kindling their imagination like never before.

Feature graphic

alt text

Screenshots

alt text alt text alt text
alt text alt text alt text

https://github.com/olololoe110399/bedtime_stories/assets/58255731/28ebb23b-486f-48f2-8ca7-724a9397d008

Table of Contents

Features

Project Structure

.
├── app_icon
│   ├── app-icon.yaml
│   └── app_icon.png
├── assets
│   ├── font
│   ├── img
│   └── json
├── bricks
│   └── feature_template
├── bricks_configs
│   └── feature.json
├── lib
│   ├── core
│   │   ├── src
│   │   │   ├── base
│   │   │   │   ├── base.dart
│   │   │   │   ├── base_event.dart
│   │   │   │   ├── base_page_state.dart
│   │   │   │   ├── base_state.dart
│   │   │   │   ├── base_vm.dart
│   │   │   │   ├── base_vm_mixin.dart
│   │   │   │   ├── wrap_state.dart
│   │   │   │   └── wrap_state.freezed.dart
│   │   │   ├── common
│   │   │   │   ├── common.dart
│   │   │   │   ├── common_event.dart
│   │   │   │   ├── common_event.freezed.dart
│   │   │   │   ├── common_state.dart
│   │   │   │   ├── common_state.freezed.dart
│   │   │   │   └── common_vm.dart
│   │   │   ├── config
│   │   │   │   ├── app_config.dart
│   │   │   │   ├── config.dart
│   │   │   │   ├── env.dart
│   │   │   │   └── env.g.dart
│   │   │   ├── constants
│   │   │   │   ├── constants.dart
│   │   │   │   ├── date_time_format_constants.dart
│   │   │   │   ├── device_constants.dart
│   │   │   │   ├── locale_constants.dart
│   │   │   │   ├── log_constants.dart
│   │   │   │   └── ui_constants.dart
│   │   │   ├── dimen
│   │   │   │   ├── app_dimen.dart
│   │   │   │   ├── dimen.dart
│   │   │   │   └── dimens.dart
│   │   │   ├── errors
│   │   │   │   ├── app_error.dart
│   │   │   │   ├── app_error_listener.dart
│   │   │   │   ├── app_error_listener_mixin.dart
│   │   │   │   ├── app_error_mapper.dart
│   │   │   │   ├── app_exception_wrapper.dart
│   │   │   │   ├── app_handle_exception.dart
│   │   │   │   ├── errors.dart
│   │   │   │   └── exceptions.dart
│   │   │   ├── extension
│   │   │   │   ├── extension.dart
│   │   │   │   └── string_extension.dart
│   │   │   ├── hive
│   │   │   │   ├── hive.dart
│   │   │   │   ├── hive_database_manager.dart
│   │   │   │   ├── hive_encryption.dart
│   │   │   │   ├── hive_model.dart
│   │   │   │   ├── hive_model_mixin.dart
│   │   │   │   ├── hive_operation.dart
│   │   │   │   ├── hive_types.dart
│   │   │   │   ├── primitive_database.dart
│   │   │   │   ├── primitive_keys.dart
│   │   │   │   └── secure_database_manager.dart
│   │   │   ├── mixins
│   │   │   │   ├── log_mixin.dart
│   │   │   │   └── mixins.dart
│   │   │   ├── model
│   │   │   │   ├── model.dart
│   │   │   ├── navigation
│   │   │   │   ├── app_navigator.dart
│   │   │   │   ├── app_routes.dart
│   │   │   │   ├── app_routes.gr.dart
│   │   │   │   └── navigation.dart
│   │   │   ├── network
│   │   │   │   ├── base
│   │   │   │   │   ├── base.dart
│   │   │   │   │   ├── dio_builder.dart
│   │   │   │   │   └── network_constants.dart
│   │   │   │   ├── middleware
│   │   │   │   │   ├── access_token_interceptor.dart
│   │   │   │   │   ├── base_interceptor.dart
│   │   │   │   │   ├── custom_log_interceptor.dart
│   │   │   │   │   ├── header_interceptor.dart
│   │   │   │   │   ├── middleware.dart
│   │   │   │   │   ├── network_info.dart
│   │   │   │   │   ├── refresh_token_api_service.dart
│   │   │   │   │   └── refresh_token_interceptor.dart
│   │   │   │   ├── network.dart
│   │   │   │   ├── rest_client.dart
│   │   │   │   ├── rest_client.g.dart
│   │   │   │   ├── rest_non_auth_client.dart
│   │   │   │   └── rest_non_auth_client.g.dart
│   │   │   ├── observer
│   │   │   │   └── observer.dart
│   │   │   ├── preference
│   │   │   │   ├── preference.dart
│   │   │   ├── stream
│   │   │   │   └── stream.dart
│   │   │   ├── theme
│   │   │   │   └── theme.dart
│   │   │   ├── usecases
│   │   │   │   └── usecases.dart
│   │   │   ├── utils
│   │   │   │   ├── utils.dart
│   │   │   └── widgets
│   │   │       └── widgets.dart
│   │   └── core.dart
│   ├── data
│   │   ├── src
│   │   │   ├── data_sources
│   │   │   │   ├── data_sources.dart
│   │   │   ├── mapper
│   │   │   │   ├── mapper.dart
│   │   │   ├── models
│   │   │   │   ├── models.dart
│   │   │   └── repositories
│   │   │       └── repositories.dart
│   │   └── data.dart
│   ├── di
│   │   ├── di.config.dart
│   │   └── di.dart
│   ├── domain
│   │   ├── src
│   │   │   ├── entities
│   │   │   │   ├── entities.dart
│   │   │   ├── repositories
│   │   │   │   └── repositories.dart
│   │   │   └── usecases
│   │   │       └── usecases.dart
│   │   └── domain.dart
│   ├── presentation
│   │   ├── src
│   │   │   ├── define_story
│   │   │   │   ├── define_story.dart
│   │   │   │   ├── define_story_event.dart
│   │   │   │   ├── define_story_page.dart
│   │   │   │   ├── define_story_state.dart
│   │   │   │   └── define_story_vm.dart
│   │   │   └── app.dart
│   │   └── presentation.dart
│   ├── resources
│   │   ├── generated
│   │   │   ├── intl
│   │   │   │   ├── messages_all.dart
│   │   │   │   ├── messages_en.dart
│   │   │   │   └── messages_vi.dart
│   │   │   └── l10n.dart
│   │   ├── src
│   │   │   ├── generated
│   │   │   │   ├── intl
│   │   │   │   │   ├── messages_all.dart
│   │   │   │   │   ├── messages_en.dart
│   │   │   │   │   └── messages_vi.dart
│   │   │   │   └── l10n.dart
│   │   │   └── l10n
│   │   │       ├── intl_en.arb
│   │   │       └── intl_vi.arb
│   │   └── resources.dart
│   └── main.dart
├── splash
│   ├── ic_splash.png
│   └── splash.yaml
├── test
│   └── widget_test.dart
├── Makefile
├── analysis_options.yaml
├── mason-lock.json
├── mason.yaml
└── pubspec.yaml

Libraries Used

Installation

1 Getting Started:

Make sure you have Flutter and Dart installed on your machine. You can install them by following the instructions in the official Flutter documentation.

Flutter 3.13.9 • channel stable
Framework • revision d211f42860 (3 months ago) • 2023-10-25 13:42:25 -0700
Engine • revision 0545f8705d
Tools • Dart 3.1.5 • DevTools 2.25.0

COCOAPODS: 1.14.3

2 Clone this repository:

git clone https://github.com/olololoe110399/bedtime_stories.git

3 Navigate to the project directory:

cd bedtime_stories

4 create env and config:

cp .env.example .env
OPEN_AI_API_KEY=<REPLACE WITH YOUR API KEY>

5 Install dependencies and generate files:

make sync

Usage

Run the app on a simulator or device:

flutter run

The app should start and you can explore the Valorant agents.

Contributing

Contributions are welcome! If you find any bugs or want to add new features, feel free to open an issue or submit a pull request. For major changes, please open an issue first to discuss what you would like to change.

Please make sure to update tests as needed.

License

This project is licensed under the MIT License.