An android ecommerce application for groceries consuming the Fruity API. Using Jetpack compose, authentication with jwt and clean architecture.
- I can sign up and register on the app - authentication by jwt provided by the backend (Fruity API) or via social login.
- I can explore available products on the shop.
- I can view details of the product.
- I can add a product to cart.
- I can manage products in the cart (Increase or decrease or remove from cart).
- I can manage their account.
-
Tech-stack
- Kotlin - a cross-platform, statically typed, general-purpose programming language with type inference.
- Coroutines - perform background operations.
- Flow - handle the stream of data asynchronously that executes sequentially.
- Jetpack
- Lifecycle - perform action when lifecycle state changes.
- ViewModel - store and manage UI-related data in a lifecycle conscious way.
- Compose - build clean modern android UIs.
- Hilt - dependency injection library for Android that reduces the boilerplate of doing manual dependency
- Navigation component - perform complex navigation.
-
Architecture
- MVVM - Model View View Model
- Adding social login
- Implementing search via the API
- Adding Paging 3
- Adding payment methods
- Uploading to Google Playstore
UI kit design by Afsar Hossen
MIT License
Copyright (c) 2022 Kelvin Bush
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.