-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add documentation to the README File (#3)
- Loading branch information
1 parent
f7ea4cc
commit 644feee
Showing
3 changed files
with
130 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,128 @@ | ||
A sample command-line application with an entrypoint in `bin/`, library code | ||
in `lib/`, and example unit test in `test/`. | ||
<img src="https://github.com/moazelsawaf/cloudnativebasecamp_algo_01_dart/blob/documentation/docs/assets/banner.png" width="100%" alt="Repository Banner" /> | ||
<h3 align="center"> | ||
Cloud Native Base Camp<br> | ||
Algorithms Analysis and Design from scratch<br> | ||
Dart Implementation | ||
</h3> | ||
|
||
<p align=" center"> | ||
<a href="https://codecov.io/gh/moazelsawaf/cloudnativebasecamp_algo_01_dart"> | ||
<img | ||
src="https://codecov.io/gh/moazelsawaf/cloudnativebasecamp_algo_01_dart/branch/main/graph/badge.svg?token=T90IR6JI53" /> | ||
</a> | ||
<a href="https://github.com/moazelsawaf/cloudnativebasecamp_algo_01_dart"> | ||
<img src="https://img.shields.io/github/stars/moazelsawaf/cloudnativebasecamp_algo_01_dart.svg?style=flat&logo=github&colorB=ffcc00&label=stars" | ||
alt="Star on GitHub"> | ||
</a> | ||
<a href="https://github.com/moazelsawaf/cloudnativebasecamp_algo_01_dart/issues" rel="ugc"><img | ||
src="https://img.shields.io/github/issues/moazelsawaf/cloudnativebasecamp_algo_01_dart.svg?color=DF1304" | ||
alt="GitHub Open Issues"></a> | ||
<a href="https://github.com/moazelsawaf/cloudnativebasecamp_algo_01_dart/commits/main" rel="ugc"><img | ||
src="https://img.shields.io/github/last-commit/moazelsawaf/cloudnativebasecamp_algo_01_dart.svg" | ||
alt="GitHub Last Commit Date"></a> | ||
</p> | ||
|
||
--- | ||
|
||
## 💡 Overview | ||
|
||
This repository provides a **(Not Official) Dart Implementation with 100% test coverage** for [Algorithms Analysis and Design from scratch](https://cloudnativebasecamp.com/courses/algo-01/) course provided by [Cloud Native Base Camp](https://cloudnativebasecamp.com/) platform and instructed by [Eng. Ahmed Metwally](https://www.linkedin.com/in/metwally/) 💙❤ | ||
|
||
The course comprises 30 instructional videos on algorithms, beginning with fundamental concepts and progressing to an average level suitable for software development work 👩🏻💻👨🏻💻 | ||
|
||
Visit the above hyperlinks for more information about the course, the platform ,and the instructor ✅ | ||
|
||
## 📖 Repository Philosophy | ||
|
||
### The repository is designed with the following key points in mind: | ||
|
||
- 📂 All the implementation files are located under the `lib/` folder and the test files are located under the `test/` folder. | ||
|
||
- 📹 Each code video has its own folder with the same name of the video (code videos are the videos that have code implementation in them and they are all postfixed with "- Code" in the name). | ||
|
||
- 📝 The code is written in a way that is almost exactly to the code in the videos. | ||
|
||
- 🏋🏻♀️ The code of the requested exercises is provided and located in the same folder of the code video that requested it and the file name is prefixed with "exercise_". | ||
|
||
- 🧪 Each file has its own unit test file with the same name postfixed with "_test" as per the Dart convention. | ||
|
||
- 📊 The test coverage for the whole repository is 100% and should always be 100%. | ||
|
||
- 🔢 Each algorithm has at least two test cases, and always has the same test cases used in the videos. | ||
|
||
- 🚧 Each video has its own code separated from the other videos, so that if two algorithms shares some code, it is duplicated in both files to keep them isolated from each other (for example, graph traversal algorithms and merge sort algorithm). | ||
|
||
## 🕹 How to Try? | ||
|
||
You can play around with all the code in the repository by using it in `playground.dart` file located under the `bin/` folder 🎮 | ||
|
||
You can also write tests for your code in the `playground_test.dart` file located under the `test/` folder 🔬 | ||
|
||
## 🧪 Code Testing | ||
|
||
The code in the repository has more than **50 unit tests** with **test coverage of 100%** and should always be 100%. | ||
|
||
All the tests are located under the `test/` folder and they are all written with **AAA (Arrange, Act, Assert) pattern** to make them more readable, maintainable, and easier to understand, to learn more about AAA pattern, visit [this article](https://medium.com/@pjbgf/title-testing-code-ocd-and-the-aaa-pattern-df453975ab80) 📝 | ||
|
||
### Running Tests | ||
|
||
To run all the tests, run the following command: | ||
|
||
```bash | ||
dart test | ||
``` | ||
|
||
To run a specific test file, run the following command: | ||
|
||
```bash | ||
dart test test/<test_file_name>.dart | ||
``` | ||
|
||
To run the tests with coverage report, run the following command (Must have Flutter SDK installed): | ||
|
||
```bash | ||
flutter test --coverage | ||
``` | ||
|
||
### Coverage Report | ||
|
||
The coverage report for this repository is uploaded automatically to [Codecov by Sentry](https://about.codecov.io/) after each commit to the `main` branch to be analyzed, archived, and hosted for everyone to check along with more powerful features 💪🏻 | ||
|
||
The latest coverage report can be found [here](https://codecov.io/gh/moazelsawaf/cloudnativebasecamp_algo_01_dart), and he following graph shows the latest coverage report for the repository 📊 | ||
<br><br> | ||
<img src="https://codecov.io/gh/moazelsawaf/cloudnativebasecamp_algo_01_dart/branch/main/graphs/icicle.svg?token=T90IR6JI53"> | ||
|
||
## 💙 About Dart | ||
|
||
Simply, **Dart is a client-optimized language for fast apps on any platform** ⚡ | ||
|
||
It is a programming language that was developed by Google in 2011. It is designed to be expressive, concise, and scalable for web, mobile, and desktop applications. Dart can be compiled to native code, JavaScript, or run on a virtual machine 💙 | ||
|
||
Dart is closely related to Flutter, which is a framework for building cross-platform user interfaces with Dart. Flutter allows developers to create beautiful and responsive apps that run on iOS, Android, Windows, Linux, and the web with a single codebase 📱💻 | ||
|
||
Dart has many features that make it a powerful and productive language for modern app development. Some of these features are 💪🏻: | ||
|
||
- Strong typing with type inference and null safety | ||
- Support for both object-oriented and functional programming paradigms | ||
- Asynchronous programming with futures, streams, and async/await | ||
- Generics, mixins, extension methods, and metadata | ||
- Native interoperability with C and JavaScript | ||
- Hot reload and hot restart for fast development cycles | ||
- A comprehensive set of libraries and packages for common tasks | ||
- And much more! | ||
|
||
To learn more about Dart, visit the [official website (dart.dev)](https://dart.dev/) ✅ | ||
|
||
## 💪🏻 Contribution Guide | ||
|
||
I would be happy to have your contributions 💙 | ||
|
||
If you have a bug, suggestion, or a question, please fill an [Issue](https://github.com/moazelsawaf/cloudnativebasecamp_algo_01_dart/issues) 📄 | ||
|
||
If you fixed a bug or added something useful, please make a [Pull Request](https://github.com/moazelsawaf/cloudnativebasecamp_algo_01_dart/pulls) 📩 | ||
|
||
<a href="https://github.com/moazelsawaf/cloudnativebasecamp_algo_01_dart/graphs/contributors"> | ||
<img src="https://contrib.rocks/image?repo=moazelsawaf/cloudnativebasecamp_algo_01_dart" /> | ||
</a> | ||
|
||
Made with [contrib.rocks](https://contrib.rocks). |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.