Minha Despensa (My Pantry) is a multiplatform application (Android & iOS) focused on home intelligence and financial control for grocery shopping.
Do you know that feeling of adding items to your cart and, upon reaching the checkout, getting an unpleasant surprise with the total cost? Or that uncertainty about whether your monthly budget will cover everything?
The initial goal of Minha Despensa is to act as a "smart shopping cart calculator". As you shop, you input the items, quantities, and unit prices. The app instantly calculates the total and compares it with your set budget, empowering you to make purchasing decisions before reaching the checkout counter.
The project is being built incrementally. Beyond the cart control (MVP), the upcoming planned features are:
- Pantry Management (Inventory): Track what you have at home to avoid duplicate purchases or waste.
- Automatic Lists: Shopping suggestions based on consumption habits and minimum stock levels.
- Price History: Analysis of product price variations to verify if a "sale" is real.
- Recipes: Recipe creation based on the ingredients currently available in your pantry.
This project is a showcase of modern mobile development technologies, focused on scalability and clean code.
- Language: Kotlin (100%)
- Platform: Kotlin Multiplatform (KMP) for sharing logic between Android and iOS.
- UI: Compose Multiplatform (Shared declarative UI).
- Architecture: Clean Architecture + MVVM.
- Dependency Injection: Koin.
- Data Persistence: Room Database (KMP).
- Logs & Observability: Custom implementation of Structured Logging.
The project follows strict modularization to ensure separation of concerns:
| Module | Responsibility | Layer (Clean Arch) |
|---|---|---|
:composeApp |
Entry point, DI Configuration, and Integration. | Application / Main |
:uisystem |
Screens, Visual Components (Design System), and ViewModels. | Presentation |
:core |
Domain Models, Repository Interfaces, and Business Rules. Pure Kotlin. | Domain |
:data |
Database Implementation (Room), APIs, and Data Sources. | Data / Infrastructure |
- Android Studio (Ladybug or newer) or IntelliJ IDEA.
- Xcode (to run the iOS app).
- JDK 17 or newer.
- Kotlin Multiplatform Mobile Plugin installed.
- Clone the repository:
git clone [https://github.com/YOUR-USERNAME/MinhaDespensa.git](https://github.com/YOUR-USERNAME/MinhaDespensa.git)
- Open the project in Android Studio and wait for the Gradle Sync.
- Android: Select the
composeAppconfiguration and run it on the emulator. - iOS: Open the
iosApp.xcworkspacefile (inside theiosAppfolder) in Xcode, or run directly via Android Studio by configuring the iOS target.
Contributions are welcome! If you have ideas to improve shopping management or want to help with the technical implementation:
- Fork the project.
- Create a Branch for your Feature (
git checkout -b feature/AmazingFeature). - Commit your changes (
git commit -m 'Add some AmazingFeature'). - Push to the Branch (
git push origin feature/AmazingFeature). - Open a Pull Request.
This project is licensed under the Creative Commons Attribution 4.0 International (CC BY 4.0) - see the LICENSE file for details.
Developed with 💙 and Kotlin by Willian Santos.