This is an E-Commerce Application written with Flutter framework. It includes the basic features that any E-Commerce app typically has, such as auth system searching products, filtering search, basket menagement and more. I also want to mention that this was a really fun project to code. I learned much better ways to utilize Flutter's capabilities and also improved my knowledge of Dart, of course. I hope my opens-ource project will also be educational for you. The app uses an API that i developed link.
Generally i followed this UIKit and sending my thanks to Harum Shidiqi for creating such a high-quality UIKit. However, due to the kit's limited theme data (e.g., radiuses, font styles, etc.), I had to write a lot of boilerplate code for styling texts and other widgets.
This project's UI code could definitely have been written more efficiently if there had been proper documentation for all the font and styling variables. And yes, this is my excuse 🫣.
- Authentication System:
- Google OAuth Sign-In
- "Remember Me" functionality
- Product Management:
- Product search and filtering
- Basket (cart) management
- Cache
- Efficient caching with
isar
- Search History Caching
- Efficient caching with
- Localization:
- Multilingual support with
easy_localization
- Multilingual support with
- State Management
- Network
- navigation
- localization
- cache
- UI
- Utils
- dev_dependencies
![](https://private-user-images.githubusercontent.com/140281815/394881314-50224053-d331-4254-ae56-256600f22a5e.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk0OTI2ODgsIm5iZiI6MTczOTQ5MjM4OCwicGF0aCI6Ii8xNDAyODE4MTUvMzk0ODgxMzE0LTUwMjI0MDUzLWQzMzEtNDI1NC1hZTU2LTI1NjYwMGYyMmE1ZS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjE0JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIxNFQwMDE5NDhaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1mZjkyOWVkY2Q5YWFiMzA4NGNmMWNhYmQyNDY4NmU5YTk2OGJhNGJmOTgxZTA2MTgwZGVjMzZmZThlN2NjM2ZiJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.DBbgrt67ROiK8E7iQZRzosaDxzN6fYnvUAW43dJTK1g)
![](https://private-user-images.githubusercontent.com/140281815/394881350-efb675cc-d0e0-4746-91d2-66ab9fa88af1.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk0OTI2ODgsIm5iZiI6MTczOTQ5MjM4OCwicGF0aCI6Ii8xNDAyODE4MTUvMzk0ODgxMzUwLWVmYjY3NWNjLWQwZTAtNDc0Ni05MWQyLTY2YWI5ZmE4OGFmMS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjE0JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIxNFQwMDE5NDhaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT05ZjcwYTNhMTRiMmVjNWE3MzAyNGQzNDYzNzFjZWQzMTc4N2RmZGI5ZDE3NWJhYWEwZDEwOWQ2MzI3ZjY2YzA1JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.IxC7Bt371wOhXaVfmGHMtoGzJHy88uSLEZHC73BEwGI)
![](https://private-user-images.githubusercontent.com/140281815/394881362-a95b5675-3911-41c0-a64f-3c8baffef334.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk0OTI2ODgsIm5iZiI6MTczOTQ5MjM4OCwicGF0aCI6Ii8xNDAyODE4MTUvMzk0ODgxMzYyLWE5NWI1Njc1LTM5MTEtNDFjMC1hNjRmLTNjOGJhZmZlZjMzNC5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjE0JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIxNFQwMDE5NDhaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1hZjgzNjNjZDczNzFmZDRhMjlhMDcxMzZiYWY4NDA5ZjM1Yjg3ZmUyMmM4MmY2YzI4Mzc4ZWVhMDYxYTA5YTg1JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.kTEMhCUdXRKeYg5Ios7E-BBfnKMhFEETpM0iD2hbWI8)
![](https://private-user-images.githubusercontent.com/140281815/394881369-6be08e3b-9fe8-4f56-8aed-b3df37d17512.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk0OTI2ODgsIm5iZiI6MTczOTQ5MjM4OCwicGF0aCI6Ii8xNDAyODE4MTUvMzk0ODgxMzY5LTZiZTA4ZTNiLTlmZTgtNGY1Ni04YWVkLWIzZGYzN2QxNzUxMi5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjE0JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIxNFQwMDE5NDhaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT04MjMyM2Q4ODdmOGQ3MGE5NjVhZThlM2MwMjY5M2M1ODVmMmU1OGYwOTc4MGMxN2MxMWQyYWZkYjVmZWU0ODhjJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.-8O1Z4x3ataIhuLjQ2wRuO0B7fpi6M1ooUUu6F5EnrE)
![](https://private-user-images.githubusercontent.com/140281815/394881377-55774648-03e7-4318-a11e-d42d93e8f7a3.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk0OTI2ODgsIm5iZiI6MTczOTQ5MjM4OCwicGF0aCI6Ii8xNDAyODE4MTUvMzk0ODgxMzc3LTU1Nzc0NjQ4LTAzZTctNDMxOC1hMTFlLWQ0MmQ5M2U4ZjdhMy5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjE0JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIxNFQwMDE5NDhaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT02MDc1NTY2NTQ5NzQxNTdjY2VmMmNlMTdiZDIzNWU5YmM1NmEzYzU3N2UyZjI0MWQ4NzU3ZGUyYWQ3YTc2ZmFhJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.i_ZcOLjw48C4gjX4_OcO0qqLG-b-lS62mal7hg7yNnk)
![](https://private-user-images.githubusercontent.com/140281815/394881381-e8a83ccd-38e1-4e23-9bfc-90a2fa36de83.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk0OTI2ODgsIm5iZiI6MTczOTQ5MjM4OCwicGF0aCI6Ii8xNDAyODE4MTUvMzk0ODgxMzgxLWU4YTgzY2NkLTM4ZTEtNGUyMy05YmZjLTkwYTJmYTM2ZGU4My5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjE0JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIxNFQwMDE5NDhaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1iMjg4MmZjODE3ZTY0MTM0MTM0ZWQ0YzE3YzM2Yjg1NzUzYmMwMmI0MmQ1ZDVhNGI3ZTY4ZWMxOWZmZWYxZGEyJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.1Z8x4e4rO6vS-nc-8KQ_4ICUNWikDjpWn_DcQDBQYgw)
![](https://private-user-images.githubusercontent.com/140281815/394881391-57901020-7a0d-4aeb-a262-532361f12e53.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk0OTI2ODgsIm5iZiI6MTczOTQ5MjM4OCwicGF0aCI6Ii8xNDAyODE4MTUvMzk0ODgxMzkxLTU3OTAxMDIwLTdhMGQtNGFlYi1hMjYyLTUzMjM2MWYxMmU1My5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjE0JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIxNFQwMDE5NDhaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1lNTRkZTExODhmOWEyOTVkOTI0ZjAzMzQ4YWNmMWFlZGRlOTg3MjA3MmJiZjJiYmNjNDgxMmE4OTA1ZTVhNjU0JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.VVUI_pWWIj3047-_1rmB_K8Ejb6odygT36JFn36ZGGE)
![](https://private-user-images.githubusercontent.com/140281815/394881403-47a89357-d713-4c62-b512-16c3c02c7245.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk0OTI2ODgsIm5iZiI6MTczOTQ5MjM4OCwicGF0aCI6Ii8xNDAyODE4MTUvMzk0ODgxNDAzLTQ3YTg5MzU3LWQ3MTMtNGM2Mi1iNTEyLTE2YzNjMDJjNzI0NS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjE0JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIxNFQwMDE5NDhaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT01MzZhMTQyOTlkYzczNGEyYjcxYzBlYzU1MDdkYzkwMmY1ZTQ5ZDI2ZjdhYjlmMDViNjM2MTRkYTE3YjU5Mjk0JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.9J-rSPSyYOnKGq6Beb-wWYWnylfB-NJc5DDbNa-s7NQ)
![](https://private-user-images.githubusercontent.com/140281815/394881421-194f9ce3-9996-49a9-895e-10d53a95e9a7.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk0OTI2ODgsIm5iZiI6MTczOTQ5MjM4OCwicGF0aCI6Ii8xNDAyODE4MTUvMzk0ODgxNDIxLTE5NGY5Y2UzLTk5OTYtNDlhOS04OTVlLTEwZDUzYTk1ZTlhNy5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjE0JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIxNFQwMDE5NDhaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT03ODhhNTJjNmU2MDdkNDZlNGMyMjU4MjQ3YWEzZTY3YTJkOGRjZjEyYWE5MGFmYzIxOTIyNjgzNTk5YzgyMDg2JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.gnYhhnj69FHzYYAD3N0wP7VXf8OvSlJxaeSSRJhaupE)
To run this project locally, follow these steps:
- Flutter SDK installed
- API set up and running locally (API Repository)
- Clone the repository:
git clone https://github.com/BerkCicekler/e-commerce-audio-app
- Navigate to the project directory:
cd e-commerce-audio-app
- Install dependencies:
flutter pub get
- Generate necessary files:
dart run build_runner build sh scripts/language.sh
- Run the application:
flutter run
and Voilà!