https://github.com/bbqqvv/recipelyproject
An MVVM-compliant cooking recipe app - with template figma
https://github.com/bbqqvv/recipelyproject
Last synced: 11 months ago
JSON representation
An MVVM-compliant cooking recipe app - with template figma
- Host: GitHub
- URL: https://github.com/bbqqvv/recipelyproject
- Owner: bbqqvv
- License: apache-2.0
- Created: 2024-05-21T06:56:09.000Z (about 2 years ago)
- Default Branch: master
- Last Pushed: 2024-07-11T03:21:27.000Z (almost 2 years ago)
- Last Synced: 2025-04-10T04:32:35.824Z (about 1 year ago)
- Language: Kotlin
- Homepage:
- Size: 4.15 MB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
![My Image]https://github.com/bbqqvv/RecipelyProject/issues/2#issue-2355497493
# Recipely π
**Recipely** is just a SIMPLE recipe app. Built with Modern Android developement tool. Intergrated with ML
## About
Inspired from many recipe app on store, this app was made to simplify all the use case of a chef.
- Well design with Material 3 UI
- Offline! All recipes are loaded in local database. You alway can create a new one.
- Ingredient predicted include
## Built with π¨
- [Kotlin](https://kotlinlang.org/) - Official programming language for Android development.
- [Jetpack Compose](https://developer.android.com/jetpack/compose) - Modern toolkit for native UI
- [Corountine](https://kotlinlang.org/docs/coroutines-overview.html) - For asynchronous stuff
- [Material3 Componenet](https://m3.material.io/develop/android/mdc-android) - Modular and customizable Material Design UI components for Android.
- [Room](https://developer.android.com/topic/libraries/architecture/room) - SQLite database for data persistence
- [Dependency Injection](https://developer.android.com/training/dependency-injection) -
- [Hilt-Dagger](https://dagger.dev/hilt/) - Standard library to incorporate Dagger dependency injection into an Android application.
- [Hilt-ViewModel](https://developer.android.com/training/dependency-injection/hilt-jetpack) - DI for injecting `ViewModel`.
- [Coil](https://coil-kt.github.io/coil/) - An image loading library for Android backed by Kotlin Coroutines.
- [CameraX](https://developer.android.com/media/camera/camerax) - Jetpack library for in-app camera
- [Media3](https://developer.android.com/media/media3) - Media libraries that enables Android apps to display rich audio and visual experiences
- [DataStore](https://developer.android.com/jetpack/androidx/releases/datastore) - Data presistence library for simple dataset
- [Protobuf](https://protobuf.dev/) - Protocol Buffers are language-neutral, platform-neutral extensible mechanisms for serializing structured data.
- [Tensorflow Lite](https://www.tensorflow.org/lite) - Library for deploys models on mobile device
## Project Structure π
com.vanbui.recipely # Root Package
.
βββ composeApp # Project entry point
|
βββ build-logic # Handle gradle build logic
| βββ convention # For specific options
|
βββ config
| βββ detekt # Detekt config
|
βββ core # Core modules
| βββ data #
β | βββ di # DI for Data module
| | βββ impl # Impl single source of data
| | βββ mapper # Map core model to entity vice versa
| |
| βββ database # Local database module
| | βββ assets # Default data for application
| | βββ converter # Room converter
| | βββ dao # Room dao
| | βββ entities # Room entities
| | βββ relation # Room cross-ref relation for better query
| |
| βββ datastore-proto # Define proto entity for datastore module
| |
| βββ datastore # Datastore module
| | βββ di # DI for datastore module
| |
| βββ designsystem # Design system module
| | βββ components # Application specific design component
| | βββ theme # Application specific theme system
| |
| βββ model # Core model module
| |
| βββ testing # Testing module
| | βββ di # DI for testing module
|
βββ feature # Feature module
| βββ account # Account-related feature module
| | βββ account # Account screen, its viewmdel and components
| | βββ edit_profile # Edit profile screen,...
| | βββ ...
| | βββ navigation # navigation system in account feature
| | βββ components # account feature UI component
| βββ ...
## How to run app?
- Download source code from github and run it on Android studio + virtual machine must be API 33 or higher.
- Recommended to use Android Studio 2023 or later. (I am using Version 2024.2.2 koala)
## Architecture π’
This project use a combination of [Multi-module architecture](https://developer.android.com/topic/modularization) and [(Model-View Model-Model](https://developer.android.com/topic/architecture#recommended-app-arch), explain as clean architecture for Android Developement.
A very well-made example by Android can be found [Now in Android](https://github.com/android/nowinandroid)
## Image-classification
I use pre-trained [MobileNet](https://keras.io/api/applications/mobilenet/) and retained with Tensorflow library. Here are some resources:
- [Tensorflow Image retraining](https://www.tensorflow.org/hub/tutorials/tf2_image_retraining)
- My [Google colab](https://colab.research.google.com/drive/13r6H_8RC1Lh5fiO0cNKwRJ75WKGiv9ti?usp=drive_link)
- My [Ingredient Dataset](https://drive.google.com/file/d/19jeOCHd5IpK1dKwNMXXp1HxGqADh0YaA/view?usp=drive_link)
## Further plans
Make it an cross-platform application
- [Kotlinx-Datetime](https://github.com/Kotlin/kotlinx-datetime) - KotlinX multiplatform date/time library
- [Ktor](https://ktor.io/) - Ktor is a framework for building asynchronous server-side and client-side applications
## Lint
[Detekt](https://github.com/detekt/detekt) is Static code analysis for Kotlin
## Contribute πͺ
Any contributions are welcome! Here are some note
- Open issue to report a bug and make your suggestion.
- Fork this repo and do your changes. Remember to follow project's code style.
- Open PR against `main` branch with nice description and you are good to go π.
Recipely is an open source project developed by [me](https://github.com/vanbuidevTech). My purpose is to demonstrate my knowleadge in Android Development and share with everyone who interested βΊοΈ. Please do
not use for commercial purposes.
## Design System
- Now you can get template for app Recipely here: https://drive.google.com/file/d/1Xj9KG4C_agA1KDTJwqLGZsdKdhHiLNzl/view?usp=sharing and let's open it on Figma.
## Thank you very much
## License
This application is released under Apache license 2.0 (see [LICENSE](LICENSE)).
Some of the used libraries are released under different licenses.