diff --git a/README.md b/README.md index aea147c8..a5dca766 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,5 @@ # Data Structures and Algorithm + Data structure and Algorithm (DSA) ## Contribution Guidelines @@ -7,13 +8,15 @@ Data structure and Algorithm (DSA) The problem being contributed must either be a simple **file** (**Eg.** [`kruskal-algorithm.cpp`](https://github.com/MakeContributions/DSA/blob/main/graphs/c-or-cpp/kruskal-algorithm.cpp), [`linear-search.java`](https://github.com/MakeContributions/DSA/blob/main/searching/java/linear-search.java)) or a more complex **directory** ([`palindrome/`](https://github.com/MakeContributions/DSA/tree/main/strings/rust/palindrome)). This is a unit `problem`. -The directory tree has the following convention of `category/language/problem`, where `category` is the topic or category of the problem being contributed (**Eg.** `strings`, `sorting`, `linked-lists` etc.), `language` represents the language code of the problem (**Eg.** `c-or-cpp` for C/C++, `python` for Python, `java` for Java etc.), and `problem` is a conforming name to the problem (**Eg.** `linear-search.cpp`, `palindrome`, `queue-linked-list.cpp` etc.) +The directory tree has the following convention of `category/language/problem`, where `category` is the topic or category of the problem being contributed (**Eg.** `strings`, `sorting`, `linked-lists` etc.), `language` represents the language code of the problem (**Eg.** `c-or-cpp` for C/C++, `python` for Python, `java` for Java etc.), and `problem` is a conforming name to the problem (**Eg.** `linear-search.cpp`, `palindrome`, `queue-linked-list.cpp` etc.) A unit `problem` must conform to the following specifications: + - The name should be in lowercase. (**Eg.** `palindrome/`, `binary-search.cpp` etc.). - Each word must be separated by a **dash** or a **hyphen** (`-`). -**If you have a problem that belongs to a new *topic* or *category* than one which are present:** +**If you have a problem that belongs to a new _topic_ or _category_ than one which are present:** + 1. Create a new folder and an index for it inside (a readme, `README.md` file). 2. To each new index file, write the readme with your `problem` in it ([Markdown Documentation](https://guides.github.com/features/mastering-markdown/)). 3. The folder name can also only contain **lowercase characters** and **dashes** or **hyphens** (`-`) (Eg. `strings` `sorting` etc.) @@ -29,6 +32,7 @@ The project and folder-based contributions have a bit more stricter contribution The folder should conform to the `problem` specification, along with the following specifications **Folder Structure** + ```bash problem-name\ | - .gitignore @@ -40,7 +44,7 @@ problem-name\ #### `README.md` Specification / Template -```markdown +````markdown # < description of the problem > @@ -54,15 +58,17 @@ problem-name\ - instructions to run the project - < Simple and reproducible commands to execute the project > - ```bash - make # or 'cargo run', or 'dotnet run' or 'mvn exec:java' etc. - ``` + ```bash + make # or 'cargo run', or 'dotnet run' or 'mvn exec:java' etc. + ``` + ## Test Cases & Output < if exists> < If you can provide test cases, describe it here, else remove this section > -``` +```` #### `.gitignore` File + ```gitignore # add all output files and build files to be excluded from git tracking main # executable file also must have the project name @@ -70,7 +76,9 @@ target/ # the build file, for example for rust ``` #### Build File / Specification File / Configuration File + It can be any of the following ones + - **C/C++**: `Makefile` - **Python**: `requirements.txt` - **JavaScript**: `package.json` and `package-lock.json` @@ -88,24 +96,30 @@ Again, the source codes must conform to a valid file structure convention that t The programming should keep the naming convention rule of each programming language. ### Other topic + - [First-time contribution](CONTRIBUTING.md) ## Contributors + <a href="https://github.com/MakeContributions/DSA/graphs/contributors"> <img src="https://contrib.rocks/image?repo=MakeContributions/DSA" /> </a> ### Reviewers -|Programming Language| Users | -|-------------------|---------------| -| C or C++ |@Arsenic-ATG, @UG-SEP | -| Java |@TawfikYasser, @cyberwizard1001 | -| C# | @ming-tsai | -| Go |@atin | -| Python | @Arsenic-ATG, @atin, @sridhar-5, @cyberwizard1001 | -| JavaScript | @paulsonjpaul | + +| Programming Language | Users | +| -------------------- | ------------------------------------------------- | +| C or C++ | @Arsenic-ATG, @UG-SEP, @aayushjain7 | +| Java | @TawfikYasser, @cyberwizard1001, @aayushjain7 | +| C# | @ming-tsai | +| Go | @atin | +| Python | @Arsenic-ATG, @atin, @sridhar-5, @cyberwizard1001 | +| JavaScript | @paulsonjpaul | + ## Open Graph + <img src="https://opengraph.github.com/3b128f0e88464a82a37f2daefd7d594c6f41a3c22b3bf94c0c030135039b5dd7/MakeContributions/DSA" /> ## License + [MIT](./LICENSE)