Covid App
COVID-19 application made with Flutter, following Test Driven Development (TDD) and Clean Architecture along with Internationalization with JSON and CI/CD workflow.
Features:
Ths project has several features:
- Fetch Covid cases and latest news related to COVID-19 from APIs.
- Cache data in local storage, use when no internet connection is available.
- Error handling for Server failure and Cache failure.
- Flutter Bloc state management.
- Test Driven Development (TDD).
- Follow ResoCoder's Clean Architecture. For details, click here.
- Internationalization with JSON for two locale values -
en-US
andhi-IN
. - CI/CD workflow with Github actions and secrets.
Preview:
APIs used
- Covid case data are taken from here.
- News are fetched from newsapi.org.
Running the project
To run this project, some configuration steps are required.
- Create your own API key from newsapi.org.
- Create a new file named
api_key.dart
inside thelib
folder. - Paste the following line with your API key.
const String NEWS_API_KEY = 'YOUR_API_KEY';
Learn Test Driven Development and Clean Architecture
Additional documentations that might help
- Internationalizing Flutter apps: https://flutter.dev/docs/development/accessibility-and-localization/internationalization
- CI & CD with Flutter: https://flutter.dev/docs/deployment/cd
- Flutter GitHub Actions - Automate Your Workflow: https://github.com/marketplace/actions/flutter-action
TODO
- [ ] Web version
- [ ] Full test coverage including Integration Test
- [ ] Improve Documentation