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
Contribution
Do not hesitate to raise an issue or contribute to it, or suggest changes in the codebase. Opinions are highly appreciated!
License
The project is released under the MIT License. The license can be found here.
Getting Started
For help getting started with Flutter, view our online documentation, which offers tutorials, samples, guidance on mobile development, and a full API reference.
If you like this repository, kindly give it a star
Download Covid-19 App source code on GitHub
Provides the list of the opensource Flutter apps collection with GitHub repository.