diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..dfe0770 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +# Auto detect text files and perform LF normalization +* text=auto diff --git a/.github/ISSUE_TEMPLATE/Bug_report.md b/.github/ISSUE_TEMPLATE/Bug_report.md new file mode 100644 index 0000000..a1d499d --- /dev/null +++ b/.github/ISSUE_TEMPLATE/Bug_report.md @@ -0,0 +1,23 @@ +--- +name: "\U0001F41BBug report" +about: Report an Issue +--- + + + +## Expected Behavior + + +## Current Behavior + + +## Possible Solution + + + +## Steps to Reproduce + + +## Context [OPTIONAL] + + diff --git a/.github/ISSUE_TEMPLATE/Feature_request.md b/.github/ISSUE_TEMPLATE/Feature_request.md new file mode 100644 index 0000000..e1ee160 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/Feature_request.md @@ -0,0 +1,26 @@ +--- +name: "\U0001F680Feature or Enhancement" +about: Suggest an Idea or Enhancement +--- + +### Description + + + +### Why + + + + + +### Possible Implementation & Open Questions + + + + + +### Is this something you're interested in working on? + + +- [ ] YES +- [ ] NO diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000..8e03653 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,27 @@ + + +## Description + + +## Motivation and Context + + + +## How Has This Been Tested? + + + + +## Types of changes + +- [ ] Content Update (change which fixes an issue or updates an already existing submission) +- [ ] New Article (change which adds functionality) +- [ ] Documentation change + +## Checklist: + + +- [ ] My code follows the code style of this project. +- [ ] I have updated the documentation accordingly. +- [ ] I have read the **CONTRIBUTING** document. +- [ ] I have made checks to ensure URLs and other resources are valid diff --git a/.github/stale.yml b/.github/stale.yml new file mode 100644 index 0000000..88c9758 --- /dev/null +++ b/.github/stale.yml @@ -0,0 +1,21 @@ +# Number of days of inactivity before an issue becomes stale +daysUntilStale: 30 +# Number of days of inactivity before a stale issue is closed +daysUntilClose: 14 +# Issues with these labels will never be considered stale +exemptLabels: + - pinned + - security + - help wanted + - good first issue + - enhancement + - in progress +# Label to use when marking an issue as stale +staleLabel: wontfix +# Comment to post when marking an issue as stale. Set to `false` to disable +markComment: > + This issue has been automatically marked as stale because it has not had + recent activity. It will be closed if no further activity occurs. Thank you + for your contributions. +# Comment to post when closing a stale issue. Set to `false` to disable +closeComment: true \ No newline at end of file diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..11ea81e --- /dev/null +++ b/.travis.yml @@ -0,0 +1,4 @@ +language: ruby +rvm: 2.4.1 +before_script: gem install awesome_bot +script: awesome_bot README.md --allow-redirect diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..31306fd --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,22 @@ +# Contribution guidelines + +Before making a pull request, please make sure of the following: +* The tutorial(s) you want to add do not already exist +* Your tutorial is correctly placed under the appropriate language/technology +* Improvements of the same tutorial are encouraged! +* The pull request needs to have a descriptive title +* If the language/technology of your tutorial does not exist, feel free to create a new entry in table of contents +* Make a separate pull request for each of the tutorial +* Use the following format `[Title](link_to_tutorial)` +* If your tutorial is a multi-part series, use the following format: + ``` + * Title + * [Part 1](link_to_part_1) + * [Part 2](link_to_part_2) + ``` +* Check the spelling and grammar +* Do the work, write good commit messages, and read the CONTRIBUTING file if there is one +* Remove any trailing whitespaces +* Links must be pointing straight to the tutorials, no URL shorteners. However, if the URL is too long (more than 80 characters), Google URL Shortener is allowed + +Thank you for your suggestions! If you think there is anything to improve with the guidelines, please contact me at diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..a7bfef5 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2022 hungvmlotus + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/LICENSE.md b/LICENSE.md new file mode 100644 index 0000000..3632221 --- /dev/null +++ b/LICENSE.md @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2021 practical-tutorials + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..f23db32 --- /dev/null +++ b/README.md @@ -0,0 +1,32 @@ +# Project Based Learning + +A list of programming tutorials in which aspiring software developers learn how to build an application from scratch. These tutorials are divided into different primary programming languages. Tutorials may involve multiple technologies and languages. + +To get started, simply fork this repo. Please refer to [CONTRIBUTING.md](CONTRIBUTING.md) for contribution guidelines. + +## Table of Contents: + +- [C#](#c) +- [C/C++](#cc) +- [Clojure](#clojure) +- [Dart](#dart) +- [Elixir](#elixir) +- [Erlang](#erlang) +- [F#](#f) +- [Go](#go) +- [Haskell](#haskell) +- [HTML/CSS](#html-and-css) +- [Java](#java) +- [JavaScript](#javascript) +- [Kotlin](#kotlin) +- [Lua](#lua) +- [OCaml](#ocaml) +- [PHP](#php) +- [Python](#python) +- [R](#r) +- [Ruby](#ruby) +- [Rust](#rust) +- [Scala](#scala) +- [Swift](#swift) +- [Additional resources](#additional-resources) +