COVID-19 application made with Flutter, following Test Driven Development (TDD) and Clean Architecture along with Internationalization with JSON and CI/CD workflow.
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.
- Covid case data are taken from here.
- News are fetched from newsapi.org.
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
- Web version
- Full test coverage including Integration Test
- Improve Documentation
Do not hesitate to raise an issue or contribute to it, or suggest changes in the codebase. Opinions are highly appreciated!
The project is released under the MIT License. The license can be found here.
For help getting started with Flutter, view our online documentation, which offers tutorials, samples, guidance on mobile development, and a full API reference.