diff --git a/.github/workflows/link-check.yml b/.github/workflows/link-check.yml new file mode 100644 index 0000000..99070f1 --- /dev/null +++ b/.github/workflows/link-check.yml @@ -0,0 +1,20 @@ +name: Check Markdown Links + +on: + push: + branches: [ main ] + pull_request: + +jobs: + link-check: + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Run lychee link checker + uses: lycheeverse/lychee-action@v2 + with: + args: --verbose --no-progress --max-redirects 5 --retry-wait-time 2 --max-retries 3 --exclude-all-private --exclude-file .lycheeignore './**/*.md' + env: + GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} diff --git a/.gitignore b/.gitignore index bd67aeb..405f0df 100644 --- a/.gitignore +++ b/.gitignore @@ -33,6 +33,7 @@ __pycache__/ *.pyo *.pyd venv/ +*.venv/ # === Java === *.class diff --git a/.lycheeignore b/.lycheeignore new file mode 100644 index 0000000..60674a2 --- /dev/null +++ b/.lycheeignore @@ -0,0 +1,7 @@ +# Ignore local dev servers +localhost +127.0.0.1 + +# Ignore external sites that block CI bots +amazon.com +leetcode.com diff --git a/README.md b/README.md index 16c0438..48cd02e 100644 --- a/README.md +++ b/README.md @@ -6,32 +6,32 @@ The challenges will be released weekly and come in different formats: head-to-he ## ๐Ÿ†• Latest Challenge -**[Week 22 - Ye Ole PubSub Pub](./week22_the_ole_pubsub_pub)** +**[Week 22 - Ye Ole PubSub Pub](challenges/week22_the_ole_pubsub_pub)** ### ๐Ÿ—‚ All Challenges #### โœ… Completed Challenges -- [Week 21 - Dennis Ritchie](./week21_dennis_ritchie) -- [Week 20 - FN(solid)](./week20_fn_solid) -- [Week 19 - Shunting Yard](./week19_shunting_yard_algo) -- [Week 18 - Pascals Pascal Triangle](./week18_pascals_pascal_triangle) -- [Week 17 - Page Peelers ](./week17_page_peelers) -- [Week 16 - Pen and Paper ](./week16_pen_and_paper) -- [Week 15 - Terminal Exorcism ](./week15_terminal_exorcism) -- [Week 14 - Now gimme my money ](./week14_now_gimme_my_money) -- [Week 13 - The Greatest Programming Book Written. Ever.](./week13_greatest_programming_book_ever_written) -- [Week 12 - Access Granted](./week12_access_granted) -- [Week 11 - We're in!](./week11_we_are_in) -- [Week 10 - XOR FTW](./week10_xor_ftw) -- [Week 9 - We Need To Go Deeper](./week9_inception) -- [Week 8 - Red Solo Cups](./week8_red_solo_cups) -- [Week 7 - A Variable Says What?](./week7_a_variable_says_what) -- [Week 6 - Stay Solid Friends](./week6_stay_solid_friends) -- [Week 5 - Swappin Aint Easy](./week5_swappin_aint_easy) -- [Week 4 - Wilt Chamberlain's 100 Point Game](./week4_wiltchamberlains_100_point_game) -- [Week 3 - This Math Aint Math'n](./week3_this_math_aint_mathin) -- [Week 2 - Join The Conga Line](./week2_the_conga_line) -- [Week 1 - Gossip Spreads](./week1_gossip_spreads) +- [Week 21 - Dennis Ritchie](challenges/week21_dennis_ritchie) +- [Week 20 - FN(solid)](challenges/week20_fn_solid) +- [Week 19 - Shunting Yard](challenges/week19_shunting_yard_algo) +- [Week 18 - Pascals Pascal Triangle](challenges/week18_pascals_pascal_triangle) +- [Week 17 - Page Peelers ](challenges/week17_page_peelers) +- [Week 16 - Pen and Paper ](challenges/week16_pen_and_paper) +- [Week 15 - Terminal Exorcism ](challenges/week15_terminal_exorcism) +- [Week 14 - Now gimme my money ](challenges/week14_now_gimme_my_money) +- [Week 13 - The Greatest Programming Book Written. Ever.](challenges/week13_greatest_programming_book_ever_written) +- [Week 12 - Access Granted](challenges/week12_access_granted) +- [Week 11 - We're in!](challenges/week11_we_are_in) +- [Week 10 - XOR FTW](challenges/week10_xor_ftw) +- [Week 9 - We Need To Go Deeper](challenges/week9_inception) +- [Week 8 - Red Solo Cups](challenges/week8_red_solo_cups) +- [Week 7 - A Variable Says What?](challenges/week7_a_variable_says_what) +- [Week 6 - Stay Solid Friends](challenges/week6_stay_solid_friends) +- [Week 5 - Swappin Aint Easy](challenges/week5_swappin_aint_easy) +- [Week 4 - Wilt Chamberlain's 100 Point Game](challenges/week4_wiltchamberlains_100_point_game) +- [Week 3 - This Math Aint Math'n](challenges/week3_this_math_aint_mathin) +- [Week 2 - Join The Conga Line](challenges/week2_the_conga_line) +- [Week 1 - Gossip Spreads](challenges/week1_gossip_spreads) #### ๐Ÿ”œ Upcoming Challenges - The Greatest Programming Book Ever Written diff --git a/week10_xor_ftw/README.md b/challenges/week10_xor_ftw/README.md similarity index 100% rename from week10_xor_ftw/README.md rename to challenges/week10_xor_ftw/README.md diff --git a/week10_xor_ftw/solutions/atbash_cipher/atbash.py b/challenges/week10_xor_ftw/solutions/atbash_cipher/atbash.py similarity index 100% rename from week10_xor_ftw/solutions/atbash_cipher/atbash.py rename to challenges/week10_xor_ftw/solutions/atbash_cipher/atbash.py diff --git a/week10_xor_ftw/solutions/caesar_cipher/caesar.cpp b/challenges/week10_xor_ftw/solutions/caesar_cipher/caesar.cpp similarity index 100% rename from week10_xor_ftw/solutions/caesar_cipher/caesar.cpp rename to challenges/week10_xor_ftw/solutions/caesar_cipher/caesar.cpp diff --git a/week10_xor_ftw/solutions/xor_cipher/c++/README.md b/challenges/week10_xor_ftw/solutions/xor_cipher/c++/README.md similarity index 100% rename from week10_xor_ftw/solutions/xor_cipher/c++/README.md rename to challenges/week10_xor_ftw/solutions/xor_cipher/c++/README.md diff --git a/week10_xor_ftw/solutions/xor_cipher/c++/encryption_key b/challenges/week10_xor_ftw/solutions/xor_cipher/c++/encryption_key similarity index 100% rename from week10_xor_ftw/solutions/xor_cipher/c++/encryption_key rename to challenges/week10_xor_ftw/solutions/xor_cipher/c++/encryption_key diff --git a/week10_xor_ftw/solutions/xor_cipher/c++/xor_encr.cpp b/challenges/week10_xor_ftw/solutions/xor_cipher/c++/xor_encr.cpp similarity index 100% rename from week10_xor_ftw/solutions/xor_cipher/c++/xor_encr.cpp rename to challenges/week10_xor_ftw/solutions/xor_cipher/c++/xor_encr.cpp diff --git a/week10_xor_ftw/solutions/xor_cipher/go/README.md b/challenges/week10_xor_ftw/solutions/xor_cipher/go/README.md similarity index 100% rename from week10_xor_ftw/solutions/xor_cipher/go/README.md rename to challenges/week10_xor_ftw/solutions/xor_cipher/go/README.md diff --git a/week10_xor_ftw/solutions/xor_cipher/go/xor_encr.go b/challenges/week10_xor_ftw/solutions/xor_cipher/go/xor_encr.go similarity index 100% rename from week10_xor_ftw/solutions/xor_cipher/go/xor_encr.go rename to challenges/week10_xor_ftw/solutions/xor_cipher/go/xor_encr.go diff --git a/week10_xor_ftw/solutions/xor_cipher/python/README.md b/challenges/week10_xor_ftw/solutions/xor_cipher/python/README.md similarity index 100% rename from week10_xor_ftw/solutions/xor_cipher/python/README.md rename to challenges/week10_xor_ftw/solutions/xor_cipher/python/README.md diff --git a/week10_xor_ftw/solutions/xor_cipher/python/key_plain_txt b/challenges/week10_xor_ftw/solutions/xor_cipher/python/key_plain_txt similarity index 100% rename from week10_xor_ftw/solutions/xor_cipher/python/key_plain_txt rename to challenges/week10_xor_ftw/solutions/xor_cipher/python/key_plain_txt diff --git a/week10_xor_ftw/solutions/xor_cipher/python/xor_encr.py b/challenges/week10_xor_ftw/solutions/xor_cipher/python/xor_encr.py similarity index 100% rename from week10_xor_ftw/solutions/xor_cipher/python/xor_encr.py rename to challenges/week10_xor_ftw/solutions/xor_cipher/python/xor_encr.py diff --git a/week11_we_are_in/README.md b/challenges/week11_we_are_in/README.md similarity index 96% rename from week11_we_are_in/README.md rename to challenges/week11_we_are_in/README.md index dd0ef86..db2c46b 100644 --- a/week11_we_are_in/README.md +++ b/challenges/week11_we_are_in/README.md @@ -20,7 +20,7 @@ But not before leaving behind **3 encrypted files** and a trail of questionable Reverse-engineer and **crack the encrypted files** using the clues left behind by the vibe coder: -- ๐Ÿง  Inference from [last weekโ€™s challenge](https://github.com/richvigorito/dev-challenges/tree/main/week10_xor_ftw) +- ๐Ÿง  Inference from [last weekโ€™s challenge](../week10_xor_ftw) - โ˜• And some cryptic desk remnants: a ฯ€ mug, a worn copy of Hitchhikerโ€™s Guide, and a note: โ€œEt tu, Brute?โ€ - ๐Ÿงพ The vibe coder's commit history: diff --git a/week11_we_are_in/enc1.bin b/challenges/week11_we_are_in/enc1.bin similarity index 100% rename from week11_we_are_in/enc1.bin rename to challenges/week11_we_are_in/enc1.bin diff --git a/week11_we_are_in/enc2.bin b/challenges/week11_we_are_in/enc2.bin similarity index 100% rename from week11_we_are_in/enc2.bin rename to challenges/week11_we_are_in/enc2.bin diff --git a/week11_we_are_in/enc2.py b/challenges/week11_we_are_in/enc2.py similarity index 100% rename from week11_we_are_in/enc2.py rename to challenges/week11_we_are_in/enc2.py diff --git a/week11_we_are_in/solutions/ceasar.py b/challenges/week11_we_are_in/solutions/ceasar.py similarity index 100% rename from week11_we_are_in/solutions/ceasar.py rename to challenges/week11_we_are_in/solutions/ceasar.py diff --git a/week11_we_are_in/solutions/crack_ceasar.sh b/challenges/week11_we_are_in/solutions/crack_ceasar.sh similarity index 100% rename from week11_we_are_in/solutions/crack_ceasar.sh rename to challenges/week11_we_are_in/solutions/crack_ceasar.sh diff --git a/week11_we_are_in/solutions/crack_xor.sh b/challenges/week11_we_are_in/solutions/crack_xor.sh similarity index 100% rename from week11_we_are_in/solutions/crack_xor.sh rename to challenges/week11_we_are_in/solutions/crack_xor.sh diff --git a/week11_we_are_in/solutions/xorcipher.py b/challenges/week11_we_are_in/solutions/xorcipher.py similarity index 100% rename from week11_we_are_in/solutions/xorcipher.py rename to challenges/week11_we_are_in/solutions/xorcipher.py diff --git a/week12_access_granted/README.md b/challenges/week12_access_granted/README.md similarity index 100% rename from week12_access_granted/README.md rename to challenges/week12_access_granted/README.md diff --git a/week13_greatest_programming_book_ever_written/README.md b/challenges/week13_greatest_programming_book_ever_written/README.md similarity index 86% rename from week13_greatest_programming_book_ever_written/README.md rename to challenges/week13_greatest_programming_book_ever_written/README.md index b62de07..2e0068b 100644 --- a/week13_greatest_programming_book_ever_written/README.md +++ b/challenges/week13_greatest_programming_book_ever_written/README.md @@ -2,7 +2,7 @@ ## ๐Ÿ“ Challenge Overview -In 2013, while taking an Algorithms course at Portland State University the professor [Dr. Herbert Mayer](https://de.wikipedia.org/wiki/Herbert_G._Mayer), a deeply respected authority in computer science, lifted this book and in his thick German accent said *"dis est de best programming book ever vritten."*; which I thought was incredible because 1) he just brought in the book in to show it off, it wasnt course material and 2) considering the [books that he wrote himself](https://www.amazon.com/Computers-Technology-Herbert-Mayer-Books/s?rh=n%3A5%2Cp_27%3AHerbert%2BMayer) figured it must of been good. I bought the book immediately, saw it was in Pascal, and closed immediately ๐Ÿ˜‚๐Ÿ˜‚๐Ÿ˜‚. +In 2013, while taking an Algorithms course at Portland State University the professor [Dr. Herbert Mayer](https://de.wikipedia.org/wiki/Herbert_G._Mayer), a deeply respected authority in computer science, lifted this book and in his thick German accent said *"dis est de best programming book ever vritten."*; which I thought was incredible because 1) he just brought in the book in to show it off, it wasnt course material and 2) considering the [books that he wrote himself](https://www.amazon.com/stores/Herbert-G.-Mayer/author/B001KIAOAM) figured it must of been good. I bought the book immediately, saw it was in Pascal, and closed immediately ๐Ÿ˜‚๐Ÿ˜‚๐Ÿ˜‚. Well today we're gonna learn some Pascal together so we can enjoy this ancient masterpiece. diff --git a/week14_now_gimme_my_money/README.md b/challenges/week14_now_gimme_my_money/README.md similarity index 95% rename from week14_now_gimme_my_money/README.md rename to challenges/week14_now_gimme_my_money/README.md index f1c7187..fc8a217 100644 --- a/week14_now_gimme_my_money/README.md +++ b/challenges/week14_now_gimme_my_money/README.md @@ -9,7 +9,7 @@ Youโ€™ve inherited an invoicing system with a pluggable `SumModule` component. T - Should we sum values **as-is with floats**? - Should we **convert to cents** and avoid FP altogether? -- Would fancy algorithms like [Kahan summation](https://www.geeksforgeeks.org/dsa/kahan-summation-algorithm/), [improved Neumaier version](https://en.wikipedia.org/wiki/Kahan_summation_algorithm#Further_enhancements) or a language specific package/datatype that uses [arbitray precision](https://en.wikipedia.org/wiki/Arbitrary-precision_arithmetic) like ([go big](https://pkg.go.dev/math/big), [php bcmath](https://www.php.net/manual/en/book.bc.php0), [python decimal module](https://docs.python.org/3/library/decimal.html), etc) to reduce errors 'enough'? +- Would fancy algorithms like [Kahan summation](https://www.geeksforgeeks.org/dsa/kahan-summation-algorithm/), [improved Neumaier version](https://en.wikipedia.org/wiki/Kahan_summation_algorithm#Further_enhancements) or a language specific package/datatype that uses [arbitray precision](https://en.wikipedia.org/wiki/Arbitrary-precision_arithmetic) like ([go big](https://pkg.go.dev/math/big), [php bcmath](https://www.php.net/manual/en/book.bc.php), [python decimal module](https://docs.python.org/3/library/decimal.html), etc) to reduce errors 'enough'? Your task: implement as many versions and compare! diff --git a/week14_now_gimme_my_money/solutions/engine.c b/challenges/week14_now_gimme_my_money/solutions/engine.c similarity index 100% rename from week14_now_gimme_my_money/solutions/engine.c rename to challenges/week14_now_gimme_my_money/solutions/engine.c diff --git a/week14_now_gimme_my_money/solutions/engine.go b/challenges/week14_now_gimme_my_money/solutions/engine.go similarity index 100% rename from week14_now_gimme_my_money/solutions/engine.go rename to challenges/week14_now_gimme_my_money/solutions/engine.go diff --git a/week14_now_gimme_my_money/solutions/engine.js b/challenges/week14_now_gimme_my_money/solutions/engine.js similarity index 100% rename from week14_now_gimme_my_money/solutions/engine.js rename to challenges/week14_now_gimme_my_money/solutions/engine.js diff --git a/week14_now_gimme_my_money/solutions/engine.py b/challenges/week14_now_gimme_my_money/solutions/engine.py similarity index 100% rename from week14_now_gimme_my_money/solutions/engine.py rename to challenges/week14_now_gimme_my_money/solutions/engine.py diff --git a/week15_terminal_exorcism/Dockerfile b/challenges/week15_terminal_exorcism/Dockerfile similarity index 100% rename from week15_terminal_exorcism/Dockerfile rename to challenges/week15_terminal_exorcism/Dockerfile diff --git a/week15_terminal_exorcism/README.md b/challenges/week15_terminal_exorcism/README.md similarity index 100% rename from week15_terminal_exorcism/README.md rename to challenges/week15_terminal_exorcism/README.md diff --git a/week15_terminal_exorcism/make_weird_files.sh b/challenges/week15_terminal_exorcism/make_weird_files.sh similarity index 100% rename from week15_terminal_exorcism/make_weird_files.sh rename to challenges/week15_terminal_exorcism/make_weird_files.sh diff --git a/week16_pen_and_paper/README.md b/challenges/week16_pen_and_paper/README.md similarity index 100% rename from week16_pen_and_paper/README.md rename to challenges/week16_pen_and_paper/README.md diff --git a/week17_page_peelers/README.md b/challenges/week17_page_peelers/README.md similarity index 100% rename from week17_page_peelers/README.md rename to challenges/week17_page_peelers/README.md diff --git a/week17_page_peelers/solution/README.md b/challenges/week17_page_peelers/solution/README.md similarity index 100% rename from week17_page_peelers/solution/README.md rename to challenges/week17_page_peelers/solution/README.md diff --git a/week17_page_peelers/solution/scrape.py b/challenges/week17_page_peelers/solution/scrape.py similarity index 100% rename from week17_page_peelers/solution/scrape.py rename to challenges/week17_page_peelers/solution/scrape.py diff --git a/week18_pascals_pascal_triangle/README.md b/challenges/week18_pascals_pascal_triangle/README.md similarity index 100% rename from week18_pascals_pascal_triangle/README.md rename to challenges/week18_pascals_pascal_triangle/README.md diff --git a/week19_shunting_yard_algo/README.md b/challenges/week19_shunting_yard_algo/README.md similarity index 100% rename from week19_shunting_yard_algo/README.md rename to challenges/week19_shunting_yard_algo/README.md diff --git a/week19_shunting_yard_algo/solutions/yard.cpp b/challenges/week19_shunting_yard_algo/solutions/yard.cpp similarity index 100% rename from week19_shunting_yard_algo/solutions/yard.cpp rename to challenges/week19_shunting_yard_algo/solutions/yard.cpp diff --git a/week1_gossip_spreads/README.md b/challenges/week1_gossip_spreads/README.md similarity index 100% rename from week1_gossip_spreads/README.md rename to challenges/week1_gossip_spreads/README.md diff --git a/week1_gossip_spreads/solutions/c/README.md b/challenges/week1_gossip_spreads/solutions/c/README.md similarity index 100% rename from week1_gossip_spreads/solutions/c/README.md rename to challenges/week1_gossip_spreads/solutions/c/README.md diff --git a/week1_gossip_spreads/solutions/c/broker.c b/challenges/week1_gossip_spreads/solutions/c/broker.c similarity index 100% rename from week1_gossip_spreads/solutions/c/broker.c rename to challenges/week1_gossip_spreads/solutions/c/broker.c diff --git a/week1_gossip_spreads/solutions/c/pub.c b/challenges/week1_gossip_spreads/solutions/c/pub.c similarity index 100% rename from week1_gossip_spreads/solutions/c/pub.c rename to challenges/week1_gossip_spreads/solutions/c/pub.c diff --git a/week1_gossip_spreads/solutions/c/sub.c b/challenges/week1_gossip_spreads/solutions/c/sub.c similarity index 100% rename from week1_gossip_spreads/solutions/c/sub.c rename to challenges/week1_gossip_spreads/solutions/c/sub.c diff --git a/week1_gossip_spreads/solutions/go/README.md b/challenges/week1_gossip_spreads/solutions/go/README.md similarity index 100% rename from week1_gossip_spreads/solutions/go/README.md rename to challenges/week1_gossip_spreads/solutions/go/README.md diff --git a/week1_gossip_spreads/solutions/go/pub.go b/challenges/week1_gossip_spreads/solutions/go/pub.go similarity index 100% rename from week1_gossip_spreads/solutions/go/pub.go rename to challenges/week1_gossip_spreads/solutions/go/pub.go diff --git a/week1_gossip_spreads/solutions/go/sub.go b/challenges/week1_gossip_spreads/solutions/go/sub.go similarity index 100% rename from week1_gossip_spreads/solutions/go/sub.go rename to challenges/week1_gossip_spreads/solutions/go/sub.go diff --git a/week1_gossip_spreads/solutions/python/README.md b/challenges/week1_gossip_spreads/solutions/python/README.md similarity index 96% rename from week1_gossip_spreads/solutions/python/README.md rename to challenges/week1_gossip_spreads/solutions/python/README.md index cc2b1fe..44b52e8 100644 --- a/week1_gossip_spreads/solutions/python/README.md +++ b/challenges/week1_gossip_spreads/solutions/python/README.md @@ -50,7 +50,7 @@ Opens a WebSocket connection to receive real-time messages published to that top You can test this with tools like: - [Websocketking.com](http://websocketking.com) - [hoppscotch.io](http://hoppscotch.io) -- [sample react ui](/week3_pubsub/solutions/react_frontend) +- [sample react ui](../react_frontend) Example URL: ```bash diff --git a/week1_gossip_spreads/solutions/python/api.py b/challenges/week1_gossip_spreads/solutions/python/api.py similarity index 100% rename from week1_gossip_spreads/solutions/python/api.py rename to challenges/week1_gossip_spreads/solutions/python/api.py diff --git a/week1_gossip_spreads/solutions/python/broker.py b/challenges/week1_gossip_spreads/solutions/python/broker.py similarity index 100% rename from week1_gossip_spreads/solutions/python/broker.py rename to challenges/week1_gossip_spreads/solutions/python/broker.py diff --git a/week1_gossip_spreads/solutions/python/requirements.txt b/challenges/week1_gossip_spreads/solutions/python/requirements.txt similarity index 100% rename from week1_gossip_spreads/solutions/python/requirements.txt rename to challenges/week1_gossip_spreads/solutions/python/requirements.txt diff --git a/week1_gossip_spreads/solutions/react_frontend/README.md b/challenges/week1_gossip_spreads/solutions/react_frontend/README.md similarity index 100% rename from week1_gossip_spreads/solutions/react_frontend/README.md rename to challenges/week1_gossip_spreads/solutions/react_frontend/README.md diff --git a/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/.gitignore b/challenges/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/.gitignore similarity index 100% rename from week1_gossip_spreads/solutions/react_frontend/pubsub-ui/.gitignore rename to challenges/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/.gitignore diff --git a/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/README.md b/challenges/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/README.md similarity index 100% rename from week1_gossip_spreads/solutions/react_frontend/pubsub-ui/README.md rename to challenges/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/README.md diff --git a/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/package-lock.json b/challenges/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/package-lock.json similarity index 100% rename from week1_gossip_spreads/solutions/react_frontend/pubsub-ui/package-lock.json rename to challenges/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/package-lock.json diff --git a/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/package.json b/challenges/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/package.json similarity index 100% rename from week1_gossip_spreads/solutions/react_frontend/pubsub-ui/package.json rename to challenges/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/package.json diff --git a/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/public/favicon.ico b/challenges/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/public/favicon.ico similarity index 100% rename from week1_gossip_spreads/solutions/react_frontend/pubsub-ui/public/favicon.ico rename to challenges/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/public/favicon.ico diff --git a/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/public/index.html b/challenges/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/public/index.html similarity index 100% rename from week1_gossip_spreads/solutions/react_frontend/pubsub-ui/public/index.html rename to challenges/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/public/index.html diff --git a/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/public/logo192.png b/challenges/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/public/logo192.png similarity index 100% rename from week1_gossip_spreads/solutions/react_frontend/pubsub-ui/public/logo192.png rename to challenges/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/public/logo192.png diff --git a/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/public/logo512.png b/challenges/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/public/logo512.png similarity index 100% rename from week1_gossip_spreads/solutions/react_frontend/pubsub-ui/public/logo512.png rename to challenges/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/public/logo512.png diff --git a/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/public/manifest.json b/challenges/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/public/manifest.json similarity index 100% rename from week1_gossip_spreads/solutions/react_frontend/pubsub-ui/public/manifest.json rename to challenges/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/public/manifest.json diff --git a/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/public/robots.txt b/challenges/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/public/robots.txt similarity index 100% rename from week1_gossip_spreads/solutions/react_frontend/pubsub-ui/public/robots.txt rename to challenges/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/public/robots.txt diff --git a/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/src/App.css b/challenges/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/src/App.css similarity index 100% rename from week1_gossip_spreads/solutions/react_frontend/pubsub-ui/src/App.css rename to challenges/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/src/App.css diff --git a/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/src/App.js b/challenges/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/src/App.js similarity index 100% rename from week1_gossip_spreads/solutions/react_frontend/pubsub-ui/src/App.js rename to challenges/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/src/App.js diff --git a/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/src/App.test.js b/challenges/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/src/App.test.js similarity index 100% rename from week1_gossip_spreads/solutions/react_frontend/pubsub-ui/src/App.test.js rename to challenges/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/src/App.test.js diff --git a/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/src/Publisher.js b/challenges/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/src/Publisher.js similarity index 100% rename from week1_gossip_spreads/solutions/react_frontend/pubsub-ui/src/Publisher.js rename to challenges/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/src/Publisher.js diff --git a/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/src/Subscriber.js b/challenges/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/src/Subscriber.js similarity index 100% rename from week1_gossip_spreads/solutions/react_frontend/pubsub-ui/src/Subscriber.js rename to challenges/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/src/Subscriber.js diff --git a/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/src/index.css b/challenges/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/src/index.css similarity index 100% rename from week1_gossip_spreads/solutions/react_frontend/pubsub-ui/src/index.css rename to challenges/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/src/index.css diff --git a/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/src/index.js b/challenges/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/src/index.js similarity index 100% rename from week1_gossip_spreads/solutions/react_frontend/pubsub-ui/src/index.js rename to challenges/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/src/index.js diff --git a/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/src/logo.svg b/challenges/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/src/logo.svg similarity index 100% rename from week1_gossip_spreads/solutions/react_frontend/pubsub-ui/src/logo.svg rename to challenges/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/src/logo.svg diff --git a/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/src/reportWebVitals.js b/challenges/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/src/reportWebVitals.js similarity index 100% rename from week1_gossip_spreads/solutions/react_frontend/pubsub-ui/src/reportWebVitals.js rename to challenges/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/src/reportWebVitals.js diff --git a/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/src/setupTests.js b/challenges/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/src/setupTests.js similarity index 100% rename from week1_gossip_spreads/solutions/react_frontend/pubsub-ui/src/setupTests.js rename to challenges/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/src/setupTests.js diff --git a/week20_fn_solid/README.md b/challenges/week20_fn_solid/README.md similarity index 100% rename from week20_fn_solid/README.md rename to challenges/week20_fn_solid/README.md diff --git a/week20_fn_solid/env/Dockerfile b/challenges/week20_fn_solid/env/Dockerfile similarity index 100% rename from week20_fn_solid/env/Dockerfile rename to challenges/week20_fn_solid/env/Dockerfile diff --git a/week20_fn_solid/env/Makefile b/challenges/week20_fn_solid/env/Makefile similarity index 100% rename from week20_fn_solid/env/Makefile rename to challenges/week20_fn_solid/env/Makefile diff --git a/week20_fn_solid/env/challenge_files/dip_vending.ts b/challenges/week20_fn_solid/env/challenge_files/dip_vending.ts similarity index 100% rename from week20_fn_solid/env/challenge_files/dip_vending.ts rename to challenges/week20_fn_solid/env/challenge_files/dip_vending.ts diff --git a/week20_fn_solid/env/challenge_files/isp_robot.java b/challenges/week20_fn_solid/env/challenge_files/isp_robot.java similarity index 100% rename from week20_fn_solid/env/challenge_files/isp_robot.java rename to challenges/week20_fn_solid/env/challenge_files/isp_robot.java diff --git a/week20_fn_solid/env/challenge_files/lsp_vehicle.cs b/challenges/week20_fn_solid/env/challenge_files/lsp_vehicle.cs similarity index 100% rename from week20_fn_solid/env/challenge_files/lsp_vehicle.cs rename to challenges/week20_fn_solid/env/challenge_files/lsp_vehicle.cs diff --git a/week20_fn_solid/env/challenge_files/ocp_pricing.go b/challenges/week20_fn_solid/env/challenge_files/ocp_pricing.go similarity index 100% rename from week20_fn_solid/env/challenge_files/ocp_pricing.go rename to challenges/week20_fn_solid/env/challenge_files/ocp_pricing.go diff --git a/week20_fn_solid/env/challenge_files/srp_printer.py b/challenges/week20_fn_solid/env/challenge_files/srp_printer.py similarity index 100% rename from week20_fn_solid/env/challenge_files/srp_printer.py rename to challenges/week20_fn_solid/env/challenge_files/srp_printer.py diff --git a/week20_fn_solid/env/solutions/dip_vending.ts b/challenges/week20_fn_solid/env/solutions/dip_vending.ts similarity index 100% rename from week20_fn_solid/env/solutions/dip_vending.ts rename to challenges/week20_fn_solid/env/solutions/dip_vending.ts diff --git a/week20_fn_solid/env/solutions/isp_robot.java b/challenges/week20_fn_solid/env/solutions/isp_robot.java similarity index 100% rename from week20_fn_solid/env/solutions/isp_robot.java rename to challenges/week20_fn_solid/env/solutions/isp_robot.java diff --git a/week20_fn_solid/env/solutions/lsp_vehicle.cs b/challenges/week20_fn_solid/env/solutions/lsp_vehicle.cs similarity index 100% rename from week20_fn_solid/env/solutions/lsp_vehicle.cs rename to challenges/week20_fn_solid/env/solutions/lsp_vehicle.cs diff --git a/week20_fn_solid/env/solutions/ocp_pricing.go b/challenges/week20_fn_solid/env/solutions/ocp_pricing.go similarity index 100% rename from week20_fn_solid/env/solutions/ocp_pricing.go rename to challenges/week20_fn_solid/env/solutions/ocp_pricing.go diff --git a/week20_fn_solid/env/solutions/srp_printer.py b/challenges/week20_fn_solid/env/solutions/srp_printer.py similarity index 100% rename from week20_fn_solid/env/solutions/srp_printer.py rename to challenges/week20_fn_solid/env/solutions/srp_printer.py diff --git a/week21_dennis_ritchie/README.md b/challenges/week21_dennis_ritchie/README.md similarity index 100% rename from week21_dennis_ritchie/README.md rename to challenges/week21_dennis_ritchie/README.md diff --git a/week21_dennis_ritchie/solutions/hello_world.c b/challenges/week21_dennis_ritchie/solutions/hello_world.c similarity index 100% rename from week21_dennis_ritchie/solutions/hello_world.c rename to challenges/week21_dennis_ritchie/solutions/hello_world.c diff --git a/week21_dennis_ritchie/solutions/input_to_output.c b/challenges/week21_dennis_ritchie/solutions/input_to_output.c similarity index 100% rename from week21_dennis_ritchie/solutions/input_to_output.c rename to challenges/week21_dennis_ritchie/solutions/input_to_output.c diff --git a/week21_dennis_ritchie/solutions/pointer_string.c b/challenges/week21_dennis_ritchie/solutions/pointer_string.c similarity index 100% rename from week21_dennis_ritchie/solutions/pointer_string.c rename to challenges/week21_dennis_ritchie/solutions/pointer_string.c diff --git a/week22_the_ole_pubsub_pub/README.md b/challenges/week22_the_ole_pubsub_pub/README.md similarity index 100% rename from week22_the_ole_pubsub_pub/README.md rename to challenges/week22_the_ole_pubsub_pub/README.md diff --git a/week22_the_ole_pubsub_pub/solutions/broker.c b/challenges/week22_the_ole_pubsub_pub/solutions/broker.c similarity index 100% rename from week22_the_ole_pubsub_pub/solutions/broker.c rename to challenges/week22_the_ole_pubsub_pub/solutions/broker.c diff --git a/week22_the_ole_pubsub_pub/solutions/pub.c b/challenges/week22_the_ole_pubsub_pub/solutions/pub.c similarity index 100% rename from week22_the_ole_pubsub_pub/solutions/pub.c rename to challenges/week22_the_ole_pubsub_pub/solutions/pub.c diff --git a/week22_the_ole_pubsub_pub/solutions/sub.c b/challenges/week22_the_ole_pubsub_pub/solutions/sub.c similarity index 100% rename from week22_the_ole_pubsub_pub/solutions/sub.c rename to challenges/week22_the_ole_pubsub_pub/solutions/sub.c diff --git a/week2_the_conga_line/README.md b/challenges/week2_the_conga_line/README.md similarity index 100% rename from week2_the_conga_line/README.md rename to challenges/week2_the_conga_line/README.md diff --git a/week2_the_conga_line/solutions/go/linkedlist.go b/challenges/week2_the_conga_line/solutions/go/linkedlist.go similarity index 100% rename from week2_the_conga_line/solutions/go/linkedlist.go rename to challenges/week2_the_conga_line/solutions/go/linkedlist.go diff --git a/week2_the_conga_line/solutions/python/linkedlist.py b/challenges/week2_the_conga_line/solutions/python/linkedlist.py similarity index 100% rename from week2_the_conga_line/solutions/python/linkedlist.py rename to challenges/week2_the_conga_line/solutions/python/linkedlist.py diff --git a/week3_this_math_aint_mathin/README.md b/challenges/week3_this_math_aint_mathin/README.md similarity index 100% rename from week3_this_math_aint_mathin/README.md rename to challenges/week3_this_math_aint_mathin/README.md diff --git a/week3_this_math_aint_mathin/solutions/c/arith.c b/challenges/week3_this_math_aint_mathin/solutions/c/arith.c similarity index 100% rename from week3_this_math_aint_mathin/solutions/c/arith.c rename to challenges/week3_this_math_aint_mathin/solutions/c/arith.c diff --git a/week3_this_math_aint_mathin/solutions/erlang/arith.erl b/challenges/week3_this_math_aint_mathin/solutions/erlang/arith.erl similarity index 100% rename from week3_this_math_aint_mathin/solutions/erlang/arith.erl rename to challenges/week3_this_math_aint_mathin/solutions/erlang/arith.erl diff --git a/week3_this_math_aint_mathin/solutions/erlang/arith_tests.erl b/challenges/week3_this_math_aint_mathin/solutions/erlang/arith_tests.erl similarity index 100% rename from week3_this_math_aint_mathin/solutions/erlang/arith_tests.erl rename to challenges/week3_this_math_aint_mathin/solutions/erlang/arith_tests.erl diff --git a/week4_wiltchamberlains_100_point_game/README.md b/challenges/week4_wiltchamberlains_100_point_game/README.md similarity index 100% rename from week4_wiltchamberlains_100_point_game/README.md rename to challenges/week4_wiltchamberlains_100_point_game/README.md diff --git a/week4_wiltchamberlains_100_point_game/files/dame.json b/challenges/week4_wiltchamberlains_100_point_game/files/dame.json similarity index 100% rename from week4_wiltchamberlains_100_point_game/files/dame.json rename to challenges/week4_wiltchamberlains_100_point_game/files/dame.json diff --git a/week4_wiltchamberlains_100_point_game/files/lillard-game-pbp.txt b/challenges/week4_wiltchamberlains_100_point_game/files/lillard-game-pbp.txt similarity index 100% rename from week4_wiltchamberlains_100_point_game/files/lillard-game-pbp.txt rename to challenges/week4_wiltchamberlains_100_point_game/files/lillard-game-pbp.txt diff --git a/week4_wiltchamberlains_100_point_game/files/parse_game.sh b/challenges/week4_wiltchamberlains_100_point_game/files/parse_game.sh similarity index 100% rename from week4_wiltchamberlains_100_point_game/files/parse_game.sh rename to challenges/week4_wiltchamberlains_100_point_game/files/parse_game.sh diff --git a/week4_wiltchamberlains_100_point_game/files/rudy-game-pbp.txt b/challenges/week4_wiltchamberlains_100_point_game/files/rudy-game-pbp.txt similarity index 100% rename from week4_wiltchamberlains_100_point_game/files/rudy-game-pbp.txt rename to challenges/week4_wiltchamberlains_100_point_game/files/rudy-game-pbp.txt diff --git a/week4_wiltchamberlains_100_point_game/files/rudy.json b/challenges/week4_wiltchamberlains_100_point_game/files/rudy.json similarity index 100% rename from week4_wiltchamberlains_100_point_game/files/rudy.json rename to challenges/week4_wiltchamberlains_100_point_game/files/rudy.json diff --git a/week4_wiltchamberlains_100_point_game/files/trailblazers.png b/challenges/week4_wiltchamberlains_100_point_game/files/trailblazers.png similarity index 100% rename from week4_wiltchamberlains_100_point_game/files/trailblazers.png rename to challenges/week4_wiltchamberlains_100_point_game/files/trailblazers.png diff --git a/week4_wiltchamberlains_100_point_game/files/wilt.json b/challenges/week4_wiltchamberlains_100_point_game/files/wilt.json similarity index 100% rename from week4_wiltchamberlains_100_point_game/files/wilt.json rename to challenges/week4_wiltchamberlains_100_point_game/files/wilt.json diff --git a/week4_wiltchamberlains_100_point_game/solutions/bash/README.md b/challenges/week4_wiltchamberlains_100_point_game/solutions/bash/README.md similarity index 100% rename from week4_wiltchamberlains_100_point_game/solutions/bash/README.md rename to challenges/week4_wiltchamberlains_100_point_game/solutions/bash/README.md diff --git a/week4_wiltchamberlains_100_point_game/solutions/bash/simulate.sh b/challenges/week4_wiltchamberlains_100_point_game/solutions/bash/simulate.sh similarity index 100% rename from week4_wiltchamberlains_100_point_game/solutions/bash/simulate.sh rename to challenges/week4_wiltchamberlains_100_point_game/solutions/bash/simulate.sh diff --git a/week4_wiltchamberlains_100_point_game/solutions/bash/simulation.gif b/challenges/week4_wiltchamberlains_100_point_game/solutions/bash/simulation.gif similarity index 100% rename from week4_wiltchamberlains_100_point_game/solutions/bash/simulation.gif rename to challenges/week4_wiltchamberlains_100_point_game/solutions/bash/simulation.gif diff --git a/week4_wiltchamberlains_100_point_game/solutions/bash/simulation.webm b/challenges/week4_wiltchamberlains_100_point_game/solutions/bash/simulation.webm similarity index 100% rename from week4_wiltchamberlains_100_point_game/solutions/bash/simulation.webm rename to challenges/week4_wiltchamberlains_100_point_game/solutions/bash/simulation.webm diff --git a/week4_wiltchamberlains_100_point_game/solutions/python/matplotlib_ex/README.md b/challenges/week4_wiltchamberlains_100_point_game/solutions/python/matplotlib_ex/README.md similarity index 100% rename from week4_wiltchamberlains_100_point_game/solutions/python/matplotlib_ex/README.md rename to challenges/week4_wiltchamberlains_100_point_game/solutions/python/matplotlib_ex/README.md diff --git a/week4_wiltchamberlains_100_point_game/solutions/python/matplotlib_ex/graph.png b/challenges/week4_wiltchamberlains_100_point_game/solutions/python/matplotlib_ex/graph.png similarity index 100% rename from week4_wiltchamberlains_100_point_game/solutions/python/matplotlib_ex/graph.png rename to challenges/week4_wiltchamberlains_100_point_game/solutions/python/matplotlib_ex/graph.png diff --git a/week4_wiltchamberlains_100_point_game/solutions/python/matplotlib_ex/matplotlib_ex.py b/challenges/week4_wiltchamberlains_100_point_game/solutions/python/matplotlib_ex/matplotlib_ex.py similarity index 100% rename from week4_wiltchamberlains_100_point_game/solutions/python/matplotlib_ex/matplotlib_ex.py rename to challenges/week4_wiltchamberlains_100_point_game/solutions/python/matplotlib_ex/matplotlib_ex.py diff --git a/week4_wiltchamberlains_100_point_game/solutions/python/matplotlib_ex/requirements.txt b/challenges/week4_wiltchamberlains_100_point_game/solutions/python/matplotlib_ex/requirements.txt similarity index 100% rename from week4_wiltchamberlains_100_point_game/solutions/python/matplotlib_ex/requirements.txt rename to challenges/week4_wiltchamberlains_100_point_game/solutions/python/matplotlib_ex/requirements.txt diff --git a/week5_swappin_aint_easy/README.md b/challenges/week5_swappin_aint_easy/README.md similarity index 100% rename from week5_swappin_aint_easy/README.md rename to challenges/week5_swappin_aint_easy/README.md diff --git a/week5_swappin_aint_easy/solutions/Dockerfile b/challenges/week5_swappin_aint_easy/solutions/Dockerfile similarity index 100% rename from week5_swappin_aint_easy/solutions/Dockerfile rename to challenges/week5_swappin_aint_easy/solutions/Dockerfile diff --git a/week5_swappin_aint_easy/solutions/run_all.sh b/challenges/week5_swappin_aint_easy/solutions/run_all.sh similarity index 100% rename from week5_swappin_aint_easy/solutions/run_all.sh rename to challenges/week5_swappin_aint_easy/solutions/run_all.sh diff --git a/week5_swappin_aint_easy/solutions/swap/Swap.java b/challenges/week5_swappin_aint_easy/solutions/swap/Swap.java similarity index 100% rename from week5_swappin_aint_easy/solutions/swap/Swap.java rename to challenges/week5_swappin_aint_easy/solutions/swap/Swap.java diff --git a/week5_swappin_aint_easy/solutions/swap/swap.c b/challenges/week5_swappin_aint_easy/solutions/swap/swap.c similarity index 100% rename from week5_swappin_aint_easy/solutions/swap/swap.c rename to challenges/week5_swappin_aint_easy/solutions/swap/swap.c diff --git a/week5_swappin_aint_easy/solutions/swap/swap.clj b/challenges/week5_swappin_aint_easy/solutions/swap/swap.clj similarity index 100% rename from week5_swappin_aint_easy/solutions/swap/swap.clj rename to challenges/week5_swappin_aint_easy/solutions/swap/swap.clj diff --git a/week5_swappin_aint_easy/solutions/swap/swap.cpp b/challenges/week5_swappin_aint_easy/solutions/swap/swap.cpp similarity index 100% rename from week5_swappin_aint_easy/solutions/swap/swap.cpp rename to challenges/week5_swappin_aint_easy/solutions/swap/swap.cpp diff --git a/week5_swappin_aint_easy/solutions/swap/swap.erl b/challenges/week5_swappin_aint_easy/solutions/swap/swap.erl similarity index 100% rename from week5_swappin_aint_easy/solutions/swap/swap.erl rename to challenges/week5_swappin_aint_easy/solutions/swap/swap.erl diff --git a/week5_swappin_aint_easy/solutions/swap/swap.f90 b/challenges/week5_swappin_aint_easy/solutions/swap/swap.f90 similarity index 100% rename from week5_swappin_aint_easy/solutions/swap/swap.f90 rename to challenges/week5_swappin_aint_easy/solutions/swap/swap.f90 diff --git a/week5_swappin_aint_easy/solutions/swap/swap.go b/challenges/week5_swappin_aint_easy/solutions/swap/swap.go similarity index 100% rename from week5_swappin_aint_easy/solutions/swap/swap.go rename to challenges/week5_swappin_aint_easy/solutions/swap/swap.go diff --git a/week5_swappin_aint_easy/solutions/swap/swap.hs b/challenges/week5_swappin_aint_easy/solutions/swap/swap.hs similarity index 100% rename from week5_swappin_aint_easy/solutions/swap/swap.hs rename to challenges/week5_swappin_aint_easy/solutions/swap/swap.hs diff --git a/week5_swappin_aint_easy/solutions/swap/swap.lisp b/challenges/week5_swappin_aint_easy/solutions/swap/swap.lisp similarity index 100% rename from week5_swappin_aint_easy/solutions/swap/swap.lisp rename to challenges/week5_swappin_aint_easy/solutions/swap/swap.lisp diff --git a/week5_swappin_aint_easy/solutions/swap/swap.php b/challenges/week5_swappin_aint_easy/solutions/swap/swap.php similarity index 100% rename from week5_swappin_aint_easy/solutions/swap/swap.php rename to challenges/week5_swappin_aint_easy/solutions/swap/swap.php diff --git a/week5_swappin_aint_easy/solutions/swap/swap.py b/challenges/week5_swappin_aint_easy/solutions/swap/swap.py similarity index 100% rename from week5_swappin_aint_easy/solutions/swap/swap.py rename to challenges/week5_swappin_aint_easy/solutions/swap/swap.py diff --git a/week5_swappin_aint_easy/solutions/swap/swap.rb b/challenges/week5_swappin_aint_easy/solutions/swap/swap.rb similarity index 100% rename from week5_swappin_aint_easy/solutions/swap/swap.rb rename to challenges/week5_swappin_aint_easy/solutions/swap/swap.rb diff --git a/week5_swappin_aint_easy/solutions/swap/swap.rs b/challenges/week5_swappin_aint_easy/solutions/swap/swap.rs similarity index 100% rename from week5_swappin_aint_easy/solutions/swap/swap.rs rename to challenges/week5_swappin_aint_easy/solutions/swap/swap.rs diff --git a/week5_swappin_aint_easy/solutions/swap/swap.scala b/challenges/week5_swappin_aint_easy/solutions/swap/swap.scala similarity index 100% rename from week5_swappin_aint_easy/solutions/swap/swap.scala rename to challenges/week5_swappin_aint_easy/solutions/swap/swap.scala diff --git a/week5_swappin_aint_easy/solutions/swap/swap.sh b/challenges/week5_swappin_aint_easy/solutions/swap/swap.sh similarity index 100% rename from week5_swappin_aint_easy/solutions/swap/swap.sh rename to challenges/week5_swappin_aint_easy/solutions/swap/swap.sh diff --git a/week6_stay_solid_friends/README.md b/challenges/week6_stay_solid_friends/README.md similarity index 100% rename from week6_stay_solid_friends/README.md rename to challenges/week6_stay_solid_friends/README.md diff --git a/week6_stay_solid_friends/bad_code/cpp_bad_code.cpp b/challenges/week6_stay_solid_friends/bad_code/cpp_bad_code.cpp similarity index 100% rename from week6_stay_solid_friends/bad_code/cpp_bad_code.cpp rename to challenges/week6_stay_solid_friends/bad_code/cpp_bad_code.cpp diff --git a/week6_stay_solid_friends/bad_code/go_bad_code.go b/challenges/week6_stay_solid_friends/bad_code/go_bad_code.go similarity index 100% rename from week6_stay_solid_friends/bad_code/go_bad_code.go rename to challenges/week6_stay_solid_friends/bad_code/go_bad_code.go diff --git a/week6_stay_solid_friends/bad_code/php_bad_code.php b/challenges/week6_stay_solid_friends/bad_code/php_bad_code.php similarity index 100% rename from week6_stay_solid_friends/bad_code/php_bad_code.php rename to challenges/week6_stay_solid_friends/bad_code/php_bad_code.php diff --git a/week6_stay_solid_friends/bad_code/python_bad_code.py b/challenges/week6_stay_solid_friends/bad_code/python_bad_code.py similarity index 100% rename from week6_stay_solid_friends/bad_code/python_bad_code.py rename to challenges/week6_stay_solid_friends/bad_code/python_bad_code.py diff --git a/week6_stay_solid_friends/bad_code/ruby_bad_code.rb b/challenges/week6_stay_solid_friends/bad_code/ruby_bad_code.rb similarity index 100% rename from week6_stay_solid_friends/bad_code/ruby_bad_code.rb rename to challenges/week6_stay_solid_friends/bad_code/ruby_bad_code.rb diff --git a/week6_stay_solid_friends/solutions/refactored.cpp b/challenges/week6_stay_solid_friends/solutions/refactored.cpp similarity index 100% rename from week6_stay_solid_friends/solutions/refactored.cpp rename to challenges/week6_stay_solid_friends/solutions/refactored.cpp diff --git a/week6_stay_solid_friends/solutions/refactored.go b/challenges/week6_stay_solid_friends/solutions/refactored.go similarity index 100% rename from week6_stay_solid_friends/solutions/refactored.go rename to challenges/week6_stay_solid_friends/solutions/refactored.go diff --git a/week6_stay_solid_friends/solutions/refactored.php b/challenges/week6_stay_solid_friends/solutions/refactored.php similarity index 100% rename from week6_stay_solid_friends/solutions/refactored.php rename to challenges/week6_stay_solid_friends/solutions/refactored.php diff --git a/week6_stay_solid_friends/solutions/refactored.py b/challenges/week6_stay_solid_friends/solutions/refactored.py similarity index 100% rename from week6_stay_solid_friends/solutions/refactored.py rename to challenges/week6_stay_solid_friends/solutions/refactored.py diff --git a/week6_stay_solid_friends/solutions/refactored.rb b/challenges/week6_stay_solid_friends/solutions/refactored.rb similarity index 100% rename from week6_stay_solid_friends/solutions/refactored.rb rename to challenges/week6_stay_solid_friends/solutions/refactored.rb diff --git a/week7_a_variable_says_what/README.md b/challenges/week7_a_variable_says_what/README.md similarity index 100% rename from week7_a_variable_says_what/README.md rename to challenges/week7_a_variable_says_what/README.md diff --git a/week7_a_variable_says_what/var_vars.php b/challenges/week7_a_variable_says_what/var_vars.php similarity index 100% rename from week7_a_variable_says_what/var_vars.php rename to challenges/week7_a_variable_says_what/var_vars.php diff --git a/week8_red_solo_cups/README.md b/challenges/week8_red_solo_cups/README.md similarity index 100% rename from week8_red_solo_cups/README.md rename to challenges/week8_red_solo_cups/README.md diff --git a/week9_inception/README.md b/challenges/week9_inception/README.md similarity index 100% rename from week9_inception/README.md rename to challenges/week9_inception/README.md diff --git a/week9_inception/solutions/C#_calls_F#/CSharpApp/CSharpApp.csproj b/challenges/week9_inception/solutions/C#_calls_F#/CSharpApp/CSharpApp.csproj similarity index 100% rename from week9_inception/solutions/C#_calls_F#/CSharpApp/CSharpApp.csproj rename to challenges/week9_inception/solutions/C#_calls_F#/CSharpApp/CSharpApp.csproj diff --git a/week9_inception/solutions/C#_calls_F#/CSharpApp/Program.cs b/challenges/week9_inception/solutions/C#_calls_F#/CSharpApp/Program.cs similarity index 100% rename from week9_inception/solutions/C#_calls_F#/CSharpApp/Program.cs rename to challenges/week9_inception/solutions/C#_calls_F#/CSharpApp/Program.cs diff --git a/week9_inception/solutions/C#_calls_F#/HelloLib/Hello.fs b/challenges/week9_inception/solutions/C#_calls_F#/HelloLib/Hello.fs similarity index 100% rename from week9_inception/solutions/C#_calls_F#/HelloLib/Hello.fs rename to challenges/week9_inception/solutions/C#_calls_F#/HelloLib/Hello.fs diff --git a/week9_inception/solutions/C#_calls_F#/HelloLib/HelloLib.fsproj b/challenges/week9_inception/solutions/C#_calls_F#/HelloLib/HelloLib.fsproj similarity index 100% rename from week9_inception/solutions/C#_calls_F#/HelloLib/HelloLib.fsproj rename to challenges/week9_inception/solutions/C#_calls_F#/HelloLib/HelloLib.fsproj diff --git a/week9_inception/solutions/C#_calls_F#/README.md b/challenges/week9_inception/solutions/C#_calls_F#/README.md similarity index 100% rename from week9_inception/solutions/C#_calls_F#/README.md rename to challenges/week9_inception/solutions/C#_calls_F#/README.md diff --git a/week9_inception/solutions/c_calls_assembly/hello.asm b/challenges/week9_inception/solutions/c_calls_assembly/hello.asm similarity index 100% rename from week9_inception/solutions/c_calls_assembly/hello.asm rename to challenges/week9_inception/solutions/c_calls_assembly/hello.asm diff --git a/week9_inception/solutions/c_calls_assembly/hello.c b/challenges/week9_inception/solutions/c_calls_assembly/hello.c similarity index 100% rename from week9_inception/solutions/c_calls_assembly/hello.c rename to challenges/week9_inception/solutions/c_calls_assembly/hello.c diff --git a/week9_inception/solutions/inception/README.md b/challenges/week9_inception/solutions/inception/README.md similarity index 100% rename from week9_inception/solutions/inception/README.md rename to challenges/week9_inception/solutions/inception/README.md diff --git a/week9_inception/solutions/inception/c/hello.asm b/challenges/week9_inception/solutions/inception/c/hello.asm similarity index 100% rename from week9_inception/solutions/inception/c/hello.asm rename to challenges/week9_inception/solutions/inception/c/hello.asm diff --git a/week9_inception/solutions/inception/c/main.c b/challenges/week9_inception/solutions/inception/c/main.c similarity index 100% rename from week9_inception/solutions/inception/c/main.c rename to challenges/week9_inception/solutions/inception/c/main.c diff --git a/week9_inception/solutions/inception/c/nq.c b/challenges/week9_inception/solutions/inception/c/nq.c similarity index 100% rename from week9_inception/solutions/inception/c/nq.c rename to challenges/week9_inception/solutions/inception/c/nq.c diff --git a/week9_inception/solutions/inception/c/nqueens.h b/challenges/week9_inception/solutions/inception/c/nqueens.h similarity index 100% rename from week9_inception/solutions/inception/c/nqueens.h rename to challenges/week9_inception/solutions/inception/c/nqueens.h diff --git a/week9_inception/solutions/inception/go/main.go b/challenges/week9_inception/solutions/inception/go/main.go similarity index 100% rename from week9_inception/solutions/inception/go/main.go rename to challenges/week9_inception/solutions/inception/go/main.go diff --git a/week9_inception/solutions/inception/go/nq.native.go b/challenges/week9_inception/solutions/inception/go/nq.native.go similarity index 100% rename from week9_inception/solutions/inception/go/nq.native.go rename to challenges/week9_inception/solutions/inception/go/nq.native.go diff --git a/week9_inception/solutions/inception/go/pythonlib.nq.go b/challenges/week9_inception/solutions/inception/go/pythonlib.nq.go similarity index 100% rename from week9_inception/solutions/inception/go/pythonlib.nq.go rename to challenges/week9_inception/solutions/inception/go/pythonlib.nq.go diff --git a/week9_inception/solutions/inception/python/nq.native.py b/challenges/week9_inception/solutions/inception/python/nq.native.py similarity index 100% rename from week9_inception/solutions/inception/python/nq.native.py rename to challenges/week9_inception/solutions/inception/python/nq.native.py diff --git a/week9_inception/solutions/inception/python/nq.py b/challenges/week9_inception/solutions/inception/python/nq.py similarity index 100% rename from week9_inception/solutions/inception/python/nq.py rename to challenges/week9_inception/solutions/inception/python/nq.py diff --git a/week9_inception/solutions/java_calls_kotlin/Hello.kt b/challenges/week9_inception/solutions/java_calls_kotlin/Hello.kt similarity index 100% rename from week9_inception/solutions/java_calls_kotlin/Hello.kt rename to challenges/week9_inception/solutions/java_calls_kotlin/Hello.kt diff --git a/week9_inception/solutions/java_calls_kotlin/Main.java b/challenges/week9_inception/solutions/java_calls_kotlin/Main.java similarity index 100% rename from week9_inception/solutions/java_calls_kotlin/Main.java rename to challenges/week9_inception/solutions/java_calls_kotlin/Main.java diff --git a/week9_inception/solutions/wtf_is_the_internet/README.md b/challenges/week9_inception/solutions/wtf_is_the_internet/README.md similarity index 100% rename from week9_inception/solutions/wtf_is_the_internet/README.md rename to challenges/week9_inception/solutions/wtf_is_the_internet/README.md diff --git a/week9_inception/solutions/wtf_is_the_internet/c_add.c b/challenges/week9_inception/solutions/wtf_is_the_internet/c_add.c similarity index 100% rename from week9_inception/solutions/wtf_is_the_internet/c_add.c rename to challenges/week9_inception/solutions/wtf_is_the_internet/c_add.c diff --git a/week9_inception/solutions/wtf_is_the_internet/c_add.wasm b/challenges/week9_inception/solutions/wtf_is_the_internet/c_add.wasm similarity index 100% rename from week9_inception/solutions/wtf_is_the_internet/c_add.wasm rename to challenges/week9_inception/solutions/wtf_is_the_internet/c_add.wasm diff --git a/week9_inception/solutions/wtf_is_the_internet/wtf.html b/challenges/week9_inception/solutions/wtf_is_the_internet/wtf.html similarity index 100% rename from week9_inception/solutions/wtf_is_the_internet/wtf.html rename to challenges/week9_inception/solutions/wtf_is_the_internet/wtf.html