Compare commits

...

836 Commits

Author SHA1 Message Date
saitejavankayala
4ee4fd469e Instead of RaisedButton, we can use ElevatedButton because it is deprecated (#3827) 2023-04-17 16:51:57 +01:00
Kamran Ahmed
8c343217de Update src/roadmaps/flutter/content/101-setup-development-environment/101-ides/index.md 2023-01-31 20:45:58 +04:00
Kamran Ahmed
266b9f8476 Update src/roadmaps/flutter/content/100-dart-basics/104-operators.md 2023-01-31 20:43:13 +04:00
syedmouaazfarrukh
02994de95a Adding content to 102-flutter-bloc, 101-flutter-outline 2023-01-31 06:29:53 -08:00
syedmouaazfarrukh
cd3d7baeea Adding content to 113-testing 2023-01-31 05:33:05 -08:00
syedmouaazfarrukh
66cac21034 Adding content to 112-animations 2023-01-31 05:16:01 -08:00
syedmouaazfarrukh
3013779c43 Adding content to 111-state-management 2023-01-31 04:42:11 -08:00
syedmouaazfarrukh
f582a5fbda Adding content to 110-advanced-dart 2023-01-30 21:28:21 -08:00
syedmouaazfarrukh
c6c52b7087 Adding content to 119-deployment 2023-01-30 10:28:17 -08:00
syedmouaazfarrukh
e69031b659 Adding content to 118-analytics 2023-01-30 10:19:01 -08:00
syedmouaazfarrukh
0c8269384d Adding content to 117-ci-cd 2023-01-30 09:48:32 -08:00
syedmouaazfarrukh
31aeb32b8b Adding content to 116-flutter-internals 2023-01-30 09:21:17 -08:00
syedmouaazfarrukh
3261c222f6 Adding content to 115-dev-tools 2023-01-30 09:09:57 -08:00
syedmouaazfarrukh
372339d082 Adding content to 114-reactive programming 2023-01-30 08:57:24 -08:00
syedmouaazfarrukh
53309079dd Adding content to 109-storage 2023-01-30 08:51:04 -08:00
syedmouaazfarrukh
18650c4eec Adding content to 102-firebase 2023-01-30 08:46:32 -08:00
syedmouaazfarrukh
56a6a7d550 Adding content to 108-working-with-apis 2023-01-30 08:12:50 -08:00
syedmouaazfarrukh
5171207ea3 Adding content to 107-package-manager 2023-01-30 07:47:41 -08:00
syedmouaazfarrukh
aafce97040 Adding content to 106-design-principles 2023-01-30 07:25:36 -08:00
syedmouaazfarrukh
e0618537c1 Adding content to 105-repo-hosting-services 2023-01-30 07:07:50 -08:00
syedmouaazfarrukh
c56e8f1369 Adding content to 103-working-with-assets 2023-01-30 06:59:38 -08:00
syedmouaazfarrukh
2b479b142b Adding content to 102-widgets 2023-01-30 06:41:58 -08:00
syedmouaazfarrukh
06bd2407b8 Adding content to 102-styled-widgets 2023-01-30 06:26:23 -08:00
syedmouaazfarrukh
70e4582df9 Adding content to 102-setup-development-environment 2023-01-30 05:12:14 -08:00
syedmouaazfarrukh
d0aa6001a2 Adding content to 100-dart-basics 2023-01-30 04:54:46 -08:00
Kamran Ahmed
ff16ea542f Add content to Frontend Best Practices (#3358)
* Add content to Frontend Best Practices

* Add content to frontend performance best practices
2023-01-26 19:55:36 +04:00
payal pagariya
e3adcdaba4 Add resource for algorithsm (#3360)
Added dynamic programming resource having JavaScript code implementation
2023-01-26 00:58:00 +04:00
Saad Shafiq
6783d7ea44 Fixed a typo in python roadmap note 2023-01-25 15:06:20 +04:00
Kamran Ahmed
f06dfce7fb Add best practices to sitemap 2023-01-25 02:53:34 +04:00
Kamran Ahmed
3df8db5fa5 Compress blockchain roadmap 2023-01-25 02:20:10 +04:00
Krish Chopra
5c92cdedd8 Update - content for rxdart under flutter roadmap (#3352)
* Update 100-rxdart.md

* added links to 100-rxdart.md

* Update src/roadmaps/flutter/content/114-reactive-programming/100-rxdart.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2023-01-25 01:58:17 +04:00
Kamran Ahmed
07b6d067c4 Styling for the topic page 2023-01-25 01:55:54 +04:00
Kamran Ahmed
a7f9e7d735 Add pdfs for best practices 2023-01-25 01:55:54 +04:00
Kamran Ahmed
3521525611 Implement the state loading in checklists 2023-01-25 01:55:54 +04:00
Kamran Ahmed
43260ff14f Disable user selection on the rectangles 2023-01-25 01:55:54 +04:00
Kamran Ahmed
102ccc6a6b External links 2023-01-25 01:55:54 +04:00
Kamran Ahmed
415dc2d8e8 Handle mark done/pending functionality in best practices 2023-01-25 01:55:54 +04:00
Kamran Ahmed
e0e6168cfe Remove sorting information from best practices content 2023-01-25 01:55:54 +04:00
Kamran Ahmed
dd7c0ec003 Add forntend performance content 2023-01-25 01:55:54 +04:00
Kamran Ahmed
190c75cebe Toipc pages rendering 2023-01-25 01:55:54 +04:00
Kamran Ahmed
813a3d9b2b Rearrange best practices pages 2023-01-25 01:55:54 +04:00
Kamran Ahmed
c2dda3bc35 Implement best-practice click handling 2023-01-25 01:55:54 +04:00
Kamran Ahmed
4711ab9a6f Handle rendering of the roadmap topics 2023-01-25 01:55:54 +04:00
Kamran Ahmed
5f2836a148 Make topic overlay renderer agnostic 2023-01-25 01:55:54 +04:00
Kamran Ahmed
badb2c029d Refactor the topic loading 2023-01-25 01:55:54 +04:00
Kamran Ahmed
8a24b3e695 Refactor sharer icons 2023-01-25 01:55:54 +04:00
Kamran Ahmed
8b3f8ee6b8 Refactor share icons 2023-01-25 01:55:54 +04:00
Kamran Ahmed
f9db9bee95 Add rendering of best practices 2023-01-25 01:55:54 +04:00
Kamran Ahmed
e8d2bd00c6 Refactor roadmap topic path 2023-01-25 01:55:54 +04:00
Kamran Ahmed
f4e505113c Add rendering for best practices lists 2023-01-25 01:55:54 +04:00
Kamran Ahmed
f675f08d83 Refactor roadmaps 2023-01-25 01:55:54 +04:00
Kamran Ahmed
a12ec64af5 Refactor markdown content 2023-01-25 01:55:54 +04:00
Kamran Ahmed
24512374e8 Update best practices 2023-01-25 01:55:54 +04:00
Kamran Ahmed
359f5d6a4d Add best practices page 2023-01-25 01:55:54 +04:00
Kamran Ahmed
c7302d7484 Rearrange pdfs and images 2023-01-25 01:55:54 +04:00
syedmouaazfarrukh
6ab477df8d Add content to graphql (#3329)
* Adding content to 100-graphql-introduction

* Adding content to 101-graphql-queries

* Adding content to 102-mutations

* Adding content to 103-subscriptions

* Adding content to 108-frontend-implementation

* Adding content to 104-schema

* Adding content to 101-resolvers

* Adding content to 105-execution

* Adding content to 109-backend-implementations

* Adding content to 100-graphql-over-http

* Adding content to 101-graphql-over-websockets

* Adding content to 102-graphql-over-sse

* Adding content to 106-serving-over-internet

* Adding content to 104-validation, 107-pagination

* Adding content to graphql
2023-01-25 01:52:56 +04:00
Kamran Ahmed
961d00e70e Add system design roadmap link 2023-01-23 17:42:19 +04:00
syedmouaazfarrukh
c1a53cf3cc Add content to software-design-architecture (#3343)
* Adding content to 100-clean-code-principles

* Adding content to 101-programming-paradigms

* Adding content to 103-software-design-principles

* Adding content to 104-design-patterns

* Adding content to 105-architectural-principles

* Adding content to 100-primary-principles

* Adding content to 101-paradigm-features

* Adding content to 102-object-oriented-programming

* Adding content to 106-architectural-styles

* Adding content to 107-architectural-patterns

* Adding content to 108-enterprise-patterns

* Adding content to 108-enterprise-patterns

* Update src/roadmaps/software-design-architecture/content/100-clean-code-principles/101-be-consistent.md

* Update src/roadmaps/software-design-architecture/content/100-clean-code-principles/102-meaningful-names.md

* Update src/roadmaps/software-design-architecture/content/100-clean-code-principles/103-indentation-and-code-style.md

* Update src/roadmaps/software-design-architecture/content/100-clean-code-principles/104-keep-it-small.md

* Update src/roadmaps/software-design-architecture/content/100-clean-code-principles/105-pure-functions.md

* Update src/roadmaps/software-design-architecture/content/102-object-oriented-programming/101-paradigm-features/102-scope-visibility.md

* Update src/roadmaps/software-design-architecture/content/102-object-oriented-programming/101-paradigm-features/index.md

* Update src/roadmaps/software-design-architecture/content/102-object-oriented-programming/102-model-driven-design/100-domain-models.md

* Update src/roadmaps/software-design-architecture/content/103-software-design-principles/104-solid.md

* Update src/roadmaps/software-design-architecture/content/104-design-patterns/100-gof-design-patterns.md

* Update src/roadmaps/software-design-architecture/content/100-clean-code-principles/109-use-correct-constructs.md

* Update src/roadmaps/software-design-architecture/content/100-clean-code-principles/110-keep-tests-independent.md

* Update src/roadmaps/software-design-architecture/content/100-clean-code-principles/110-keep-tests-independent.md

* Update src/roadmaps/software-design-architecture/content/100-clean-code-principles/110-keep-tests-independent.md

* Update src/roadmaps/software-design-architecture/content/100-clean-code-principles/111-use-meaningful-names.md

* Update src/roadmaps/software-design-architecture/content/100-clean-code-principles/114-avoid-hasty-abstractions.md

* Update src/roadmaps/software-design-architecture/content/100-clean-code-principles/114-avoid-hasty-abstractions.md

* Update src/roadmaps/software-design-architecture/content/100-clean-code-principles/index.md

* Update src/roadmaps/software-design-architecture/content/102-object-oriented-programming/101-paradigm-features/101-concrete-classes.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2023-01-23 03:29:01 +04:00
github-actions[bot]
1f485c21f7 chore: update dependencies to latest (#3344)
Co-authored-by: kamranahmedse <kamranahmedse@users.noreply.github.com>
2023-01-23 02:48:35 +04:00
Amrou Bellalouna
e886d0bacb Fix typo in "avaiability" (#3346) 2023-01-23 02:47:26 +04:00
Kamran Ahmed
8a07f2f685 Add slack integration for aws-costs 2023-01-22 18:28:00 +04:00
Kamran Ahmed
19ad916334 Update action file 2023-01-22 17:11:50 +04:00
Kamran Ahmed
b30016b6f4 Add github action 2023-01-22 17:09:29 +04:00
Kamran Ahmed
57395f769a Make software design and architecture roadmap interacxtive 2023-01-21 18:11:51 +04:00
Kamran Ahmed
b91c11b273 Fix broken links 2023-01-21 03:50:39 +04:00
Kamran Ahmed
c026f9c928 Fix broken links 2023-01-21 01:10:57 +04:00
Kamran Ahmed
aee51ee43e Handle legacy roadmap urls 2023-01-20 21:13:38 +04:00
Kamran Ahmed
3b12130579 Handle legacy roadmap urls 2023-01-20 20:57:58 +04:00
Kamran Ahmed
3dd9429338 Handle legacy roadmap urls 2023-01-20 20:48:14 +04:00
Kamran Ahmed
0af54cd906 Fix broken URLs 2023-01-20 20:33:31 +04:00
Kamran Ahmed
750e6e5a36 Remove trailing slashes from the roadmap pages 2023-01-20 20:13:19 +04:00
Kamran Ahmed
5b93bc42db Remove trailing slashes from the website URLs 2023-01-20 20:10:21 +04:00
Kamran Ahmed
8b32a3a831 Rename featured roadmap item 2023-01-20 17:03:52 +04:00
Kamran Ahmed
a28204c908 Remove lastmod from sitemap 2023-01-20 16:47:58 +04:00
Benson Arafat
4aca07e3d4 Update Broken Link (#3308)
Update Callback broken link
2023-01-20 00:27:03 +04:00
Kamran Ahmed
5c2562dadb Add content to cloud design patterns 2023-01-19 22:10:12 +04:00
Kamran Ahmed
e934dc60f4 Add content for reliability patterns 2023-01-19 20:50:14 +04:00
Kamran Ahmed
ad4f35764d Add content to cloud design patterns 2023-01-19 20:46:19 +04:00
Kamran Ahmed
a715a85b46 Add disclaimer above cloud design patterns 2023-01-19 20:26:24 +04:00
Kamran Ahmed
f16a207e7c Add content for monitoring 2023-01-19 20:02:21 +04:00
Kamran Ahmed
6582d65935 Add content for performance antipatterns 2023-01-19 19:48:02 +04:00
Kamran Ahmed
ab36350cdc Add communication protocols 2023-01-19 19:25:22 +04:00
Kamran Ahmed
3b05a615d8 Add content to asynchronism 2023-01-19 19:04:58 +04:00
Kamran Ahmed
9a2bc75646 Add caching strategies 2023-01-19 18:54:30 +04:00
Kamran Ahmed
d283ce7c67 Add right click to mark as done/pending 2023-01-19 18:35:08 +04:00
Kamran Ahmed
59ed243fa7 Add content to system design roadmap 2023-01-19 17:58:10 +04:00
Kamran Ahmed
ca35551e4f Add content for consistency and background jobs 2023-01-19 17:16:26 +04:00
Kamran Ahmed
cab06b46da Add content to system design roadmap 2023-01-19 16:45:34 +04:00
Kamran Ahmed
f5e980d8ec Add functionality to add note to the roadmaps 2023-01-19 15:05:25 +04:00
Kamran Ahmed
6187b1dc52 Update isNew tags 2023-01-19 14:16:03 +04:00
syedmouaazfarrukh
a3b8b5653a Add content to system-design (#3323) 2023-01-19 14:10:10 +04:00
Kamran Ahmed
8f8e2f41d8 Rearrange JSON files 2023-01-18 19:47:47 +04:00
Kamran Ahmed
89a436a5b7 Add content for making API calls using http moduel 2023-01-18 17:00:04 +04:00
Zied Chekir
231e295f01 Add resource links to blockchain roadmap (#3317)
I would suggest those articles since it is an advanced subject. the first one explains the math behind zk-rollups and the second one is Vitalik ( Founder of Ethereum) explaining how snarks work.
2023-01-18 16:56:03 +04:00
Kamran Ahmed
64e20e9fc1 Add links to roadmaps from FAQs on the frontend roadmap 2023-01-18 16:19:21 +04:00
Kamran Ahmed
621f841fbf Add a guide about consistency patterns 2023-01-18 02:46:59 +04:00
Kamran Ahmed
c61afb15bc Add content in consistency patterns 2023-01-18 02:35:24 +04:00
RaifAR
595f3680be fix: typo in the word development (#3320)
Co-authored-by: Raif Abdul Razak <raif@Raifs-MacBook-Air.local>
2023-01-17 22:57:02 +04:00
Kamran Ahmed
ee65c56bf3 Add content to availability vs consistency 2023-01-17 20:25:06 +04:00
Kamran Ahmed
a2c339f2d5 Add system design roadmap content 2023-01-17 18:49:53 +04:00
Kamran Ahmed
a3031a2371 Add system design roadmap 2023-01-17 18:06:43 +04:00
Kamran Ahmed
952169ec8e Add AWS guide link 2023-01-16 19:53:25 +04:00
Kamran Ahmed
fbd82ce215 Remove pluralsight links 2023-01-15 15:37:16 +04:00
Kamran Ahmed
35f61e876e Fix broken URL 2023-01-15 15:36:19 +04:00
syedmouaazfarrukh
bb9878fdb7 Add content to aspnet-core roadmap (#3294)
* Initial commit

* Initial commit

* Initial commit

* Initial commit

* Initial commit

* Initial commit

* Initial commit

* Initial commit

* Initital commit

* Initial commit

* Initial commit

* Committing 107-databases

* Content added in aspnet-core/content/108-log-frameworks

* Content added in aspnet-core/content/109-api-clients

* Content added in aspnet-core/content/110-real-time-communication

* Content added in aspnet-core/content/111-object-mapping

* Content added in aspnet-core/content/112-task-scheduling

* Fix Eager Loading heading

* Fix lazy loading heading

* Update src/roadmaps/aspnet-core/content/104-orm/103-nhibernate.md

* Update src/roadmaps/aspnet-core/content/100-basics-of-csharp/101-dotnet.md

* Update src/roadmaps/aspnet-core/content/103-basics-of-aspnet-core/101-rest.md

* Update src/roadmaps/aspnet-core/content/109-api-clients/102-graphql/100-graphql-dotnet.md

* Update src/roadmaps/aspnet-core/content/103-basics-of-aspnet-core/index.md

* Update src/roadmaps/aspnet-core/content/104-orm/100-entity-framework-core/102-change-tracker-api.md

* Update src/roadmaps/aspnet-core/content/104-orm/102-repodb.md

* Update src/roadmaps/aspnet-core/content/104-orm/102-repodb.md

* Update src/roadmaps/aspnet-core/content/105-dependency-injection/102-life-cycles/index.md

* Update src/roadmaps/aspnet-core/content/105-dependency-injection/index.md

* Update src/roadmaps/aspnet-core/content/109-api-clients/102-graphql/100-graphql-dotnet.md

* Update src/roadmaps/aspnet-core/content/109-api-clients/102-graphql/index.md

* Update src/roadmaps/aspnet-core/content/110-real-time-communication/101-singlar-core.md

* Update src/roadmaps/aspnet-core/content/111-object-mapping/100-atuo-mapper.md

* Update src/roadmaps/aspnet-core/content/107-databases/100-search-engines/100-elasticsearch.md

* Update src/roadmaps/aspnet-core/content/107-databases/102-relational/101-postgresql.md

* Update src/roadmaps/aspnet-core/content/107-databases/102-relational/103-mysql.md

* Update src/roadmaps/aspnet-core/content/107-databases/103-nosql/101-mongodb.md

* Update src/roadmaps/aspnet-core/content/108-log-frameworks/101-nlog.md

* Update src/roadmaps/aspnet-core/content/108-log-frameworks/100-serilog.md

* Update src/roadmaps/aspnet-core/content/108-log-frameworks/102-log-management-system/100-elk-stack.md

* Update src/roadmaps/aspnet-core/content/108-log-frameworks/102-log-management-system/104-elmah.md

* Update src/roadmaps/aspnet-core/content/108-log-frameworks/index.md

* Update src/roadmaps/aspnet-core/content/109-api-clients/100-rest/101-odata.md

* Update src/roadmaps/aspnet-core/content/109-api-clients/100-rest/index.md

* Update src/roadmaps/aspnet-core/content/109-api-clients/102-graphql/100-graphql-dotnet.md

* Update src/roadmaps/aspnet-core/content/109-api-clients/101-grpc.md

* Adding content to 115-ci-cd

* Adding content to 116-client-side-libraries

* Adding content to 117-template-engines

* Adding content to 118-good-to-know-libraries

* Adding content to 113-testing

* Adding content to 114-microservices

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2023-01-15 15:35:54 +04:00
Kamran Ahmed
ee843cc9e2 Add tests for roadmaps, guides and videos 2023-01-15 15:26:58 +04:00
Kamran Ahmed
cbd79ef299 Add tests for roadmap pages and homepage 2023-01-15 15:23:27 +04:00
Kamran Ahmed
af9e266190 Update dependencies 2023-01-15 15:01:34 +04:00
Kamran Ahmed
0cbd401071 Remove critters 2023-01-15 14:32:37 +04:00
kamranahmedse
0929d40bd0 chore: update dependencies to latest 2023-01-15 14:32:12 +04:00
Kamran Ahmed
927aa0a066 Update twitter URL 2023-01-14 18:14:01 +04:00
Kamran Ahmed
85eff7f894 Fix invalid faq schema 2023-01-14 12:11:16 +04:00
Kamran Ahmed
11695f4b05 Add json-ld schema to all roadmaps 2023-01-14 01:20:57 +04:00
Kamran Ahmed
aebee9b3a3 Add json-ld schema to the backend roadmap and refactor 2023-01-14 00:58:45 +04:00
Kamran Ahmed
6b52baf093 Add json-ld schema to the roadmap pages 2023-01-14 00:32:14 +04:00
Kamran Ahmed
6922fd826f Remove prism file 2023-01-13 15:48:26 +04:00
Kamran Ahmed
ec29e1836e Update configuration for colors 2023-01-13 14:49:59 +04:00
Kamran Ahmed
dca9eb32cd Remove prism file 2023-01-13 14:45:44 +04:00
Kamran Ahmed
4b681c6317 Add json-ld schema to frontend/backend roadmaps 2023-01-13 12:37:45 +04:00
Kamran Ahmed
9c24ff23e3 Guide code not showing proper bg 2023-01-12 19:12:26 +04:00
Kamran Ahmed
cdc87a99e1 Add ambassador eBook link 2023-01-12 18:48:11 +04:00
Kamran Ahmed
ea16e99598 Add ambassador eBook link 2023-01-12 18:46:49 +04:00
Kamran Ahmed
ba86e8a6b1 Update content headings 2023-01-12 14:41:54 +04:00
syedmouaazfarrukh
5f23d4c7eb Add content to Spring Boot roadmap (#3285)
* Initial commit

* Update content files

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2023-01-12 14:38:50 +04:00
Kamran Ahmed
8264c4509f Update canonicals 2023-01-11 22:28:41 +04:00
Kamran Ahmed
6c8aea98da Rename Software Design and Architecture Roadmap 2023-01-11 20:12:49 +04:00
Kamran Ahmed
64ccd02d53 Fix broken popup 2023-01-11 17:12:19 +04:00
Kamran Ahmed
f8c1c6278b Refactor HTML event handlers 2023-01-11 00:08:49 +04:00
Kamran Ahmed
4786265e04 Refactor event tracking implementation 2023-01-10 23:57:41 +04:00
Kamran Ahmed
8badf383b2 Responsiveness changes 2023-01-10 23:26:29 +04:00
Kamran Ahmed
c4406b7649 Add meta text below roadmap topic for contribution 2023-01-10 19:39:43 +04:00
Kamran Ahmed
1e878069bc Add free eBook link 2023-01-10 19:11:49 +04:00
Kamran Ahmed
8234de2b8c Fix capitalization of word 2023-01-10 18:35:57 +04:00
Kamran Ahmed
3466708ed4 Add FAQs to the backend roadmap 2023-01-10 18:33:19 +04:00
Kamran Ahmed
b440fd9787 Add Spring Boot terminology content 2023-01-10 16:47:56 +04:00
Kamran Ahmed
9bc73ab738 Update FAQs on frontend developer roadmap 2023-01-10 16:10:56 +04:00
Kamran Ahmed
91c16a5e32 Minor FAQ change 2023-01-10 15:49:52 +04:00
Kamran Ahmed
1768150fb1 Fix color of the code items 2023-01-10 15:42:03 +04:00
Kamran Ahmed
4a1374c978 Add FAQs to the frontend roadmap 2023-01-10 15:39:10 +04:00
Kamran Ahmed
43df31b312 Remove duplicate go roadmap 2023-01-10 11:28:16 +04:00
Kamran Ahmed
2037edb2da Add content for spring configuration 2023-01-10 03:22:03 +04:00
Kamran Ahmed
de8a4d4acf Add build script 2023-01-10 03:12:25 +04:00
Kamran Ahmed
a67a27299e Add functionality to create content directory for a roadmap 2023-01-10 03:11:51 +04:00
Kamran Ahmed
5d164198d4 Delete migration scripts and grouping on roadmap 2023-01-10 02:58:07 +04:00
Kamran Ahmed
a76b9d9ac0 Add roadmap link to PDFs page 2023-01-09 19:56:24 +04:00
Kamran Ahmed
6ed83349ba Add spring boot roadmap link 2023-01-09 19:55:01 +04:00
Kamran Ahmed
1b21550e48 Add spring boot roadmap pdf 2023-01-09 19:53:08 +04:00
Kamran Ahmed
c1d0ff7ea2 Add spring boot roadmap 2023-01-09 19:51:47 +04:00
Kamran Ahmed
26125fc6d7 Add software architect roadmap 2023-01-09 19:40:44 +04:00
Kamran Ahmed
aff7d8eece Add events to the subscription forms 2023-01-09 19:36:45 +04:00
Kamran Ahmed
fd939f198a Fix popup not working on roadmaps 2023-01-09 18:01:49 +04:00
Kamran Ahmed
18e4804a51 Add command to collect links from roadmaps 2023-01-09 15:37:10 +04:00
Sricharan Krishnan
ed8bf11150 Add resources for React (#3264)
* [Build] React Roadmap

Additional Suggestions for 103 Refs
1. Web Dev Simplied - a youtube video that explains the use of refs and what it can do for us
2. A content blog from 'Dmitri Pavlutin' website

* [Build] 104-React Events

I've added an additional description text in the main markdown file to help other learners/readers
keep in mind how important it is to make sure that we write code that is easy to understand. Do take
a look.

* Update src/roadmaps/react/content/103-rendering/104-events.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2023-01-09 14:02:22 +04:00
Fred Vasquez
61f088d42a Add content for GraphQL Introduction (#3268)
Adding introduction to topic and useful links.
2023-01-09 14:01:30 +04:00
Tilen Pogačnik
faee01b22d Fix: remove text highlight in links (#3273) 2023-01-09 14:00:52 +04:00
Kamran Ahmed
dc56ef6190 Remove broken link 2023-01-09 14:00:15 +04:00
Kamran Ahmed
f393a23994 Add script for upgrading dependencies 2023-01-09 13:59:34 +04:00
Kamran Ahmed
8e61330080 Rename sha to commitUrl 2023-01-08 06:48:51 +04:00
Kamran Ahmed
2c18529429 Add commit url meta attribute 2023-01-08 06:38:50 +04:00
Kamran Ahmed
88ff836bfb Fix canonicals 2023-01-08 06:29:38 +04:00
Kamran Ahmed
66cb4f9a06 Fix canonicals 2023-01-08 06:25:34 +04:00
Ansat
d9697b74fd fix: remove text highlight in links (#3265) 2023-01-08 00:16:21 +04:00
Kamran Ahmed
863b7fa08b Make signup page no-index 2023-01-07 13:45:31 +04:00
Kamran Ahmed
64078f9d1a Update homepage title 2023-01-07 13:44:10 +04:00
Kamran Ahmed
5f8ead3d2f Fix long titles, multiple headings and redirect links 2023-01-07 13:38:23 +04:00
Kamran Ahmed
cb16abc8e1 Add alt attributes to all images 2023-01-07 13:23:43 +04:00
Kamran Ahmed
52d00a0654 Add canonicals and fix og:url on all pages 2023-01-06 22:08:49 +04:00
Kamran Ahmed
d5495f7280 Reduce file sizes 2023-01-06 21:45:11 +04:00
Kamran Ahmed
564c9fdd4f Fix broken URLs 2023-01-06 21:42:58 +04:00
Kamran Ahmed
e75df0ef9e Fix broken roadmap URL 2023-01-06 21:41:13 +04:00
Kamran Ahmed
642cbbf6d3 Fix star count is displaying NaN 2023-01-06 18:51:13 +04:00
Hossein zare
032602ad3b Rename raywenderlich to Kodeco (#3243)
raywenderlich's team has changed their name to Kodeco.

https://www.kodeco.com/36641071-introducing-kodeco-the-new-raywenderlich-com
2023-01-06 15:54:36 +04:00
Benson Arafat
522f16957a Update content in Dart (#3244)
* Updated 100 Dart Basics 

Dart can also be used to build server and desktop applications.

* Updated 103 Functions

Explanation about dart functions
2023-01-06 15:52:59 +04:00
Sricharan Krishnan
1f3bf761cd Add resources for React (#3245)
* [Build] React Roadmap

1. Came across two other interesting topics related to props and state in react
2. Would like to suggest that we add these to the list as well as they highlight something important
3. One is from robinwieruch and the other from Dominik Dorfmeister (TkDodo)

* [Build] React Roadmap Contributions

1. Added one topic for Composition vs Inheritance
2. Added topics for Props vs State
3. Added topic for Render Props
2023-01-06 15:52:32 +04:00
Haril Song
f76f0ea1a6 Fix typo in gRPC (#3248) 2023-01-06 15:48:48 +04:00
Kamran Ahmed
a40457edc8 Rename README.md to readme.md 2023-01-05 21:15:41 +04:00
Kamran Ahmed
076db6dd0a Fix broken image link 2023-01-05 20:24:51 +04:00
Kamran Ahmed
d2b5e17ea2 Merge branch 'astro'
Migrarte to Astro and Tailwind
2023-01-05 20:01:16 +04:00
Kamran Ahmed
3f027cbebb Remove everything 2023-01-05 20:01:04 +04:00
Kamran Ahmed
bd68dd4ab6 Add sponsor to devops roadmap 2023-01-05 19:45:43 +04:00
Kamran Ahmed
f681a0ab8a Update og image 2023-01-05 19:28:39 +04:00
Kamran Ahmed
fbdf3a6942 Compress roadmaps JSONs 2023-01-05 19:27:35 +04:00
Kamran Ahmed
af27626a1c Add compress HTML 2023-01-05 19:24:42 +04:00
Kamran Ahmed
86a1a4a078 Update meta files and enable noIndex flag 2023-01-05 17:31:47 +04:00
Kamran Ahmed
44c908eca1 Add upcoming roadmaps 2023-01-05 12:23:07 +04:00
Kamran Ahmed
6ee7e4873f Update links to have trailing slash 2023-01-05 12:04:38 +04:00
Kamran Ahmed
313e584711 Fix opensource star count shoing NaN 2023-01-05 04:27:50 +04:00
Kamran Ahmed
58315932be Remove critters 2023-01-05 04:10:25 +04:00
Kamran Ahmed
20cbf7b432 Fix broken styles 2023-01-05 03:34:11 +04:00
Kamran Ahmed
0159292df2 Fix broken SVGs 2023-01-05 03:17:36 +04:00
Kamran Ahmed
f5c4ff59a7 Compress the iamges 2023-01-05 03:06:24 +04:00
Kamran Ahmed
bd9e2876e3 Add PDFs listing page 2023-01-04 21:32:30 +04:00
Kamran Ahmed
292d15ff19 Add .nojekyll and CNAME handling 2023-01-04 21:21:58 +04:00
Kamran Ahmed
b4ffb0e58e Move analytics to footer 2023-01-04 21:10:28 +04:00
Kamran Ahmed
0f698b3647 Add event tracking 2023-01-04 21:05:11 +04:00
Kamran Ahmed
75e840e26b Add deploy script 2023-01-04 20:48:10 +04:00
Kamran Ahmed
b7544a5c44 Update github workflows 2023-01-04 20:21:33 +04:00
Kamran Ahmed
f268ca934a Update readme 2023-01-04 20:17:40 +04:00
Kamran Ahmed
5dfd43b1e4 Update android roadmap 2023-01-04 20:16:09 +04:00
Kamran Ahmed
4e44595948 Add TNS banner 2023-01-04 20:08:53 +04:00
Kamran Ahmed
a178eac1bb Fix 404 page squeezed heading 2023-01-04 19:39:23 +04:00
Kamran Ahmed
a6855d5c48 Resync changes from roadmap.sh 2023-01-04 19:27:31 +04:00
Kamran Ahmed
631baffb17 Fix language on markdown 2023-01-04 19:25:57 +04:00
Kamran Ahmed
ff496462d5 Fix broken build 2023-01-04 19:19:22 +04:00
Victor Jørgensen
4714e8c486 Update 101-acid.md (#3065)
The current text says that ACID are the for properties of _any_ database system. This is only true for relational databases. NoSQL databases can possess _some_ of these properties, but are due to their nature not ACID compliant.
2023-01-04 18:57:57 +04:00
Clément Le Bas
517c6c6383 Add widgets content 2023-01-04 18:56:42 +04:00
Siddarth Singh
3db55febb6 Add git content and resources (#3074)
* Update 100-git.md

Added Git introduction and useful links.

* Update content/roadmaps/117-flutter/content/104-version-control-systems/100-git.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2023-01-04 18:56:26 +04:00
Justine Ang
20b7e5e6c8 Add a resource for python (#3077)
Personally, this was a very helpful class/tutorial. It helps me a lot when I started Python.

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2023-01-04 18:54:51 +04:00
pfemi26
b176eb3108 Add content for Code First Migrations (#3080)
* Update 101-codefirst-migrations.md

* Update content/roadmaps/116-aspnet-core/content/104-orm/100-entity-framework-core/101-codefirst-migrations.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2023-01-04 18:53:58 +04:00
vrushali-d
daec505876 Add ubuntu resource (#3088)
Added reference for book The Linux Command Line by William Shotts.
It is an excellent book for learning Linux commands
2023-01-04 18:51:35 +04:00
Yuriy Vorobyov
4a7cdd6da2 Add content for AssertionErrors (#3090)
* Update Node.js roadmap Assertion Errors

Updated Assertion Errors block with some useful links and description

* Update content/roadmaps/107-nodejs/content/103-nodejs-error-handling/103-error-types/103-assertion-errors.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2023-01-04 18:48:48 +04:00
payal pagariya
3f31e3889b Add a resource for DNS (#3096)
* Update 103-dns-and-how-it-works.md

Addition resources added to understand Domain Names

* Update content/roadmaps/101-backend/content/100-internet/103-dns-and-how-it-works.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2023-01-04 18:47:09 +04:00
Yogesh Vernekar
c5ca9f0373 Fix angular resource typo (#3101)
* fixed typo in router outlets and added some content to router links

* syntax update

* Update content/roadmaps/104-angular/content/107-routing/102-router-links.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2023-01-04 18:45:43 +04:00
Yanis B
f9938d5e0c Fix typo in the javascript content (#3103)
"There are eight basic data types in JavaScript" is ambiguous (are objects considered "basic" ?).
Javascript features seven (7) primitive datatypes and all objects are non-primitives.
Source (MDN) : https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures
2023-01-04 18:44:11 +04:00
Heru Purnama
01437af3bb Add XCUI testing resources (#3115)
Update tutorial Xcuitest end to end testing with example video
2023-01-04 18:43:09 +04:00
The New Stack
671d7085a6 Add resource for python data types (#3120)
* Update 101-variables-and-datatypes.md

* Update content/roadmaps/108-python/content/100-python-basics/101-variables-and-datatypes.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2023-01-04 18:41:30 +04:00
The New Stack
fdd9ec17df Add resource for lists and tuplies (#3122) 2023-01-04 18:40:33 +04:00
The New Stack
0b5eafa13d Add resource to testing (#3125) 2023-01-04 18:38:55 +04:00
The New Stack
ec6d045752 Add python resource (#3127) 2023-01-04 18:37:57 +04:00
Archit Sharma
78438b1bc4 Add resources to C# roadmap (#3130)
* Resources added for Database fundamental node

* Resources added for Caching node
2023-01-04 18:37:34 +04:00
Yuriy Vorobyov
103065d852 Add content for errors (#3135) 2023-01-04 18:37:10 +04:00
Daniel Pomajbík
2c2a24e6f0 Fixing typo in DOM section (#3138)
Treee -> Tree
2023-01-04 18:36:37 +04:00
diazan6
72af46ffe2 Update 100-arrays-linked-lists.md (#3150)
Removed link that leads to error (broken link)
2023-01-04 18:34:49 +04:00
HS
fc8e635961 Fix typo in Resource (#3151) 2023-01-04 18:34:38 +04:00
Laud Gilbert
88034df44d Defining Version Control Systems (#3157)
* Update readme.md

Definition and examples of Version Control Systems.

* Update content/roadmaps/117-flutter/content/104-version-control-systems/readme.md

* Update content/roadmaps/117-flutter/content/104-version-control-systems/readme.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2023-01-04 18:30:56 +04:00
Salman Sayyed
2076d48150 Fix a link to an article (#3158)
Fix for free reading resource "What is Infrastructure as Code (IaC)?"
2023-01-04 18:30:02 +04:00
Fred Vasquez
b64d360ebc Add dapper docs (#3162)
* Update 101-dapper.md

Adding introduction and useful links.

* Update content/roadmaps/116-aspnet-core/content/104-orm/101-dapper.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2023-01-04 18:29:38 +04:00
Anish Subedi
958cfb15ba Remove duplicate resource lin (#3164) 2023-01-04 18:28:36 +04:00
phucdaivo
c172c0b926 Fix link (#3170)
change value attr href
2023-01-04 18:26:15 +04:00
Ata Emir Kaba
ac115c266d Update SQL Server Section (#3175)
* Update SQL Server Section

* Update content/roadmaps/116-aspnet-core/content/107-databases/102-relational/100-sql-server.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2023-01-04 18:24:40 +04:00
Ali
6de156bcaa Added resources for html (#3187) 2023-01-04 18:23:28 +04:00
Ali
9383ec0f75 Added resources for CSS basics. (#3188) 2023-01-04 18:23:13 +04:00
Marcus Vinicius Gomes
87ed84fa45 Add render objects docs (#3192) 2023-01-04 18:22:24 +04:00
Dhanush G
0cd34240b7 Add content for playstore (#3201)
* Update 101-playstore.md

Added links to guides on publishing flutter app to playstore.

* Update content/roadmaps/117-flutter/content/119-deployment/101-playstore.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2023-01-04 18:21:18 +04:00
Daniel Tinsley
377cb10177 Fix typos in the android roadmap (#3202)
I capitalized any product names that were incorrectly in lowercase. I also fixed any grammar, punctuation, and writing mechanics issues that I noticed.
2023-01-04 18:20:02 +04:00
nikartik
2198bbd484 Added python tutorial link (#3206)
Added W3Schools python tutorial link as a read free resource
2023-01-04 18:18:07 +04:00
dawgaw
a5b00c71ed Fix Node.js link (#3210) 2023-01-04 18:17:15 +04:00
dawgaw
a05df16d1d Fix typo in link (#3211) 2023-01-04 18:16:51 +04:00
dawgaw
1d52bec76f Update JavaScript resources (#3212) 2023-01-04 18:15:42 +04:00
DelsV
86353d6ca2 Add python resource 2023-01-04 18:14:55 +04:00
payal pagariya
47a5366d08 Additional resources for tree and graph algorithms (#3216)
* Additional resources for tree and graph algorithms 

Additional resources for tree and graph algorithms for technical interviews

* Update content/roadmaps/106-javascript/content/104-javascript-data-structures/readme.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2023-01-04 18:12:17 +04:00
Yves Molina
2ac46664e1 Fix typo in observer pattern (#3223) 2023-01-04 18:10:31 +04:00
Siva Naik
f06a2ed6a5 Add rust content (#3225) 2023-01-04 18:09:48 +04:00
Kamran Ahmed
a2aff51deb Add sitemap generation 2023-01-04 18:08:47 +04:00
Kamran Ahmed
baa7adffb6 Update site-wide year 2023-01-04 17:22:03 +04:00
Kamran Ahmed
abbc661858 Add sitemap and 404 page 2023-01-04 17:17:23 +04:00
Kamran Ahmed
f4cf194638 Refactor captcha validation 2023-01-04 13:08:35 +04:00
Kamran Ahmed
2ac1781118 Fix text language 2023-01-04 12:57:27 +04:00
Kamran Ahmed
f5adabcdc2 Remove package-lock.json 2023-01-04 12:44:46 +04:00
Kamran Ahmed
b90c6d8569 Fix aria attribute 2023-01-04 12:38:00 +04:00
Kamran Ahmed
8120a544bf Optimize JS for navigation and captcha 2023-01-04 00:42:03 +04:00
Kamran Ahmed
d512bbf95d Remove dangling console.log 2023-01-04 00:18:06 +04:00
Kamran Ahmed
f33ae82298 Add ga events tracking 2023-01-04 00:13:33 +04:00
Kamran Ahmed
c359aefdac Add GA tracking 2023-01-03 21:02:25 +04:00
Kamran Ahmed
9dbb2d05c9 Remove topic pages and upcoming roadmaps from index 2023-01-03 20:43:25 +04:00
Kamran Ahmed
05db7c3a15 Fix invalid language in markdown attribute 2023-01-03 20:32:16 +04:00
Kamran Ahmed
d1445d6c7c Add SEO configuration for all the pages 2023-01-03 20:31:41 +04:00
Kamran Ahmed
64edd70ec4 Update header and manifest icons 2023-01-03 20:09:54 +04:00
Kamran Ahmed
822fb8ad05 Update og attributes 2023-01-03 19:59:54 +04:00
Kamran Ahmed
f9f6cb8ae7 Updae og:image for the roadmapg 2023-01-03 19:30:37 +04:00
Kamran Ahmed
6015217cde Updae og:image for the roadmapg 2023-01-03 19:26:48 +04:00
Kamran Ahmed
ff860a5c0f Update twitter image 2023-01-03 19:19:04 +04:00
Kamran Ahmed
d7b201c7f7 Enable captcha and refactor popup 2023-01-03 18:30:56 +04:00
Kamran Ahmed
577613132b Disable captcha for nowg 2023-01-03 18:17:12 +04:00
Kamran Ahmed
00c118dc67 Add captcha on forms 2023-01-03 18:09:56 +04:00
Kamran Ahmed
bb2cc12ed0 Refactor navigation 2023-01-03 17:38:46 +04:00
Kamran Ahmed
b34376ce3e Make navigation interactive 2023-01-03 17:08:14 +04:00
Kamran Ahmed
9f4ffa211e Add sponsor 2023-01-03 17:04:13 +04:00
Kamran Ahmed
4f9153fdb3 Add terms and privacy pages and sponsor 2023-01-03 15:34:12 +04:00
Kamran Ahmed
7a5068419c Add about page 2023-01-03 00:35:22 +04:00
Kamran Ahmed
b30f7d2e96 Add about page 2023-01-03 00:33:08 +04:00
Kamran Ahmed
40ddeef742 Hardcode the number of stars on dev 2023-01-03 00:28:53 +04:00
Kamran Ahmed
c1e8c0361b Add footer to all pages 2023-01-03 00:22:50 +04:00
Kamran Ahmed
3613916570 Add star count 2023-01-02 23:18:20 +04:00
Kamran Ahmed
5b4ed23946 Fix Search Topics shown on all roadmaps 2023-01-02 23:06:37 +04:00
Kamran Ahmed
9144002b89 Add topic search interactivity 2023-01-02 20:48:46 +04:00
Kamran Ahmed
303dbcbd7d Add signup page 2023-01-02 20:43:41 +04:00
Kamran Ahmed
0e45a409da Fix broken videos page 2023-01-02 20:39:51 +04:00
Kamran Ahmed
280c2b8623 Add video detail page 2023-01-02 20:36:04 +04:00
Kamran Ahmed
cbc53a66d8 Add video listing on homepage 2023-01-02 20:34:03 +04:00
Kamran Ahmed
9e010f10b9 Add video migration 2023-01-02 20:26:15 +04:00
Kamran Ahmed
6216c3051e Add guide detail page 2023-01-02 20:23:53 +04:00
Kamran Ahmed
de53dcf02d Add featured guides on homepage 2023-01-02 19:58:46 +04:00
Kamran Ahmed
9b74a5fa62 Guides listing page 2023-01-02 19:52:04 +04:00
Kamran Ahmed
274060a08f Add guides migration 2023-01-02 19:00:26 +04:00
Kamran Ahmed
29dbc0a968 Add featured roadmaps on homepage 2023-01-02 18:48:38 +04:00
Kamran Ahmed
796f66698b Add roadmaps page 2023-01-02 18:38:06 +04:00
Kamran Ahmed
726b9e6d66 Add roadmaps listing page 2023-01-02 18:14:45 +04:00
Kamran Ahmed
b176d2c23e Roadmap filtering by tags 2023-01-02 18:09:13 +04:00
Kamran Ahmed
32761b5587 Topics listing page 2023-01-02 17:48:02 +04:00
Kamran Ahmed
6f337f6b53 Add topics listing page 2023-01-02 14:59:33 +04:00
Kamran Ahmed
6d68542f25 Refactor markdown styles 2023-01-02 14:10:42 +04:00
Kamran Ahmed
cb08ead276 Run sync-content 2023-01-02 04:47:46 +04:00
Kamran Ahmed
e9e68d1361 Delete artifacts from history 2023-01-02 04:45:13 +04:00
Kamran Ahmed
b1feefe2da Delete artifacts from history 2023-01-02 04:44:52 +04:00
Kamran Ahmed
30aef56202 Delete artifacts from history 2023-01-02 04:44:20 +04:00
Kamran Ahmed
e002e3c478 Add breadcrumbs and roadmap banner 2023-01-01 21:12:08 +04:00
Kamran Ahmed
9492c61955 Refactor and add topic population 2023-01-01 20:53:51 +04:00
Kamran Ahmed
0ad672f042 Fix missing heading 2023-01-01 19:59:59 +04:00
Kamran Ahmed
50b0309590 Handle external links in markdown 2023-01-01 18:59:38 +04:00
Kamran Ahmed
bc13c3bdad Add resource paragraph before links 2023-01-01 18:38:20 +04:00
Kamran Ahmed
fed1803243 Add resource paragraph before links 2023-01-01 18:38:15 +04:00
Kamran Ahmed
02883e50f0 Migrate old roadmaps 2023-01-01 18:16:35 +04:00
Kamran Ahmed
f9911b6597 Add content migration script 2023-01-01 18:06:28 +04:00
Kamran Ahmed
16ebf98164 Add roadmap migrator command 2023-01-01 17:52:52 +04:00
Kamran Ahmed
451c36dca4 Add topics page 2023-01-01 16:39:21 +04:00
Kamran Ahmed
274eeece7a Add markdown roadmap support 2022-12-31 20:37:14 +04:00
Kamran Ahmed
358c1440d8 Fix broken build 2022-12-31 20:20:38 +04:00
Kamran Ahmed
362588cf1b Add all roadmaps and their content 2022-12-31 20:14:48 +04:00
Kamran Ahmed
228aea0b1a Add download and subscribe popups 2022-12-31 20:10:12 +04:00
Kamran Ahmed
03da0ef24d Add topic overlay component 2022-12-31 19:56:34 +04:00
Kamran Ahmed
0932f36953 Add share icons 2022-12-31 19:42:00 +04:00
Kamran Ahmed
10883454f5 Add rendering of SVG roadmaps 2022-12-31 19:39:35 +04:00
Kamran Ahmed
45a7aad669 Add roadmap header and components 2022-12-31 18:54:22 +04:00
Kamran Ahmed
a5874bd057 Add roadmap rendering 2022-12-31 18:21:51 +04:00
Kamran Ahmed
16f48a1958 Initial commit 2022-12-31 17:01:40 +04:00
Kamran Ahmed
e0685ea2ea Add CSS Modules and RTK Query 2022-12-31 01:52:40 +04:00
Kamran Ahmed
e4b182f499 Update python roadmap image and pdf 2022-12-30 20:16:07 +04:00
Kamran Ahmed
9614eb2dc2 Add list comrpehensions, paradigms and expressions 2022-12-30 20:08:09 +04:00
Kamran Ahmed
f127d9a591 Update python roadmap year 2022-12-30 19:11:50 +04:00
Kamran Ahmed
ab8b6a1125 Add note, conda, and rearrange some items 2022-12-30 19:11:24 +04:00
Kamran Ahmed
abb9209577 Fix CLS on the updated roadmaps 2023 2022-12-28 20:15:10 +04:00
Kamran Ahmed
16bc596f23 Update react roadmap image and PDFs 2022-12-28 19:59:57 +04:00
Kamran Ahmed
0e71019feb Update react roadmap 2022-12-28 19:59:57 +04:00
Kamran Ahmed
96dd4ab4a1 Update react roadmap 2022-12-28 19:59:57 +04:00
Fred Vasquez
7d53de587b Update websockets content (#3183)
* Update 101-web-sockets.md

Adding simple introduction and useful links.

* Update websockets link

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-12-27 18:13:32 +04:00
Shantanu Pade
b5ae4b3522 Fix broken event loop link 2022-12-27 18:10:47 +04:00
Kamran Ahmed
e1fec34ad9 Update FE, BE and DevOps year to 2023 2022-12-27 17:35:18 +04:00
Kamran Ahmed
dfa3c5d921 Update devops roadmap image and pdfs 2022-12-27 17:26:21 +04:00
Kamran Ahmed
717d0a723a Add secret management topic 2022-12-27 17:26:21 +04:00
Kamran Ahmed
16a8bac55d Add GitOps topic to DevOps roadmap 2022-12-27 17:26:21 +04:00
Kamran Ahmed
bf7952401d Remove C and C++ 2022-12-27 17:26:21 +04:00
Kamran Ahmed
fb5b777425 Update operating systems, networking tools, servers, ci/cd and config mgmt 2022-12-27 17:26:21 +04:00
Kamran Ahmed
2968bde697 Fix - Kafka node is loading RabbitMQ 2022-12-27 13:59:33 +04:00
Kamran Ahmed
0996ca6006 Add event tracking 2022-12-27 00:26:38 +04:00
Kamran Ahmed
e3ae882cbc Add TNS banner on FE, BE and DevOps roadmaps 2022-12-26 20:58:35 +04:00
Kamran Ahmed
09478a8ac8 Add node for Server Security 2022-12-23 18:41:55 +04:00
Kamran Ahmed
c8dd18a283 Update backend roadmap pdf and image 2022-12-23 18:14:44 +04:00
Kamran Ahmed
70f7d36eb4 Add DevOps roadmap as a next step 2022-12-23 18:14:06 +04:00
Kamran Ahmed
03ce53bffc Remove bonus content 2022-12-23 18:14:06 +04:00
Kamran Ahmed
b1da55261b Add a database topic - Failure modes 2022-12-23 18:14:06 +04:00
Kamran Ahmed
15d0a91e1e Update migration strategies 2022-12-23 18:14:06 +04:00
Kamran Ahmed
00b9ad0016 Add new topics to backend roadmap 2022-12-23 18:14:06 +04:00
Kamran Ahmed
7a9dd74f21 Update backend roadmap for 2023 2022-12-23 18:14:06 +04:00
Kamran Ahmed
314c95a0ed Update design principles 2022-12-23 18:14:06 +04:00
Akash Kishore Mukhia
300c07c315 Remove non-English resources 2022-12-22 16:09:53 +04:00
Kamran Ahmed
dac327faef Add GraphQL roadmap link 2022-12-22 15:24:33 +04:00
Kamran Ahmed
1b7447326f Add updated frontend roadmap 2022-12-22 15:23:32 +04:00
Kamran Ahmed
c5fe69c81e Add bonus content 2022-12-22 15:21:10 +04:00
Kamran Ahmed
7103263ba6 Breakdown the performance metrics 2022-12-22 15:21:10 +04:00
Kamran Ahmed
8e257d3168 Add content for web apis 2022-12-22 15:21:10 +04:00
Kamran Ahmed
8dd1665cd0 Add bonus content to frontend roadmap 2022-12-22 15:21:10 +04:00
Kamran Ahmed
1a493a9dbe Add authentication strategies 2022-12-22 15:21:10 +04:00
Kamran Ahmed
586b160f7e Remove enzyme from testing 2022-12-22 15:21:10 +04:00
Kamran Ahmed
76c9147608 Add Svelte and Svelte Kit to SSR 2022-12-22 15:21:10 +04:00
Kamran Ahmed
025288075b Add astro to SSG and SSE beside web sockets 2022-12-22 15:21:10 +04:00
Kamran Ahmed
68cd3a658b Add flutter to desktop options 2022-12-22 15:21:10 +04:00
Kamran Ahmed
1eedacab43 Update sponsor heading 2022-12-22 10:10:55 +04:00
Kamran Ahmed
c5c3a4f560 Remove mercurial 2022-12-21 17:25:05 +04:00
Kamran Ahmed
c668c84ba0 Add ambassador eBook link 2022-12-20 13:19:06 +04:00
Kamran Ahmed
be8c82974f Fix GraphQL FE and BE implementations 2022-12-19 22:23:03 +04:00
Heru Purnama
2d5e6fd22c Add resource for Karate Framework (#3106)
Update tutorial video from youtube
2022-12-14 13:36:21 +04:00
Chandrashekhar R
c11a28a034 Fixes the === operator format (#3108)
Displays it in code format so that it is appears the same as the other operators.
2022-12-14 13:35:21 +04:00
Kamran Ahmed
1f7554df5b Add functionality to mark done topic as pending 2022-12-13 14:36:16 +04:00
Kamran Ahmed
a0bc3200ed Add functionality to mark as done on right click 2022-12-13 14:32:16 +04:00
Kamran Ahmed
72a918116a Add PDF for GraqphQL roadmap 2022-12-12 18:07:07 +04:00
Kamran Ahmed
6bfd15d85a Add interactive GraphQL roadmap 2022-12-12 17:54:37 +04:00
Kamran Ahmed
b8b4ae4a5a Remove OS resource 2022-12-10 14:31:44 +04:00
Amardeep
6da7560c06 Add content for MVC in ASP.NET Roadmap (#3079)
* Update 100-mvc.md

* Update content/roadmaps/116-aspnet-core/content/103-basics-of-aspnet-core/100-mvc.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-12-09 19:21:47 +04:00
Kamran Ahmed
7b78d4c21e Disable ad on the devops roadmap 2022-12-06 17:11:05 +04:00
Abhilash Panicker
db911ebfee Add content for constraints (#3059)
* Update 103-constraints.md

* Update content/roadmaps/116-aspnet-core/content/102-database-fundamentals/103-constraints.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-12-06 12:56:12 +04:00
Abhilash Panicker
3f97475a2b Add content for ORM (#3060)
* Update readme.md

* Update content/roadmaps/116-aspnet-core/content/104-orm/readme.md

* Update content/roadmaps/116-aspnet-core/content/104-orm/readme.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-12-06 12:52:43 +04:00
Kamran Ahmed
7997a4126f Fix broken buld 2022-12-05 18:08:35 +04:00
The New Stack
12cce5ca92 Add resource for OWASP 10 (#2963) 2022-12-05 17:06:07 +04:00
Tran Dinh Dong
38a5a399c3 Remove duplicate link for semantic HTML (#2935)
Remove the duplicated documentation link.
2022-12-05 17:05:44 +04:00
Felipe Carvalho
7df11ac8ba Add instructions for VS Code for flutter (#2938)
* Update a setup from Vs Code for Flutter.

* Update content/roadmaps/117-flutter/content/101-setup-development-environment/101-ides/100-vs-code.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-12-05 17:05:15 +04:00
collegedude9300
db65e65f26 Add content for C# (#2949)
* Update readme.md

* Update content/roadmaps/116-aspnet-core/content/100-basics-of-csharp/readme.md

* Update content/roadmaps/116-aspnet-core/content/100-basics-of-csharp/readme.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-12-05 17:02:21 +04:00
The New Stack
023ff838c3 Add resource for HTTP3. (#2954) 2022-12-05 16:56:00 +04:00
The New Stack
693f88a879 Add resource for accessibility (#2956) 2022-12-05 16:54:20 +04:00
The New Stack
9025f032a2 Add resource for CSS Gri (#2958) 2022-12-05 16:53:24 +04:00
The New Stack
fbb28af577 Add resource for ES6 (#2959) 2022-12-05 16:53:05 +04:00
The New Stack
60ccde483a Add resource for learning git (#2960)
* Update 100-basic-usage-of-git.md

* Update content/roadmaps/100-frontend/content/104-version-control-systems/100-basic-usage-of-git.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-12-05 16:51:31 +04:00
The New Stack
830b5e9125 Add gitlab content (#2962) 2022-12-05 16:42:06 +04:00
The New Stack
cbf101c83f Add resource for vue.js (#2964) 2022-12-05 16:41:34 +04:00
The New Stack
725a8cd120 Add resources for svelte (#2965)
* Update 103-svelte.md

* Update content/roadmaps/100-frontend/content/111-pick-a-framework/103-svelte.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-12-05 16:41:13 +04:00
The New Stack
a82229832c Add playwright content (#2966) 2022-12-05 16:40:40 +04:00
The New Stack
ae41703f71 Add TypeScript resources (#2967) 2022-12-05 16:40:01 +04:00
The New Stack
c0adde8957 Add resource for Vue.js (#2970) 2022-12-05 16:37:04 +04:00
The New Stack
09d1816901 Add resource for static site generators (#2973) 2022-12-05 16:35:11 +04:00
The New Stack
7cb292f032 Add content for Gatsby (#2974) 2022-12-05 16:34:45 +04:00
The New Stack
5296d2adb5 Add resource for Hugo (#2975) 2022-12-05 16:34:22 +04:00
The New Stack
ac5755bbf3 Add GraphQL resources (#2976) 2022-12-05 16:34:07 +04:00
The New Stack
9da0656e72 Add resource for flutter (#2977) 2022-12-05 16:33:39 +04:00
The New Stack
cd8b6c8434 Add resource for Tarui (#2978) 2022-12-05 16:33:22 +04:00
The New Stack
388deb5eac Add resources for web assembly (#2979) 2022-12-05 16:33:07 +04:00
Heru Purnama
4b77d63f94 Add resource for white box testing (#2981)
Update with new resource, example and concept
2022-12-05 16:32:44 +04:00
Heru Purnama
31f198068e Add resource for blackbox testing (#2982)
Update with new resource, example and concept
2022-12-05 16:32:27 +04:00
Heru Purnama
d711f92418 Add content for learning automation (#2983)
Update new resource learning path for automate. This update include path using Java, Pyhton, And javascript with free certificate
2022-12-05 16:31:54 +04:00
Rachelle Palmer
c1dad0da30 Update link for MongoDB course (#2986) 2022-12-05 16:31:20 +04:00
Azim Ahmed Warsi
9b52b68823 Add resources for Dart (#2989)
* Added Resources and Information for "Dart Basics"

* Update content/roadmaps/117-flutter/content/100-dart-basics/readme.md

* Update content/roadmaps/117-flutter/content/100-dart-basics/readme.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-12-05 16:30:37 +04:00
Mauricio Allegretti
8028e244da Add information to Atlassian Tools node (#2993) 2022-12-05 16:29:45 +04:00
Zeeshan Safdar
863bc41fe9 Add playlist link for React Query (#3000)
* Add complete playlist link for React Query

Add complete playlist link for React Query

* Update color scheme and badge Text
2022-12-05 16:29:26 +04:00
Mauricio Allegretti
07bccc6bce Add content to layered architecture (#3003)
* Add Layered architecture node information

* 'Update content/roadmaps/114-software-architect/content/107-architectures/103-layered-architecture.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-12-05 16:28:10 +04:00
Mauricio Allegretti
0130d25e0d Add PKI node information (#3006)
* Add PKI node information

* Update content/roadmaps/114-software-architect/content/108-security/101-pki.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-12-05 16:22:54 +04:00
Obed David Pérez Uri
495e5af71f Add content for type conversion (#3007)
* Update 100-type-conversion-coercion.md

Added English and Spanish videos, evaluated videos :)

* Update content/roadmaps/106-javascript/content/103-javascript-type-casting/100-type-conversion-coercion.md

* Update content/roadmaps/106-javascript/content/103-javascript-type-casting/100-type-conversion-coercion.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-12-05 16:21:19 +04:00
Kamil
5885de7179 Remove invalid resource Golang 102 (#3008)
Remove invalid resource from Golang 102-types-and-type-assertions.md
The provided resource is a video about protocol buffers in Go, not types or type assertion
2022-12-05 16:19:25 +04:00
Md Abid Hussain
a9c7b88f1a Update resource tag (#3010) 2022-12-05 16:18:30 +04:00
Atharva Hinge
84c7a05e88 Fixed the issue of npx link broken. (#3013)
* Update 100-npx.md

* Update 100-npx.md

* Update 100-npx.md

* Update 100-npx.md

* Update content/roadmaps/107-nodejs/content/102-nodejs-npm/100-npx.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-12-05 16:17:33 +04:00
dawgaw
93fd576573 Add tutorial for OS (#3015)
* Add link to OS tutorial

* Add introduction

* Update content/roadmaps/101-backend/content/102-os-general-knowledge/readme.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-12-05 16:14:57 +04:00
Shrijal Shrestha
9cd611a51f Add shared preferences package description (#3016)
* Added SharedPreference description

Added SharedPreference description from pub.dev

* Update content/roadmaps/117-flutter/content/109-storage/101-shared-preferences.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-12-05 16:13:42 +04:00
Shrijal Shrestha
79892a7470 Add content for SQLite (#3017)
* Update 100-sqlite.md

Added Sqlite description from pub.dev

* Update content/roadmaps/117-flutter/content/109-storage/100-sqlite.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-12-05 16:11:58 +04:00
Anthony_256
d7fe2eae86 Add QA definitions (#3018)
* add QA definitions
Add image of the QA process illustration

* Update readme.md

* Delete QA process.vpd

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-12-05 16:09:47 +04:00
Ali koleiny zadeh
300c386820 Add content for .NET CLI
* added content in Learn the Basics of csharp (.NET CLI) in ASP.NET Core roadmap

* Update content/roadmaps/116-aspnet-core/content/100-basics-of-csharp/102-dotnet-cli.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-12-05 15:56:09 +04:00
Revuza
5277a36977 Add TON to Blockchains in Blockchain roadmap (#3023)
* ton

* added TON

* fix

* fix id

* Update public/project/blockchain.json

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-12-05 15:54:22 +04:00
yu-lia
f93685308a Add content for marble diagram (#3028)
* Update 102-marble-diagrams.md

* Update content/roadmaps/104-angular/content/101-rxjs-basics/102-marble-diagrams.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-12-05 15:49:08 +04:00
Thomas R
6cc1fc3a5c Fixed DNS System (Domain Name System System) (#3029) 2022-12-05 15:48:18 +04:00
FercueNat
9993554485 Adding information to the Registers and Ram node - CS Roadmap (#3035)
* Adding information to the Registers and Ram node - CS Roadmap

* Update content/roadmaps/103-computer-science/content/120-how-computers-work/102-registers-and-ram.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-12-05 15:44:47 +04:00
Abhishek Kumar
7fa27a2cd9 Add content for JavaScript course (#3037)
<BadgeLink badgeText='Watch' href='https://www.youtube.com/watch?v=PkZNo7MFNFg'>Learn Javascript - Full course for bignners></BadgeLink>
2022-12-05 15:43:17 +04:00
Marco Behler
1d5b7a3d79 Add link for Spring (#3038) 2022-12-05 15:42:48 +04:00
Marco Behler
a5d8c120d3 Update 104-java-orm with marcobehler article (#3039)
* Update 104-java-orm with marcobehler article

* Update content/roadmaps/110-java/content/104-java-orm/readme.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-12-05 15:42:27 +04:00
Marco Behler
3e423a6327 Update 105-java-logging-frameworks with marcobehler article (#3040)
* Update 105-java-logging-frameworks with marcobehler article

* Update content/roadmaps/110-java/content/105-java-logging-frameworks/readme.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-12-05 15:41:12 +04:00
Bacem_Zarai
2830241e8b Add content for RxJs vs Promsies (#3044)
* Update 103-rxjs-vs-promises.md

* Update content/roadmaps/104-angular/content/101-rxjs-basics/103-rxjs-vs-promises.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-12-05 15:40:35 +04:00
Abhilash Panicker
3fd3e696ce Add content for Stored Procedures (#3047)
* Update 102-stored-procedures.md

Added information and link

* Update content/roadmaps/116-aspnet-core/content/102-database-fundamentals/102-stored-procedures.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-12-05 15:39:42 +04:00
Felipe Luz
1148dfb35e design-systems glossary page unavailable (#3048)
Add a snapshot of the post https://web.archive.org/web/20220620075140/https://superfriendly.com/design-systems/glossary/
2022-12-05 15:38:25 +04:00
AHN
8990f0912a Added W3Schools resource about form validation (#3054) 2022-12-05 15:38:13 +04:00
Vaidic Dodwani
e58c29ee6b Add content for flutter package manager (#3056)
* Content For Flutter/Package_Manager

* Update content/roadmaps/117-flutter/content/107-package-manager/readme.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-12-05 15:37:13 +04:00
Džiugas Pečiulevičius
7af784b2d7 JS inequality and strict inequality fixes (#3057) 2022-12-05 12:11:36 +04:00
Kamran Ahmed
b2647f7702 Add author image 2022-12-01 11:36:07 +05:00
Kamran Ahmed
dd6ade038e Add utm parameters to tns links 2022-11-30 16:51:50 +05:00
Kamran Ahmed
22350387a6 Update footer link for tns 2022-11-29 14:51:05 +05:00
Kamran Ahmed
30f9b1ea32 Add fastapi to python roadmap 2022-11-27 00:11:11 +05:00
Kamran Ahmed
427441c311 Add tns footer 2022-11-25 15:29:25 +04:00
Dominic Flocea
ba27e84e8b update article name for basic linux commands (#3005)
The article name has changed from 34 to 40 Basic Linux Commands
2022-11-23 18:02:22 +04:00
Mohamed Elkholy
aa8bf22580 Update course title (#2996)
* It's not polite term ' Dummies

* Update content/roadmaps/101-backend/content/100-internet/100-how-does-the-internet-work.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-11-22 11:37:06 +04:00
Muhammad Pazrin Andreanor
e2c5064f33 added: DedicatedRoadmap Flutter Roadmap (#2995) 2022-11-22 09:25:14 +04:00
Tonin
c6cbaadc44 removed duplicated topic (#2990)
theres a duplicated topic here and in the website
2022-11-21 14:55:16 +04:00
Alexey
2a51efd4fa Fix GraphQL typo (#2984) 2022-11-18 15:28:10 +04:00
collegedude9300
edf71d31c6 Add content for datastructures (#2950)
* Update 104-datastructures-and-algorithms.md

* Update content/roadmaps/116-aspnet-core/content/101-general-development-skills/104-datastructures-and-algorithms.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-11-17 17:03:02 +04:00
Kamran Ahmed
1aeddd7080 Rename roadmap note file 2022-11-15 22:30:17 +04:00
Kamran Ahmed
932808f87a Fix computer science roadmap note not opening 2022-11-15 18:19:45 +04:00
Kamran Ahmed
ab0f15ddf1 Add stormforge ebook link 2022-11-15 16:47:11 +04:00
Archit Sharma
0171e76b6a Resources added for Http/Https Protocol (#2929) 2022-11-14 11:50:54 +04:00
Ansat
bc9ee6921f feat: add software-design-architecture roadmap (#2934) 2022-11-14 11:30:18 +04:00
Ashik Kabeer
910df79e0f Deleted roadmap.sh page (#2928)
Understanding Javascript Promises this page won't be available anymore
2022-11-12 10:41:32 +04:00
CodeGuage
f4cdb36381 Add JavaScript data types resource (#2915) 2022-11-11 23:47:59 +04:00
CodeGuage
ff5b15f080 Added new resource (#2916) 2022-11-11 23:47:40 +04:00
CodeGuage
ae2c33551c Added new resource for functions (#2917) 2022-11-11 23:44:31 +04:00
CodeGuage
91c422bf4c Added new resource for variables (#2918) 2022-11-11 23:44:18 +04:00
CodeGuage
37e5cf4057 Added new resource for variable naming rules (#2919)
This resource gives some very useful variable naming tips for JavaScript.
2022-11-11 23:44:00 +04:00
CodeGuage
09a35e8235 Add resource for constr (#2920) 2022-11-11 23:43:40 +04:00
Archit Sharma
24ef0346e8 Resources added for Git (#2925) 2022-11-11 23:41:58 +04:00
Moaaz Adel
be446d6013 Add cypress content (#2907) 2022-11-10 16:17:27 +04:00
Rachelle Palmer
ea83588f8d Add sharding strategies resource (#2909) 2022-11-10 16:16:51 +04:00
minikill
d176c72a54 Update 103-nosql-databases.md (#2911)
I guess we cannot count S3 as key-value in the common meaning
2022-11-10 16:15:54 +04:00
Md Abid Hussain
5219b8c78f Add resources to frontend roadmap (#2903)
* Added new resource and arrange the content

* Update readme.md

* Update 101-making-layouts.md
2022-11-10 16:15:24 +04:00
ChuckD3ath
66f311face Update Bug Magnet (#2902) 2022-11-10 16:13:23 +04:00
Kamran Ahmed
4429643d23 Remove spacing from next-tick file 2022-11-10 13:13:11 +04:00
Kamran Ahmed
302eb2737c Change hiring text to hiring a devrel 2022-11-10 12:58:13 +04:00
Kamran Ahmed
43dc75f21b Fix missing text in link 2022-11-09 19:08:07 +04:00
Kamran Ahmed
ef68ef79ba Fix missing text in link 2022-11-09 19:06:17 +04:00
Kamran Ahmed
cdbb3fb09b Add content for k-d trees and skip lists 2022-11-09 14:22:46 +04:00
Kamran Ahmed
17aa1ae88d Add content for CPU processes and threads 2022-11-09 14:18:35 +04:00
Kamran Ahmed
082593165f Add content for how computers work 2022-11-09 14:06:24 +04:00
Kamran Ahmed
ed3c5eef7c Add security content in computer science 2022-11-09 14:01:20 +04:00
Kamran Ahmed
250485b5f8 Add content to networking node 2022-11-09 13:50:32 +04:00
Kamran Ahmed
50a1f04c23 Add database items content 2022-11-09 13:34:08 +04:00
Kamran Ahmed
1dac6caa56 Add content for system design 2022-11-09 13:01:25 +04:00
Kamran Ahmed
51a543f013 Add content for tries and balanced search trees 2022-11-09 12:15:43 +04:00
Kamran Ahmed
e7a2e027e5 Add content for complexity classes 2022-11-09 11:17:17 +04:00
Kamran Ahmed
19fcd33993 Ad content for design patterns and math skills 2022-11-08 18:02:20 +04:00
Kamran Ahmed
0b112c3d32 Add content for UML diagrams 2022-11-08 17:23:09 +04:00
Kamran Ahmed
e0b156d4fb Add content for character encodings 2022-11-08 17:04:04 +04:00
Kamran Ahmed
0ec0ab4d3c Add content for bitwise bitwise, floating point and endianess 2022-11-08 16:56:47 +04:00
Kamran Ahmed
6fa7117a33 Add content for string search and manipulation algorithms 2022-11-08 16:39:13 +04:00
Kamran Ahmed
09b95f30d7 Add content for common algorithms in computer science roadmap 2022-11-08 16:19:19 +04:00
Archit Sharma
2b4dede970 Resources added for HTTP (#2901) 2022-11-08 16:05:15 +04:00
Kamran Ahmed
4405919d57 Add greedy algorithms content 2022-11-08 15:36:29 +04:00
Kamran Ahmed
242d755de6 Add graph traversal algorithm 2022-11-08 15:26:17 +04:00
Kamran Ahmed
e2b1d4b6bc Add tree algorithms content 2022-11-08 15:26:17 +04:00
Manish Kumar
7d4d390b64 Add content for command line applications (#2900)
* node.js command line apps readme added

* Update content/roadmaps/107-nodejs/content/106-nodejs-command-line-apps/readme.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-11-08 14:37:45 +04:00
Kamran Ahmed
a79342b6eb Add sorting algorithms content 2022-11-08 00:16:42 +04:00
Kamran Ahmed
75843e114f Add asymptotic notation content 2022-11-07 17:33:48 +04:00
Kamran Ahmed
19ae880d6a Add content to graph nodes 2022-11-07 17:10:15 +04:00
Kamran Ahmed
64e9abd20a Add resources for queue, hash, tree and heap data structures 2022-11-07 16:49:37 +04:00
Kamran Ahmed
681ff8147e Add content to cs/pick-language and cs/datastructures 2022-11-07 16:22:36 +04:00
Kamran Ahmed
9dae390d5d Add link to computer science roadmap 2022-11-07 15:30:17 +04:00
Kamran Ahmed
439aab60b0 Hover style for the hiring link 2022-11-07 15:26:32 +04:00
Kamran Ahmed
63d07c559a Make share icons to appear on scroll 2022-11-07 14:36:30 +04:00
Kamran Ahmed
7068b95b10 Update computer science roadmap meta 2022-11-07 14:19:01 +04:00
Kamran Ahmed
a7dd614c8c Add hiring link in top nav 2022-11-07 14:11:47 +04:00
Kamran Ahmed
b39eac78ff Fix typo 2022-11-07 13:42:39 +04:00
Kamran Ahmed
50ba6b9279 Add computer science roadmap pdf and image 2022-11-07 13:27:48 +04:00
Kamran Ahmed
c3f64f243d Add readme for computer science roadmap 2022-11-07 13:23:03 +04:00
Kamran Ahmed
236495cdd8 Improve web vitals 2022-11-07 13:15:37 +04:00
Kamran Ahmed
d82a421812 Fix alignment of note 2022-11-07 13:04:43 +04:00
Kamran Ahmed
b6a954c48d Add computer science roadmap 2022-11-07 12:59:15 +04:00
collegedude9300
c97fa1a537 Add repo hosting services content (#2876)
* Update 102-vcs-hosting-services.md

* Update content/roadmaps/116-aspnet-core/content/101-general-development-skills/102-vcs-hosting-services.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-11-07 12:22:43 +04:00
collegedude9300
67ec74e804 Add resources for C#(#2877)
* Update 100-csharp.md

* Update content/roadmaps/116-aspnet-core/content/100-basics-of-csharp/100-csharp.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-11-07 12:21:43 +04:00
Archit Sharma
e122a7d0bf Resources added for Forms in Vue (#2879) 2022-11-07 12:13:48 +04:00
ChuckD3ath
8cb6de5994 Updated Frontend Automation Introductions (#2880) 2022-11-07 12:13:36 +04:00
dawgaw
178e8748c3 Remove broken link (#2883) 2022-11-07 12:13:18 +04:00
ChuckD3ath
6d5a54e7a2 Updated Nightwatch.js Automation Framework (#2885) 2022-11-07 12:12:53 +04:00
ChuckD3ath
b1e588c4b2 Added REST Assured Tutorial (#2886) 2022-11-07 12:12:37 +04:00
ChuckD3ath
b7ae990a05 Update Accessibility Tools (#2887) 2022-11-07 12:12:25 +04:00
ChuckD3ath
79528144e2 Add content for gmail tester (#2888) 2022-11-07 12:12:09 +04:00
Sophie Obomighie
30d974f21d Fix CSS url in node (#2873)
Changed the legacy version of freecodecamp's responsive web design course to the present one.
2022-11-04 19:02:28 +04:00
Tiago Pedutti
a9047f8ef3 Fix React Roadmap URL on Readme file (#2874) 2022-11-04 18:56:15 +04:00
Kamran Ahmed
7832e09826 Fix flicker of share buttons 2022-11-04 17:26:30 +04:00
Kamran Ahmed
47dd9e5522 Add buttons to share roadmaps on Hacker News, Reddit, Twitter, Facebook 2022-11-04 16:54:09 +04:00
Kamran Ahmed
ededf3017a Add sharer urls 2022-11-04 16:51:06 +04:00
Kamran Ahmed
5f4b0744c9 Add sharer links 2022-11-04 16:47:09 +04:00
Kim Hallberg
9f23ff0b48 Add missing apostrophes (#2864) 2022-11-04 10:29:29 +04:00
Colin Eberhardt
14a888f69e Fix typo in azure (#2865) 2022-11-04 10:29:12 +04:00
collegedude9300
ccf527a447 Add C# Content (#2868)
* Update 100-csharp.md

* Update content/roadmaps/116-aspnet-core/content/100-basics-of-csharp/100-csharp.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-11-04 10:26:10 +04:00
Rudrakshi
50dc3ed972 Added resource to 103-linux-unix.md (#2855) 2022-11-03 14:27:51 +04:00
Archit Sharma
efb369e717 Add java/kotlin/scala resources (#2854)
* Resources added for Java kotlin scala

* Update content/roadmaps/114-software-architect/content/104-programming-languages/100-java-kotlin-scala.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-11-03 14:27:05 +04:00
Aakash Rana
e6b02e1308 Add basic authentication content (#2853)
* Intro to Basic Authentication added

* Update content/roadmaps/101-backend/content/109-apis/106-authentication/102-basic-authentication.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-11-03 14:25:12 +04:00
Md Abid Hussain
2156e13f65 Added more oops resources (#2860)
Added OOPs playlist by Kunal Kushwaha
2022-11-03 13:50:58 +04:00
Md Abid Hussain
b979a79556 Added new resources (#2861)
Added HTML Full Course for Beginners | Complete All-in-One Tutorial  by Dave gray
2022-11-03 13:49:37 +04:00
Max
8dae98dc4e Fix typo in resources (#2859) 2022-11-02 18:44:57 +04:00
Kamran Ahmed
8f4eea751f Add video about session authentication 2022-11-02 18:42:33 +04:00
Max
8ee7ae1d22 Fix spelling errors (#2847) 2022-11-01 23:54:37 +04:00
Mauricio Allegretti
e49517cf2a Update style 100 swas pwas jamstack (#2850)
* Add SWAs, PWAs and Jamstack node information

* Update styles into SWAs, PWAs and Jamstack node
2022-11-01 23:54:25 +04:00
Krystian Budulski
e2489c43f7 Add content for flutter roadmap nodes (#2851)
- add descriptions with links to mostly official Flutter/Dart documentation and libraries from pub.dev
2022-11-01 23:53:54 +04:00
FercueNat
00bcb512ed Added Free content title missing - QA roadmap (#2846) 2022-11-01 18:55:40 +04:00
Kamran Ahmed
a70739bc4a Reformat session based authentication code samples 2022-11-01 18:00:25 +04:00
Kamran Ahmed
9727a3daae Add guide on session based authentication 2022-11-01 17:55:53 +04:00
Ahmad Dusmatov
430b78f8ae Remove duplicated resource (#2833) 2022-11-01 11:30:24 +04:00
Md Abid Hussain
5c6cc3a950 Updated and fixed java resources (#2835)
* Fixed resource type

Fixed resource type from watch to read in 'Learn more about Data types and Variables'

* Updated java-fundamental resources

Replaced non-English resource with English one.
Added switch and nested conditional video resource
2022-11-01 11:30:07 +04:00
Md Abid Hussain
c76e2c9468 Added more resources in java roadmap (#2836)
* Replaced paid resource with free one

* Added new resources
2022-11-01 11:29:52 +04:00
FercueNat
10bfd2be39 Adding information to Reporting node - QA Roadmap (#2838) 2022-11-01 11:28:52 +04:00
Mauricio Allegretti
c7bf402ed5 Add SWAs, PWAs and Jamstack node information (#2840)
* Add SWAs, PWAs and Jamstack node information

* Update content/roadmaps/113-qa/content/103-qa-automated-testing/100-frontend-automation/100-basic-introduction/swas-pwas-jamstack.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-11-01 11:28:35 +04:00
Md Abid Hussain
5e98c9ce50 Added Git and GitHub learning resources (#2830)
* Added Git and Github complete course

Added Git and Github complete course by Kunal Kushwaha(YouTube).

* Added GitHub skill learning path
2022-10-31 14:12:51 +04:00
Kamran Ahmed
b96665c358 Merge branch 'master' of github.com:kamranahmedse/developer-roadmap 2022-10-31 13:13:44 +04:00
Kamran Ahmed
117dc41540 Fix pinch zoom not working on resources 2022-10-31 13:13:32 +04:00
shubham patil
1ad1faa7b4 Fix broken event loop link (#2829)
The Node.Js Event Loop link has changes, updating the href
2022-10-31 12:52:27 +04:00
Adekola Olawale
0effd71366 Add content to frontend roadmap (#2709)
* Added resources in frontend and react roadmaps

* moved new resources below exiting ones && BadgeLink stick to one line

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-31 12:50:11 +04:00
Shahriar Ahmmed
b77f2b2aef Add JSX resource (#2714) 2022-10-31 12:42:56 +04:00
SamarS1ngh
c7db305fab Added additional details about Hooks (#2715)
added a more user friendly description about what hooks in react do, so that learners can understand the concept quickly and easily
2022-10-31 12:42:38 +04:00
SamarS1ngh
297cb7a702 Added more about API calls (#2717)
Added a small description of what an API is and what is an API call and how it benefits people
2022-10-31 12:41:40 +04:00
Hossam Kandil
8eafa71a73 Add content for webdriver.io
* Update webdriver-io.md

* Update qa-wolf.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-31 12:40:49 +04:00
Deevanshu Kushwah
709392984d Add content for angular services (#2720)
* Update 107-nodejs-apis/101-express-js.md

* Update content/roadmaps/107-nodejs/content/107-nodejs-apis/101-express-js.md

* Update 110-nodejs-databases /100-relational /102-sequelize.md

* Update  109-nodejs-template-engines/102-ejs.md

* Update content/roadmaps/107-nodejs/content/109-nodejs-template-engines/102-ejs.md

* Update content/roadmaps/107-nodejs/content/110-nodejs-databases/100-relational/102-sequelize.md

* Update   content/roadmaps/104-angular/content/102-angular-basics/105-services.md

* Update content/roadmaps/104-angular/content/102-angular-basics/105-services.md

* Update content/roadmaps/104-angular/content/102-angular-basics/105-services.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-31 12:39:58 +04:00
JatinR05
f3b49f23c0 Fix typos in readme (#2722)
updated
2022-10-31 12:37:40 +04:00
Alex Guja
6421722157 Add resource for HTTP (#2723)
Added ByteByteGo's concise but high-quality video about HTTP
2022-10-31 12:37:21 +04:00
dinaisrael
16ae93a9e5 Add Spring Docs (#2724)
Add Spring Framework Documentation
2022-10-31 12:37:03 +04:00
The New Stack
c058501dbf Add content for frontend development (#2725)
* Update readme.md

Added 1 TNS link

* Update content/roadmaps/101-backend/content/101-basic-frontend/readme.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-31 12:36:13 +04:00
The New Stack
3abb0846dd Add rust resources (#2727)
Add 2 TNS links
2022-10-31 12:33:15 +04:00
The New Stack
7526d69f79 Add go resources (#2728)
Add 2 TNS links
2022-10-31 12:32:56 +04:00
The New Stack
870681889c Add python resources (#2729)
Add 2 TNS links
2022-10-31 12:32:39 +04:00
The New Stack
234a9f9838 Add ruby resource (#2730) 2022-10-31 12:32:22 +04:00
The New Stack
e8ba7f4824 Add resources for CI/CD (#2732)
* Update 113-ci-cd.md

Add 3 new TNS links

* Update content/roadmaps/101-backend/content/113-ci-cd.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-31 12:28:17 +04:00
The New Stack
dd0ad295ff Add integration testing resources (#2733)
Add 1 TNS link
2022-10-31 12:27:28 +04:00
The New Stack
39a7755e4e Add microservices resources (#2734)
* Update 101-microservices.md

3 TNS links added

* Update content/roadmaps/101-backend/content/115-architectural-patterns/101-microservices.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-31 12:26:44 +04:00
Mauricio Allegretti
533d240bce Add QA Wolf node information (#2737) 2022-10-31 12:22:12 +04:00
Mauricio Allegretti
83d8f8d2fa Add content for mailinator (#2736) 2022-10-31 12:21:58 +04:00
justbeingkat
4597657f6d Update 101-writing-semantic-html.md (#2740)
Same link was included twice

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-31 12:21:01 +04:00
leopaul29
6b944fbf55 Remove dead link for ORM (#2741) 2022-10-31 12:19:47 +04:00
Haseeb Ansari
55f72610c9 Add content for email (#2742)
* devops roadmap email readme.md node added

* Update content/roadmaps/102-devops/content/103-networking-protocols/103-emails/readme.md

Co-authored-by: haseebansari <haseeb.ansari@qordata.com>
Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-31 12:19:21 +04:00
leopaul29
a2d973d399 Add jUnit resources (#2744) 2022-10-31 12:18:19 +04:00
Amir Elsagan
3225de6443 Add redux tutoria (#2745)
* add redux tutorial course from free code camp

* Update content/roadmaps/103-react/content/102-react-ecosystem/107-state-management/101-redux.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-31 12:17:47 +04:00
Illia Sheremetov
58e6eab43c Add link to nestjs tutorial (#2746)
That's actually a link to the nest-js tutorial, previously it was React things, doesn’t related with node js
2022-10-31 12:17:02 +04:00
Dominik Pabst
e446a79090 Add resource for infrastructure as code (#2747) 2022-10-31 12:16:14 +04:00
GalNey
e4be992c37 Add content for architectural patterns (#2748)
Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-31 12:15:52 +04:00
GalNey
8fab931771 Add details for real-time databases (#2750) 2022-10-31 12:12:47 +04:00
GalNey
1526af1860 Add content for wave (#2751) 2022-10-31 12:12:26 +04:00
Dominik Pabst
f5dc08bedb Add agile manifesto link (#2752) 2022-10-31 12:12:08 +04:00
ChuckD3ath
5bf995814a Update Ghost Inspector (#2754) 2022-10-31 12:11:30 +04:00
Md Abid Hussain
d8d8895b5e Added new networking content (#2757)
Full free networking course by Kunal Kushwaha
2022-10-31 12:11:21 +04:00
Haseeb Ansari
848ca8a662 Add content for architectural patterns (#2759)
Co-authored-by: haseebansari <haseeb.ansari@qordata.com>
2022-10-31 12:09:34 +04:00
Pranshu Agrawal
c452e689ca Add link to roadmap.sh from repo header (#2760)
* added link in the header

* Update readme.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-31 12:08:14 +04:00
Haseeb Ansari
03b731ba35 Update content for spark node (#2761)
* Java Roadmap Spark: Fixed Spark framework node. It is Spark , not Apache Spark

* link fix

Co-authored-by: haseebansari <haseeb.ansari@qordata.com>
2022-10-31 12:07:31 +04:00
Amir Elsagan
13cf59caae Add vitest course (#2767)
* add course from youtube

* Update content/roadmaps/103-react/content/102-react-ecosystem/106-testing/103-vitest.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-31 12:05:31 +04:00
Wemi Moyela
73cba4f942 Add content for scope in JavaScript (#2769) 2022-10-31 12:03:39 +04:00
Wemi Moyela
9cd709198f Add details for JS Functions (#2772) 2022-10-31 12:01:44 +04:00
Wemi Moyela
0f443d6e0a Add content for equality algorithms (#2773) 2022-10-31 12:01:12 +04:00
Rudrakshi
959d96b24f Add resource for bash scripting (#2776) 2022-10-31 12:00:20 +04:00
Aayan Pathan
7c73452438 Add python decorators resource (#2777) 2022-10-31 11:59:33 +04:00
Aayan Pathan
f912937775 Add crash course for OOP (#2778)
Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-31 11:59:05 +04:00
Sojin Samuel
35b9540bd0 Update Grammar Mistakes (#2780)
found grammatical errors
2022-10-31 11:57:29 +04:00
Mauricio Allegretti
498fd5c4b0 Add info to Check My Links node (#2781) 2022-10-31 11:56:45 +04:00
Mauricio Allegretti
c1a249735e Add info to Responsive vs Adaptive node (#2783) 2022-10-31 11:56:26 +04:00
Sojin Samuel
5a1416aca9 Add resource for axios in react (#2784)
Talks about why we should use it, set up instructions, GET, POST,  PUT, DELETE Requests, creating a custom useAxios Hook, and much more.
2022-10-31 11:56:08 +04:00
Rachelle Palmer
6f92fa052d Add resources for mongoose (#2812)
Add resources for Mongoose
2022-10-31 11:55:52 +04:00
Yash Dewasthale
3d88325aae Add firewall contnet (#2813)
* Update 104-firewall.md

Updated guidance path for Firewall topic from DevOps series.

* Update content/roadmaps/102-devops/content/104-setting-up-x/104-firewall.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-31 11:55:29 +04:00
Care99
4b3a462076 Fix typois(#2816)
Co-authored-by: Care99 <cesar.rodas@fpuna.edu.py>
Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-31 11:52:03 +04:00
izembrandt
18da889d02 Fixed typos (small changes) see commits (#2817)
* Fixed Typo of the word 'Practises' to 'Practices'

* Fixed typo with ')' after a dot

* fixed typo in SoapUI name
2022-10-31 11:51:04 +04:00
Sodium Antimony
fbc497519f Add PHP course (#2828)
* A course added for PHP

- Add a link to PHP for Beginners (2023 Edition) [Free Course]

* Update content/roadmaps/101-backend/content/103-learn-a-language/103-php.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-31 11:50:39 +04:00
Julio Lezcano
6f2b5f3378 Fix comma (#2818) 2022-10-31 11:49:14 +04:00
Arya Sharma
ff20c28a78 Add OOP course (#2766) 2022-10-31 11:48:57 +04:00
CarmenResquin
0348cc9616 Fix typos in non-functional testing 2022-10-31 11:37:27 +04:00
Sojin Samuel
b4e5eec650 Add a resource to plugins in Vue.js (#2820)
Talks about what are plugins, shows how to create a simple vue.js plugin, Add directives, mixins, filters, and how to accept options.
2022-10-31 10:22:39 +04:00
Adarsh Pratap Singh
7d14aee45b Add JavaScript resource (#2822) 2022-10-31 10:21:21 +04:00
Kamran Ahmed
80b11c91af Add flutter resource 2022-10-31 10:17:18 +04:00
Kamran Ahmed
03de323ba6 Add flutter content 2022-10-31 10:17:18 +04:00
Marvin
b1a25276b1 Fix link to Go roadmap (#2827) 2022-10-31 10:16:36 +04:00
Sojin Samuel
8ef69d19ef Indepth guide about Routing (Beginner Friendly) (#2785)
Talks about how the development of single-page websites or mobile applications that permit navigating without refreshing the page. Additionally, how react-router allows us to access browser history functionalities while preserving the correct application view, how component-based routing plays a huge role, and much more.
2022-10-29 17:14:01 +04:00
Sojin Samuel
e6840173b9 An indepth introductory guide about watchers (#2786)
* An indepth introductory guide about watchers

Talks about deep and immediate options with examples. showcases example use cases on how to use watchers in action, and when to utilize computed properties, and when to use watchers.

* Update content/roadmaps/105-vue/content/101-advanced-topics/104-watch.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-29 17:12:38 +04:00
Pradyumna Chatterjee
714c8fb221 Go Web Frameworks comparison (#2789)
Added a github repository that compares the state of Web frameworks in Golang
2022-10-29 17:11:19 +04:00
Sojin Samuel
2a8a3c03b1 A detailed guide about Apache Log4j Project (#2796)
Talks about why Apache Log4 had become the most deployed pieces of open source software, Log4j exploits, and How to protect against it.
2022-10-29 17:10:59 +04:00
Rachelle Palmer
698cda1765 Add prisma tutorial (#2802)
* Update 101-prisma.md

update prisma resource with youtube tutorial

* Update content/roadmaps/107-nodejs/content/110-nodejs-databases/101-document/101-prisma.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-29 17:08:37 +04:00
Sojin Samuel
118deb48dc Add a resource to angular course (#2807)
This course is an in-depth angular introductory course with 17hrs of content from freecodecamp. covers topics ranging from TS introduction to Important Angular topics.
2022-10-29 17:07:07 +04:00
Sojin Samuel
8d608948d3 Add an Introductory Text to Solid.js (#2808)
* Add an Introductory Text to Solid.js

Update the Solid.js Resource panel with an introductory text

* Update content/roadmaps/100-frontend/content/111-pick-a-framework/104-solid-js.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-29 17:06:40 +04:00
Kamran Ahmed
7c32eed873 Add links to new roadmaps 2022-10-28 19:41:24 +04:00
Kamran Ahmed
91b3d39ecd Add flutter roadmap 2022-10-28 19:22:48 +04:00
Kamran Ahmed
7052774a29 Update react topics in react roadmap 2022-10-26 11:51:01 +05:00
Kamran Ahmed
4804be7899 Make asp.net core roadmap interactive 2022-10-25 09:53:28 +05:00
Kamran Ahmed
927e060ac8 Add asp.net core developer roadmap 2022-10-25 09:05:59 +05:00
Kamran Ahmed
20b5cdb16f Fix broken build 2022-10-24 13:49:38 +05:00
Kamran Ahmed
fb5efa4f6d Remove asp.net roadmap from homepage 2022-10-24 13:45:28 +05:00
Kamran Ahmed
31d87796f3 Add vite, vitest and playwright 2022-10-24 13:38:24 +05:00
Kamran Ahmed
3fe37d1e50 Add asp.net core developer roadmap 2022-10-24 13:33:10 +05:00
Subhash Karthik
566c786475 Add JavaScript type conversion and coercion resource (#2700)
* Added one of the best and new resource to the java datastructures list

* Added content to JavaScript Type Conversion vs Coercion

* Update content/roadmaps/110-java/content/100-java-fundamentals/104-datastructures.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-23 07:56:37 +05:00
Benjamin Yee
c9e21615f1 Add playlist for web security knowledge (#2704)
Added YouTube OWASP Course Playlist by Arkenstone Learning
2022-10-23 07:51:03 +05:00
Jorge Bolpe
3b8c59c8eb Fix typos in angular roadmap (#2706) 2022-10-23 07:49:58 +05:00
SamarS1ngh
a89236f333 Add content for client-side caching (#2689)
* Added client-side-file-caching

There was no data on client-side-file-caching, so I added some for people to learn.

* Update content/roadmaps/101-backend/content/110-caching/102-client-side.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-22 21:55:09 +05:00
SamarS1ngh
edd56527ad Added instrumentation, telemetry, monitoring (#2691)
* Added instrumentation, telemetry, monitoring

There was no data on instrumentation, monitoring, and telemetry, so I decided to contribute and help others by also providing links.

* Update content/roadmaps/101-backend/content/123-scalability/101-instrumentation-monitoring-telemetry.md

* Update content/roadmaps/101-backend/content/123-scalability/101-instrumentation-monitoring-telemetry.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-22 21:51:47 +05:00
Madawa De Silva
d4a70d0d13 Added content for IBM cloud (#2694)
Added content related to IBM-Cloud under "developer-roadmap/content/roadmaps/102-devops/content/108-cloud-providers"
2022-10-22 21:45:52 +05:00
Kalpit Shah
460da72850 Add content for errors in Node.js roadmap (#2695)
* Update 101-system-errors.md

* Update 102-user-specified-errors.md

* Update content/roadmaps/107-nodejs/content/103-nodejs-error-handling/103-error-types/101-system-errors.md

* Update content/roadmaps/107-nodejs/content/103-nodejs-error-handling/103-error-types/102-user-specified-errors.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-22 21:45:26 +05:00
Tomasz Hamerla
24693f1089 Add salesforce content (#2697)
* Update 104-salesforce.md

* Update content/roadmaps/114-software-architect/content/116-enterprise-software/104-salesforce.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-22 21:43:15 +05:00
SURAJ39
a781862937 added content to 102-backend-automation (#2675)
* added content to  102-backend-automation

* Update content/roadmaps/113-qa/content/103-qa-automated-testing/102-backend-automation/102-soap-ui.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-22 02:28:45 +05:00
SURAJ39
d9b39182b9 added content to 104-native-drivers.md (#2676)
* added content to 104-native-drivers.md

* Update content/roadmaps/107-nodejs/content/110-nodejs-databases/100-relational/104-native-drivers.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-22 02:28:01 +05:00
SURAJ39
1881f20c90 added content to 101-fetch.md (#2677)
* added content to  101-fetch.md

* Update content/roadmaps/106-javascript/content/118-working-with-apis/101-fetch.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-22 02:27:21 +05:00
SURAJ39
2c4ee13552 added content to 106-chokidar.md (#2678) 2022-10-22 02:26:30 +05:00
SURAJ39
a66e5fbce3 added content to 103-glob.md (#2679) 2022-10-22 02:26:19 +05:00
Harshit Arora
085e592141 hyperlink typo fix (#2680)
* hyperlink typo fix

* hyperlink typo fix
2022-10-22 02:25:56 +05:00
Kamran Ahmed
e4f9d8b475 Fix broken build 2022-10-22 02:25:32 +05:00
Ironspider42
c4a16e20b6 Add Java content (#2682)
* Update readme.md

* Update content/roadmaps/110-java/content/readme.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-22 02:25:20 +05:00
Lane Wagner
6581bf1cb2 docs: add go resource (#2684) 2022-10-22 02:22:24 +05:00
Kartikey Verma
1e13e15a60 Add operating system content (#2475) 2022-10-21 22:53:56 +05:00
Harshit Arora
7113a8c73e added content for mobile applications (#2674) 2022-10-21 22:53:10 +05:00
Kevin Falentio
d234900a03 Fix typos (#2478)
* fix readable content color scheme

* add content to 103-glob

* remove duplicate resources group title in 102-updating-packages

* fix swaped color in 100-morgan

* Update content/roadmaps/107-nodejs/content/107-nodejs-apis/101-express-js.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-21 22:52:42 +05:00
Deevanshu Kushwah
5867ac4b16 Resources added to Nodejs/Databases/Sequelize (#2479)
* Update 107-nodejs-apis/101-express-js.md

* Update content/roadmaps/107-nodejs/content/107-nodejs-apis/101-express-js.md

* Update 110-nodejs-databases /100-relational /102-sequelize.md

* Update  109-nodejs-template-engines/102-ejs.md

* Update content/roadmaps/107-nodejs/content/109-nodejs-template-engines/102-ejs.md

* Update content/roadmaps/107-nodejs/content/110-nodejs-databases/100-relational/102-sequelize.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-21 22:51:59 +05:00
Apoorva
fec3a8c66d Added content to Java Roadmap (110-java) (#2490)
* Update 102-cukes.md

* Update 102-cukes.md

* Update readme.md

* Update content/roadmaps/110-java/content/103-java-web-frameworks/readme.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-21 22:40:30 +05:00
Koshima Goyal
022b0e27e8 added content to 100-java-fundamentals (#2491) 2022-10-21 22:37:45 +05:00
Arya Singh
1f3b2a280d Add content for error handling in node.js (#2492) 2022-10-21 22:37:06 +05:00
DeadSkull786
1ae152ead1 Add content for frontend automation (#2493) 2022-10-21 22:36:08 +05:00
Nicolas
e1d0a7cf6d feat: erc tokens content complement (#2494) 2022-10-21 22:35:38 +05:00
DeadSkull786
43087a1740 Add email testing content (#2496)
Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-21 22:31:01 +05:00
Archit Sharma
c61a8e96c1 Resources added for Infrastructure as Code (#2498)
Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-21 22:27:59 +05:00
Deepak gupta
b55f8d4951 added content to 102-test-rail.md (#2500)
added content with free read docs

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-21 22:26:48 +05:00
Sameer Kumar
2922ab42e6 [#1838] Added content for fetch and XMLHttpRequest. (#2503)
Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-21 22:23:43 +05:00
Sameer Kumar
f042739690 Add content for CSR/SSR, Caching and UAT. (#2505)
* [#1838] Added content for CSR/SSR, Caching and UAT.

* Update content/roadmaps/113-qa/content/103-qa-automated-testing/100-frontend-automation/100-basic-introduction/csr-vs-ssr.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-21 22:21:56 +05:00
Julio Martins
80296dcfb1 Added PostgreSQL tutorial for beginners (#2506)
* feat: free content about ci/cd

add a read free content about ci/cd

* feat: add a postgre tutorial

Added PostgreSQL full tutorial for beginners in SQL

Thank you '-'
2022-10-21 22:21:10 +05:00
shagun199
19c92a7ac2 Add resources for micro (#2672) 2022-10-21 22:18:43 +05:00
Carlos Samuel Hernández
1d4638fe46 Node.js 108: Keep App Running (new --watch option) (#2508)
* Node.js 108: Keep App Alive (new --watch option)

* Delete non-necessary link

* Update content/roadmaps/107-nodejs/content/108-nodejs-keep-app-running/readme.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-21 22:16:29 +05:00
gsemyong
7b3ad47415 Fix typo (#2509) 2022-10-21 22:11:40 +05:00
Chloe Wray
3272ccb58e Add content to for...in statement (#2510) 2022-10-21 22:11:26 +05:00
Tomasz Hamerla
aba85cc221 Add DNS mini-series (#2524) 2022-10-21 22:11:00 +05:00
AyushRaghuvanshi
ff9b797f85 Add link to react hook (#2576) 2022-10-21 22:10:46 +05:00
@baba
2f1fc7712a Add content for backend automation (#2578)
* added content to readme.md file of  102-backend-automation

(#1840 ) [https://github.com/kamranahmedse/developer-roadmap/issues/1840] I solved this issue, Please look at my PR!!

* Update content/roadmaps/113-qa/content/103-qa-automated-testing/102-backend-automation/readme.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-21 22:10:17 +05:00
nikhilkalburgi
5cd17f5bce Added common modules to node.js (#2579)
DNS , events , child_processes , REPL , readline , util , querystring , string_decoder , tls
2022-10-21 22:08:14 +05:00
Kamran Ahmed
944d9c8b93 Add content to exiting and exit codes 2022-10-21 20:42:51 +05:00
Arya Singh
9262576f50 Add content to nodemon (#2583)
Although `Nodemon` is widely used in local development but `PM2` handles everything and even performs better in production environment.
2022-10-21 20:40:22 +05:00
ChuckD3ath
d2a9ac0805 Update Testing Techniquest readme (#2584) 2022-10-21 20:38:35 +05:00
Dev-Arhaan
447a2dfa4b Fix typo in roadmap (#2589)
Changed abstarction to abstraction in **Design Principles** - _Program against abstraction_
2022-10-21 20:38:20 +05:00
Adekola Olawale
64cdfd2ba0 Add content to useContext hook (#2592) 2022-10-21 20:37:51 +05:00
Chris McQueen
70e557a8c1 Add fetch content (#2593)
Added a brief description and added to links to tutorials and a YouTube video.

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-21 20:35:57 +05:00
Mauricio Allegretti
4d7eb33f0d Add content to TestRail node (#2594)
Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-21 20:34:36 +05:00
Mauricio Allegretti
7e0c283542 Fixed typo in Allure node (#2595) 2022-10-21 20:33:48 +05:00
Mayank Prakash
6b3c0f628d Add content to go-zero and micro (#2596)
* added content in 104-go-zero.md

* added content in 103-micro.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-21 20:33:30 +05:00
getcoder-top
03d2e3607f Add content to working with apis in javascript (#2600)
Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-21 20:32:40 +05:00
Kaivalya Vanguri
50fae02d12 Add Solana content (#2601) 2022-10-21 20:30:32 +05:00
Paritosh Panda
1d3a017873 fix link (#2603)
link was pointing to wrong url, fixed to correct
2022-10-21 20:30:04 +05:00
chauhanJaideep
f1cd9edb07 Add email testing content (#2670)
* updated  105-qa-email-testing

* Update content/roadmaps/113-qa/content/105-qa-email-testing/readme.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-21 20:29:29 +05:00
chauhanJaideep
0ca73da56f Add content for TestRail (#2671)
* added content to  106-qa-reporting

* Update content/roadmaps/113-qa/content/106-qa-reporting/102-test-rail.md

* Update content/roadmaps/113-qa/content/106-qa-reporting/102-test-rail.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-21 20:28:20 +05:00
Laukik Chahande
a6db97d200 Add content for CLI (#2609)
* Update readme.md

* Update readme.md

* Update readme.md

* Update content/roadmaps/102-devops/content/102-managing-servers/101-live-in-terminal/readme.md

* Update content/roadmaps/102-devops/content/102-managing-servers/101-live-in-terminal/readme.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-21 20:26:33 +05:00
AyushRaghuvanshi
4a42ba9c2b Add spring boot resources
Fixed a Typo Spring was written as Sprint
2022-10-21 20:25:05 +05:00
AyushRaghuvanshi
a0e7c07ecf Add binary search tree resource (#2614)
I added a Geek for Geeks Link for Problem Set as User Should get the access to proper practice problems as well.
2022-10-21 20:24:16 +05:00
FercueNat
2242802e1a Fix content resource headings in js roadmap (#2616)
* Adding information on QA SDLC Delivery Model node

* Update content/roadmaps/113-qa/content/101-qa-sdlc/readme.md

* Tweaking files in the Chrome Dev Tools section - JS roadmap

* Tweaking format on files from Memory Management - JS roadmap

* Fixed issue with one of the Free Contents - CommonJS readme

* Format tweak on Callback nodes - JS Roadmap

* Format tweaks on different files from the Expressions and Operators tree

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-21 20:23:42 +05:00
Haseeb Ansari
9d21da2254 Add content for cukes (#2617)
* cukes-rest node added in java roadmap

* Update content/roadmaps/110-java/content/107-testing-java-apps/102-cukes.md

Co-authored-by: haseebansari <haseeb.ansari@qordata.com>
Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-21 20:22:47 +05:00
Dami Izolan
96d2adaf89 add nodejs/native relational db drivers (#2618) 2022-10-21 20:21:52 +05:00
Archit Sharma
8feef45546 Add resources for Enterprise Level Architecture (#2620) 2022-10-21 20:21:17 +05:00
Hossam Kandil
c5eac023b7 Add go-zero content (#2621)
#1836

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-21 20:20:46 +05:00
Arya Singh
21fdc05b6b fixes typo and spacing (#2622) 2022-10-21 20:19:16 +05:00
Anjali Sharma
c91a6ab1b3 added string docs in python (#2623) 2022-10-21 20:19:00 +05:00
GalNey
21b4fb3349 add explanation about the use of this library (#2626) 2022-10-21 20:17:53 +05:00
GalNey
a0f493d872 Add explanation for async programming (#2627) 2022-10-21 20:17:22 +05:00
Kaivalya Vanguri
cc3a7e2ea0 Add content for databases node (#2629)
* Update Databases Readme.md

* Update content/roadmaps/101-backend/content/108-more-about-databases/readme.md

* Update content/roadmaps/101-backend/content/108-more-about-databases/readme.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-21 20:16:29 +05:00
Yash Dewasthale
a9b4f86dc5 Add content for google cloud (#2631)
Updated Google Cloud section from DevOps Developer roadmap #1885
2022-10-21 20:15:28 +05:00
Yash Dewasthale
2ee962a2b8 Update AWS node content (#2632)
* Update 100-aws.md

Updated Aws section of DevOps Developer Roadmap #1885

* Update content/roadmaps/102-devops/content/108-cloud-providers/100-aws.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-21 20:14:52 +05:00
chauhanJaideep
8814e86f45 added content to 104-go-zero.md (#2667)
* added content to 104-go-zero.md

added content to go zero with free-read content

* Update content/roadmaps/109-golang/content/109-go-microservices/104-go-zero.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-21 20:12:59 +05:00
chauhanJaideep
51459444d1 Add content to API clients in Go roadmap (#2668)
* added content to 107-go-api-clients

* Update content/roadmaps/109-golang/content/107-go-api-clients/readme.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-21 20:12:08 +05:00
chauhanJaideep
0373f7722f Add content to microservices node in Go roadmap (#2669)
* added content to 109-go-microservices

* Update content/roadmaps/109-golang/content/109-go-microservices/readme.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-21 20:11:20 +05:00
Giovana do Nascimento
02e0430d98 Add content to cypress (#2633) 2022-10-21 20:09:28 +05:00
William Méndez
3b7b6cb944 Add airodump content in devops roadmap (#2634)
* Add airodump content in devops roadmap

* Update content/roadmaps/102-devops/content/102-managing-servers/101-live-in-terminal/117-airodump.md

* Update content/roadmaps/102-devops/content/102-managing-servers/101-live-in-terminal/117-airodump.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-21 20:08:05 +05:00
Kaushal Rathi
5687283568 feat: add content for fs-extra node for Node.js Roadmap (#2635)
* docs: added content for fs-extra

* feat: added content for nodejs > working-with-files > chokidar

* Update content/roadmaps/107-nodejs/content/105-nodejs-working-with-files/105-fs-extra.md

* Update content/roadmaps/107-nodejs/content/105-nodejs-working-with-files/106-chokidar.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-21 20:06:20 +05:00
SamarS1ngh
1603d815e9 Added more to semantic elements (#2637)
I think the already given description was not enough for new learners, so I added a little more about what semantic elements in HTML are and what they do.
2022-10-21 20:05:02 +05:00
Tomasz Hamerla
6139c6dc25 Add content for infrastructure as code (#2640)
* Update 100-infrastructure-as-code.md

* Update content/roadmaps/114-software-architect/content/115-operations-knowledge/100-infrastructure-as-code.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-21 20:02:50 +05:00
dianyehezkiel
12e4304e01 Added content for Working with APIs. (#2642) 2022-10-21 20:00:00 +05:00
Alvaro Portela
d7bf7bb744 fix typo to wrong direction on 'testing your apps' (#2646) 2022-10-21 18:28:45 +05:00
Tomasz Hamerla
24dd4bbcd2 Add content to ETL (#2647)
* Update 101-etl-datawarehouses.md

* Add content to ETL datawarehouses

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-21 18:27:46 +05:00
Diego Oliveira
cdfe24fa8c Add new course option to react-native node content (#2648) 2022-10-21 18:25:50 +05:00
Tomasz Hamerla
167cd44095 Add content for spark and mapreduce (#2649)
* Update 100-hadoop-spark-mapreduce.md

* Update content/roadmaps/114-software-architect/content/109-working-with-data/100-hadoop-spark-mapreduce.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-21 18:24:34 +05:00
Nishant Singh
e8b23415be Add more content to Go Roadmap (#2650)
* Add reference to Effective Go for Arrays

* Add reference to Effective Go for Slices

* Add reference to Effective Go for Maps

* Add reference to Effective Go for make

* Add reference to Effective Go for 'for' loop

* Add reference to Effective Go for Conditionals

* Add reference to Effective Go for Interfaces

* Add reference to Effective Go for Goroutines

* Add reference to Effective Go for Channels

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-21 18:20:19 +05:00
Alexander Emelin
c3f401bc6a fix typo in href (#2651)
Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-21 18:18:35 +05:00
Tomasz Hamerla
a54043ad74 Add content for MS Dynamics (#2652)
* Update 100-ms-dynamics.md

* Update content/roadmaps/114-software-architect/content/116-enterprise-software/100-ms-dynamics.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-21 18:13:40 +05:00
Tomasz Hamerla
5ad55aa6bd Add content for BPEM BPEL (#2653)
* Update 104-bpm-bpel.md

* Update content/roadmaps/114-software-architect/content/110-apis-and-integrations/104-bpm-bpel.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-21 18:09:33 +05:00
Tomasz Hamerla
59398a9c15 Add content for IBM BPM (#2654)
* Update 103-ibm-bpm.md

* Update content/roadmaps/114-software-architect/content/116-enterprise-software/103-ibm-bpm.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-21 18:08:04 +05:00
Reo Uehara
4533c48589 fix typo in 109-golang meta information (#2657) 2022-10-21 18:06:14 +05:00
Harshit Arora
bb5d60cf35 added initial mounting phase as well for useeffect (#2659)
Co-authored-by: Harshit Arora <harshit.arora04@ad.infosys.com>
2022-10-21 18:05:37 +05:00
Harshit Arora
1c94053e09 Fix typos in golang roadmap (#2660)
* added initial mounting phase as well for useeffect

* fixed typos in hyperlinks

Co-authored-by: Harshit Arora <harshit.arora04@ad.infosys.com>
2022-10-21 18:05:12 +05:00
William Méndez
e5f107f248 Add GraphQL-go content in Golang Roadmap (#2512) 2022-10-17 12:06:22 +05:00
Daulet Abishev
c820bdf4df add content uat testing (#2513)
* add content uat testing

* Update content/roadmaps/113-qa/content/100-qa-basics/107-testing-techniques/100-functional-testing/uat.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-17 12:05:22 +05:00
Daulet Abishev
28feb9f642 add content browser devtools (#2514) 2022-10-17 12:03:50 +05:00
Daulet Abishev
7a7d1c4d58 add ajax content (#2515) 2022-10-17 12:03:25 +05:00
Virtual Wiz
eae9b82a0b Fix typo in scripts/readme (#2517)
Fixed some typos
2022-10-17 12:02:06 +05:00
Ari P Zhorifiandi
1742e08174 docs: Explain Sharding Strategies (#2519)
- Add Sharding Strategies Description
- Add Sharding Strategies Relevant links
2022-10-17 12:01:34 +05:00
Ari P Zhorifiandi
2b78f1be06 docs: add video references on 'what is an API?' (#2520) 2022-10-17 12:01:09 +05:00
Arya Singh
98a7ab792c Fixes typo (#2521) 2022-10-17 12:00:37 +05:00
Tomasz Hamerla
00b6dcc013 Add content for melody (#2522)
* Update 100-melody.md

* Update content/roadmaps/109-golang/content/106-go-realtime-communication/100-melody.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-17 11:56:49 +05:00
Tomasz Hamerla
637478b31e Add content for centrifugo (#2523)
* Update 101-centrifugo.md

* Update content/roadmaps/109-golang/content/106-go-realtime-communication/101-centrifugo.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-17 11:55:29 +05:00
Adityaaah
de9ccf7448 Add content for certain go nodes (#2525) 2022-10-17 11:48:45 +05:00
AyushRaghuvanshi
952aac7217 Update content for https (#2529) 2022-10-17 11:47:10 +05:00
AyushRaghuvanshi
c8b1be9055 Add content for cobra (#2530)
Added another resource link I feel will help people in understanding it better
2022-10-17 11:46:40 +05:00
Adarsh Pratap Singh
94527a61d1 Update 101-writing-semantic-html.md (#2569)
Adding a couple of more resources for semantics best practices.
2022-10-17 11:43:48 +05:00
Adarsh Pratap Singh
9354b8a6e2 Add content to making layouts (#2571)
* Update 101-making-layouts.md

Adding CSS-Grid resources to watch and learn

* Update content/roadmaps/100-frontend/content/102-css/101-making-layouts.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-17 11:42:30 +05:00
Adarsh Pratap Singh
ee103eb7d8 Add content for responsive media queries (#2573)
Adding resources to learn more about Responsive-design
2022-10-17 11:41:21 +05:00
@baba
76113f0dd9 added content to databases in node.js roadmap (#2575)
* added content to read.md file of   110-nodejs-databases

(#1839 ) [https://github.com/kamranahmedse/developer-roadmap/issues/1839] I solved this issue by adding content. Please look at my PR!!

* Update content/roadmaps/107-nodejs/content/110-nodejs-databases/readme.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-17 11:38:44 +05:00
Matt Connolly
0b692eccd5 Update headers of JavaScript roadmap (#2534)
* update 103-iifes.md

Add header to free content; add new resources

* Update readme.md

add resources header

* Update 100-default-params.md

add resources header

* Update 101-rest-params.md

add resources header; correct badge title

* Update 102-arrow-functions.md

add resources header; better description for resource link, show its from MDN

* Update readme.md

add resources header; add video resource
2022-10-17 11:35:11 +05:00
Patryk Krawaczyński
b9d2a2832b The Bash Hackers Wiki (#2535)
Update bash scripting with 'The Bash Hackers Wiki' link. Must read for everyone who wants to learn bash.
2022-10-17 11:34:23 +05:00
ChuckD3ath
63e752e2f9 Update Testing Approaches readme (#2539) 2022-10-17 11:32:26 +05:00
ChuckD3ath
97cec3a5ec Update Manual Testing Processes (#2540) 2022-10-17 11:32:11 +05:00
@baba
dcb0e3a843 Add content about APIs (#2546)
* added readme.md file

(#1839) [https://github.com/kamranahmedse/developer-roadmap/issues/1839] Please look at my PR!

* Update content/roadmaps/107-nodejs/content/107-nodejs-apis/readme.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-17 11:19:45 +05:00
Ari P Zhorifiandi
2a1a214f01 docs: Add Twirp Brief Explanation and Links (#2548) 2022-10-17 11:18:34 +05:00
Ari P Zhorifiandi
390733da7f docs: Put critical information on Protobuf in Go (#2549) 2022-10-17 11:16:52 +05:00
Ari P Zhorifiandi
d81aa25710 docs: add document database explanation (#2550) 2022-10-17 08:42:00 +05:00
@baba
7407929235 Added content to readme.md file of 106-javascript. (#2551)
* Added content to readme.md file of 106-javascript.

(#1838) [https://github.com/kamranahmedse/developer-roadmap/issues/1838]  I resolved this issue by adding the content. Please look into my PR!!

* Update content/roadmaps/106-javascript/content/readme.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-17 08:41:42 +05:00
Ari P Zhorifiandi
1c175215e0 docs: add Rpcx description (#2552)
* docs: add Rpcx description

* Update 101-rpcx.md

* Update 101-rpcx.md
2022-10-17 08:40:23 +05:00
Archit Sharma
5e4e79c76c Resources added for REST (#2554) 2022-10-17 08:38:41 +05:00
Vladyslav Nikiforov
97fe8030de Fix arithmetic operators typo (#2565) 2022-10-17 08:37:34 +05:00
Paritosh Panda
7c8be79a1b Add resource for got tesint (#2566)
new source for learning testing
2022-10-17 08:36:59 +05:00
Bishaw Shrestha
6a6330718f Fix: JWT typo (#2567) 2022-10-17 08:36:20 +05:00
ChuckD3ath
2c94954312 Update Functional Testing Types (#2526) 2022-10-15 15:29:32 +04:00
Soma Mehra
5488df0957 Add content for sed(#2480)
Updating tutorial for sed command
2022-10-13 22:55:55 +04:00
Soma Mehra
5718c1a75b Add content for grep (#2481)
Adding YouTube tutorial for grep command
2022-10-13 22:55:36 +04:00
Soma Mehra
1852a9e147 Add content for echo command (#2482)
Updating tutorial for echo command
2022-10-13 22:54:38 +04:00
Soma Mehra
929dead11b Add content for cat command (#2483)
Updating tutorial for cat command
2022-10-13 22:54:00 +04:00
Soma Mehra
d62661e86c Add sort command content (#2484)
Adding sort command tutorial
2022-10-13 22:52:58 +04:00
ChuckD3ath
516969321b Update Mobile Automation readme (#2485) 2022-10-13 22:52:26 +04:00
Aroyan
1148d09e0c feat: add unfetch content (#2472)
* feat: add Set JavaScript content

* feat: add unfetch content
2022-10-13 17:57:28 +04:00
Kalpit Shah
d06347c9a3 Add content for uncaught exceptions (#2473) 2022-10-13 17:57:02 +04:00
edwin-serrano
c511b94ca4 Fix badge type (#2474)
Update BadgeLink badgeText for 100-var.md for youtube video
2022-10-13 17:56:06 +04:00
Cristiano Raffi Cunha
f333b8427e Software Architect/Auth Strategies (#2470)
* Add Video Session vs Token Authentication in 100 Seconds

* Fix JWT Title
2022-10-13 16:36:05 +04:00
Robin Wieruch
68d360c0b4 docs(react-roadmap): new content by robinwieruch.de (#2467) 2022-10-13 16:32:43 +04:00
Archit Sharma
64aec7abe3 Added Resources for Containers (#2466) 2022-10-13 12:40:26 +04:00
William Méndez
e1b37109a4 Fix: typo and remove duplicated link (#2453) 2022-10-13 12:40:10 +04:00
hussainweb
0945105c07 Update page for PHP (#2454)
- Add a link to PHP: The Right Way website
- Update description of PHP to match the current state
2022-10-13 12:39:52 +04:00
hussainweb
60c6964b66 Add link to modern alternatives of terminal commands (#2456) 2022-10-13 12:39:33 +04:00
Soma Mehra
f2ab6a7f88 Add content for ps (#2459)
Adding YouTube tutorial for ps command
2022-10-13 12:37:24 +04:00
Arya Singh
a992fea69e Adds shortcut for opening dev tools (#2460)
* Adds shortcut for opening dev tools

`F12` open up Console tab in `Chrome`, `Mozilla`, `Brave` by default. However in `Microsoft Edge` it open up `Elements` panel.

* Update content/roadmaps/106-javascript/content/117-javascript-chrome-dev-tools/readme.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-13 12:36:49 +04:00
Deepak gupta
d6a3e867e4 added content to 101-accessibility-testing (#2461)
content added in 101-accessibility-testing with a free read content
2022-10-13 12:35:40 +04:00
Deepak gupta
1b70787ec4 Add content for allure (#2463)
* added content to 101-allure.md

* Update content/roadmaps/113-qa/content/106-qa-reporting/101-allure.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-13 12:34:35 +04:00
Soma Mehra
b407ed3f19 Add resource links for awk (#2464)
Updating tutorial for "awk" command
2022-10-13 12:33:28 +04:00
Kalpit Shah
f6d3938c6a Updated 101-using-debugger.md (#2465) 2022-10-13 12:32:37 +04:00
Bogdan Cerovac
7176d1638a Added Mozilla Developer Network article about semantics (#2437) 2022-10-13 01:53:18 +04:00
Bogdan Cerovac
43fa1b3000 Added some build tools (#2439)
There are a lot of others but these seem to be quite stable and not deprecated
2022-10-13 01:53:02 +04:00
Bogdan Cerovac
d8509302a4 Added link to webcomponents official resource (#2441)
* Added link to community driven https://webcomponents.github.io/

* Update content/roadmaps/100-frontend/content/113-web-components/readme.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-13 01:52:38 +04:00
Apoorva
26d0660c99 Add jetpack compose (#2444) 2022-10-13 01:46:41 +04:00
Arya Singh
e6f810e1c8 Fixes minor semantic error (#2445) 2022-10-13 01:45:38 +04:00
sanjibgirics
3229cf4be9 Add content 107-grpc-gateway (#2446) 2022-10-13 01:45:17 +04:00
sanjibgirics
44a9343a00 Add content 105-protocol-buffers (#2447) 2022-10-13 01:44:57 +04:00
Julio Martins
1e82189c88 feat: free content about ci/cd (#2449)
add a read free content about ci/cd
2022-10-13 01:44:13 +04:00
Soma Mehra
536b5a4822 Add netstat resource (#2451)
Adding additional YouTube resource for netstat command,
2022-10-13 01:43:53 +04:00
Julio Martins
8a4278777c Add summary and one free content to cli-progress package (#2452)
* feat: free content about ci/cd

add a read free content about ci/cd

* feat: add cli-progress summary and content

Add summary and content to cli-progress package

Thank you '-'
2022-10-13 01:41:31 +04:00
Kamran Ahmed
69f625af39 Add playwright content 2022-10-12 18:21:05 +04:00
Kamran Ahmed
4ef4e0993b Add XMLHttpRequest and Fetch to frontend roadmap 2022-10-12 18:20:28 +04:00
Nitesh Patel
83f969f11c Fixes typo (#2433) 2022-10-12 17:55:40 +04:00
Muhammad Moinuddin
012fafc2de Edited Javascript Roadmaps Content (#2142)
* Edited Javascript Roadmaps Content

Added some content in arithmetic operators & arrow functions. Amended one file name as well.

* Reverted the File name

Just reverted the name of the file as it was breaking the build.
2022-10-12 17:54:29 +04:00
puru-khedre
f95471b31d Update if/else content in JavaScript roadmap (#2162)
Add syntax highlighting in code snippet.
2022-10-12 17:53:03 +04:00
Haseeb Ansari
587772e38f Add OWASP Documentation (#2258)
Co-authored-by: haseebansari <haseeb.ansari@qordata.com>
Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-12 17:52:31 +04:00
JAIHARISHAN AV
97a2e085eb Added a tutorial for DeFi (Blockchain) (#2148)
* Contribute: Added Tutorial for solana

* Added a tutorial for DeFi (Blockchain)
2022-10-12 17:51:21 +04:00
Joseph Olayanju
f74d4e469c Add content for templating engines (#2153)
* Update readme.md

* Update content/roadmaps/107-nodejs/content/109-nodejs-template-engines/readme.md

* Update content/roadmaps/107-nodejs/content/109-nodejs-template-engines/readme.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-12 17:48:17 +04:00
Oresztesz Margaritisz
77598e730e Added contents related to architecture (#2154)
Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-12 17:45:47 +04:00
puru-khedre
7af71de4f2 Update JavaScript switch statement (#2161)
add syntax highlighting in code snippet.
2022-10-12 17:44:53 +04:00
Devesh Swarnkar
b6818a42ea Resources and content added for Ejs (#2163)
Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-12 17:44:14 +04:00
Tanvi
1596822d44 Add content for threads in Node.js (#2246)
* Added content to prisma.md and native-drivers.md

* Content added to forever.md

* link updated to forever documentation

* Content added to Nohup.md with links

* Update content/roadmaps/107-nodejs/content/110-nodejs-databases/101-document/102-native-drivers.md

* content added to threads readme.md

* Content added to thread - readme.md

* Content added to threads - child-pocess.md

* Content added to threads - cluster.md

* Content added to thread - worker-threads.md

* update three node module threads typo

* Update content/roadmaps/107-nodejs/content/114-nodejs-threads/readme.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-12 17:42:21 +04:00
Dhruva Sagar
da09b4fa3e Add documentation for du, df & dtrace (#2247)
Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-12 17:37:34 +04:00
Platiplus
55379e94ec Adding content for chalk and inquirer.js (#2248)
* Adding official docs and tutorials for Chalk and InquirerJS

* Update 102-inquirer.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-12 16:58:34 +04:00
Rafael B. Pires
a22029db0b Add You Don't Know JS Yet (book series) (#2249)
* add book to javascript roadmap

* add book to javascript section on frontend roadmap

* add book to javascript section on backend roadmap

* add book to javascript section on blockchain roadmap
2022-10-12 16:57:32 +04:00
Ankan Banerjee
ab708775bf Add CI/CD content (#2252)
* Update readme.md

Added CI/CD introductory description.

* Update readme.md

Added link to blog for further reference

* Update readme.md

Mentioned a video link

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-12 16:57:14 +04:00
Haseeb Ansari
c47b80026a Add content for java logging frameworks (#2254)
Co-authored-by: haseebansari <haseeb.ansari@qordata.com>
Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-12 16:56:27 +04:00
Lukas
99333f8caf Add dnsimple comics (#2255)
* Add link to `howdns.works`

* Add link to `howhttps.works`
2022-10-12 16:55:06 +04:00
Rishabh044
63fd5e2e2c Added prettier content (#2256)
* Update 101-explicit-type-casting.md

* Updated 101-explicit-type-casting.md

* Update content/roadmaps/106-javascript/content/103-javascript-type-casting/101-explicit-type-casting.md

* Added more content to 100-prettier.md in Frontend Roadmap

* Update content/roadmaps/106-javascript/content/103-javascript-type-casting/101-explicit-type-casting.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-12 16:54:25 +04:00
Haseeb Ansari
c145ec38c5 CI CD readme documentation added (#2257)
* CI CD readme documentation added

* Update content/roadmaps/102-devops/content/106-ci-cd/readme.md

Co-authored-by: haseebansari <haseeb.ansari@qordata.com>
Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-12 16:52:18 +04:00
NaveenKumar Namachivayam ⚡
575e50a8b5 Add monitoring logs (#2140)
* Add: Monitoring tools

Signed-off-by: NaveenKumar Namachivayam  <catch.nkn@gmail.com>

* Add: Security Testing

Signed-off-by: NaveenKumar Namachivayam  <catch.nkn@gmail.com>

* Add: Security Testing

Signed-off-by: NaveenKumar Namachivayam  <catch.nkn@gmail.com>

* Add: Security Testing

Signed-off-by: NaveenKumar Namachivayam  <catch.nkn@gmail.com>

* Update 105-data-dog.md

* Update 105-data-dog.md

* Update 105-data-dog.md

Signed-off-by: NaveenKumar Namachivayam  <catch.nkn@gmail.com>
2022-10-12 16:45:05 +04:00
Emilio Castro
d14f405595 Missing content on DevOps roadmap (#2259)
* Adding Windows definition

* Adding to terminal multiplexers

* Fixing Windows links and added SAR description

* Adding VMStat description

* Fixing typos

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-12 16:44:35 +04:00
Darío Hereñú
e3a33719e7 Update internal URL of contribution (#2260)
Fixed line 54 `contributing` > `contributing.md`
2022-10-12 16:42:48 +04:00
Darío Hereñú
fde01e7bc1 Fixed duplicate word (line135) (#2261) 2022-10-12 16:42:30 +04:00
Darío Hereñú
8120cfe262 Typographical fix (paragraph 04) (#2262) 2022-10-12 16:40:49 +04:00
Platiplus
eb21f2067b Adding sections about observability and scalability (#2263)
* Adding sections about observability and scalability

* Update content/roadmaps/101-backend/content/123-scalability/104-observability.md

* Update content/roadmaps/101-backend/content/123-scalability/readme.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-12 16:40:34 +04:00
Darío Hereñú
f0afc4538c Fix typo in blockchain roadmap (#2264) 2022-10-12 16:39:22 +04:00
William Méndez
24e7c0ce37 Add GraphQL content in Golang Roadmap (#2265)
* Add GraphQL content in Golang Roadmap

* Add content for gqlgen library
2022-10-12 16:39:01 +04:00
Mahmudul Hasan
4f4cbe4f47 added html, css & JS content (#2267) 2022-10-12 16:38:42 +04:00
Pankaj Biradar
247cf82071 Added content for HTML (#2270) 2022-10-12 16:37:26 +04:00
CodeWAdi
e975c7d016 Add content to go nodes (#2273)
* Updated content in various nodes in NodeJS  -Why nodejs, Installing NodeJS , CommonJS vs ESM , Global keyword,npm workspaces , creating packages , __dirname , __filename

Updated various sub groups with information in NODEJS

* Update content/roadmaps/107-nodejs/content/100-nodejs-introduction/101-why-nodejs.md

* Update content/roadmaps/107-nodejs/content/100-nodejs-introduction/101-why-nodejs.md

* Update content/roadmaps/107-nodejs/content/100-nodejs-introduction/104-running-nodejs-code.md

* Update content/roadmaps/107-nodejs/content/100-nodejs-introduction/101-why-nodejs.md

* Update content/roadmaps/107-nodejs/content/101-nodejs-modules/100-commonjs-vs-esm.md

* Update content/roadmaps/107-nodejs/content/101-nodejs-modules/102-global-keyword.md

* Update content/roadmaps/107-nodejs/content/100-nodejs-introduction/101-why-nodejs.md

* Update content/roadmaps/107-nodejs/content/100-nodejs-introduction/101-why-nodejs.md

* Update 101-why-nodejs.md

* Update content/roadmaps/107-nodejs/content/102-nodejs-npm/105-npm-workspaces.md

* Update content/roadmaps/107-nodejs/content/102-nodejs-npm/106-creating-packages.md

* Update content/roadmaps/107-nodejs/content/105-nodejs-working-with-files/107-dirname.md

* Update content/roadmaps/107-nodejs/content/105-nodejs-working-with-files/108-filename.md

* Updated content in various nodes of GOLANG

Updated content in the nodes
go modules
interfaces
context
goroutines
channels
buffer
select

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-12 16:36:45 +04:00
eaccmk
408ab9752f Add content for testing frameworks (#2274)
* Update cypress.md

Added details from official website https://cypress.io/ and https://docs.cypress.io/

* Update 100-appium.md

Added details from Official web https://appium.io/ and  https://appium.io/docs/en/about-appium/intro/

* Update 100-karate-framework.md

Added details from official website : 
https://www.karatelabs.io/ and documentation from https://github.com/karatelabs/karate

* Update 102-espresso.md

https://developer.android.com/training/testing/espresso' and https://github.com/android/testing-samples

* Update 103-detox.md

Added details from official website :
https://wix.github.io/Detox/docs/introduction/getting-started and https://wix.github.io/Detox/docs/introduction/getting-started

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-12 16:31:01 +04:00
ChuckD3ath
01270f8c0e Update Project Management Tools (#2275) 2022-10-12 16:28:52 +04:00
Ankur Sharma
3f6cea4387 Update 107-cloud-design-patterns.md (#2277)
* Update 107-cloud-design-patterns.md

* Update content/roadmaps/114-software-architect/content/115-operations-knowledge/107-cloud-design-patterns.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-12 16:28:34 +04:00
Darío Hereñú
c6375a3219 Low vision (added to group of disadvantaged) (#2278) 2022-10-12 16:27:06 +04:00
Ankan Banerjee
6cd62287e9 Fix typo in 103-travis-ci.md (#2280) 2022-10-12 16:26:30 +04:00
Kalpit Shah
52841adab4 Update content for got and stack-trace (#2284)
* Update 104-got.md

* Update 100-stack-trace.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-12 16:25:02 +04:00
Roberto Jacobo
13f2c6c470 Badge Text Updated (#2285)
* Node.js Introduction updated

...developer-roadmap/content/roadmaps/107-nodejs/content/100-nodejs-introduction/readme.md file updated with the appropriate guidelines.

* 101-nodejs-modules.md file updated

* Update content/roadmaps/107-nodejs/content/100-nodejs-introduction/readme.md

* Update content/roadmaps/107-nodejs/content/101-nodejs-modules/readme.md

* Update content/roadmaps/107-nodejs/content/101-nodejs-modules/readme.md

* Node modules updated (fixed)

* Node.js Modules main text

* badge text fixed

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-12 16:23:46 +04:00
Akash Kishore Mukhia
b978f8d48f Added video resource(Youtube video) for event loop. (#2286)
* Added video resource(youtube) for event loop.

* Update content/roadmaps/106-javascript/content/112-javascript-asynchronous-javascript/100-event-loop.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-12 16:22:25 +04:00
CHAKKA PHANI SIMHA
2230ac817b Added content to the Running Scripts in Node.js - npm (#2294)
* Edited the typeof operator file

* Update 104-running-scripts.md

* Added the content to the stack-trace.md

* Added content for the 104-asyn-errors.md file

* Update content/roadmaps/107-nodejs/content/103-nodejs-error-handling/100-stack-trace.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-12 16:21:04 +04:00
Julio Martins
f9079b12e6 Add summary and one free content to commander.js package (#2295)
* Add summary and one free content to commander.js package

* Update content/roadmaps/107-nodejs/content/106-nodejs-command-line-apps/103-command-line-args/101-commander-js.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-12 16:16:06 +04:00
CHAKKA PHANI SIMHA
13be140b58 Added content to the readme.md file (#2299)
[#1838 ](https://github.com/kamranahmedse/developer-roadmap/issues/1838) Added the content for the readme.md file in 104-javascript-datastructures

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-12 16:15:40 +04:00
Muneeb Mughal
26d7497fe9 Added Python Refrence read guide link. (#2306)
* Added Python Refrence read guide link from freecodecamp.org How to Learn python ?

* tag mistake update colorscheme

* \Update content/roadmaps/101-backend/content/103-learn-a-language/106-python.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-12 16:14:31 +04:00
Jefferson Barrero
81e8bd6ea3 Added content to Software Architect (#2307)
* added content in Software Arquitect

* Update content/roadmaps/114-software-architect/content/105-patterns-and-design-principles/102-cqrs-eventual-consistency.md

* added content

* Update content/roadmaps/114-software-architect/content/107-architectures/101-microservices.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-12 16:14:06 +04:00
Aarti Verma
dea1d6808d Added content for desktop applications in JavaScript (#2316)
* Added content on desktop applications, examples and types along with free video and blog content

* Update content/roadmaps/100-frontend/content/122-desktop-applications/readme.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-12 15:59:29 +04:00
Aarti Verma
b9a43a5f32 Added content for JavaScript Error and its types (#2317)
* Added content for JavaScript Error and its types

along with free tutorial link and YouTube link

* Update content/roadmaps/107-nodejs/content/103-nodejs-error-handling/103-error-types/100-javascript-errors.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-12 15:55:54 +04:00
Pradeep J
ee25c3712c Fix typos (#2318) 2022-10-12 15:55:02 +04:00
Aritra Bhadra
3e0456026f Added content to what-is-internet.md (#2319)
Unlike other topics, cybersecurity and cybercrime didn't have a brief intro, so i added one.
2022-10-12 15:54:32 +04:00
CHAKKA PHANI SIMHA
c6e0971d5a Add content to creating custom pipe, filters, directives and libraries (#2320)
* Added content to readme.md file of 112-creating-a-custom-x folder

[#1847 ](https://github.com/kamranahmedse/developer-roadmap/issues/1847) I made the required addition of content to readme.md file of 112-creating-a-custom-x to resolve the issue.

* Update content/roadmaps/104-angular/content/112-creating-a-custom-x/readme.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-12 15:54:06 +04:00
CHAKKA PHANI SIMHA
0240b5c256 Add content for Angular SSR (#2321)
* Added content to readme.md file of 113-angular-ssr

[#1847](https://github.com/kamranahmedse/developer-roadmap/issues/1847) I made the content addition to readme.md file of 113-angular-ssr folder to resolve the issue

* Update content/roadmaps/104-angular/content/113-angular-ssr/readme.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-12 15:52:32 +04:00
CHAKKA PHANI SIMHA
2923205195 Added content to Angular SSG (#2323)
* Added content to readme.md file in 114-angular-ssg

[#1847 ](https://github.com/kamranahmedse/developer-roadmap/issues/1847) I added the required content to the readme.md file in 114-angular-ssg folder to resolve the issue.

* Update content/roadmaps/104-angular/content/114-angular-ssg/readme.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-12 15:50:35 +04:00
Kartikey Verma
eeafcf8587 Add content for java logging frameworks (#2335)
* Update readme.md

* Update content/roadmaps/110-java/content/105-java-logging-frameworks/readme.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-12 15:50:01 +04:00
Shivam Kotak
5650101775 Update content for web and mobile in software architect (#2336)
* Update 102-spa-ssr-ssg.md

* Update 104-microfrontends.md

* Update 105-w3c-and-whatwg-standards.md

* Update 100-reactive-functional-programming.md

* Update content/roadmaps/114-software-architect/content/111-web-and-mobile/100-reactive-functional-programming.md

* Update content/roadmaps/114-software-architect/content/111-web-and-mobile/102-spa-ssr-ssg.md

* Update content/roadmaps/114-software-architect/content/111-web-and-mobile/105-w3c-and-whatwg-standards.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-12 15:49:05 +04:00
Shivam Kotak
ac1cf06b72 Add content for taking input from user (#2337) 2022-10-12 15:46:24 +04:00
Aarti Verma
d0d58321be Added content for Nodejs to keep app running prod along with blog links (#2338)
* Added content for Nodejs to keep app running prod along with blog links

* Update content/roadmaps/107-nodejs/content/113-nodejs-keep-app-running-prod/readme.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-12 15:44:58 +04:00
Fhilipe Coelho
bd36c2ffa5 Add vitest (#2422) 2022-10-12 15:43:59 +04:00
code-with-rajeev
4ec00277a1 Minor typo fix (#2423)
Fixed grammatical errors. Missing "is" on line 3.
2022-10-12 15:43:18 +04:00
Joseph Olayanju
24f2d2c12b Add content for keep app running in node.js (#2424)
* Update readme.md

* Update content/roadmaps/107-nodejs/content/108-nodejs-keep-app-running/readme.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-12 15:40:29 +04:00
Uma Das
95724f621a Add content to Angular Roadmap:Basics (#2428)
* Add content to Angular Roadmap - Basics - Dependency Injection

* Add content to Angular Roadmap:Basics[Routing]

* Add content to Angular Roadmap:Basics[Routing]
2022-10-12 15:33:19 +04:00
Shanit Paul
d78ca8072b Add software architect resource (#2429)
I'd like to contribute a better definition with proper functionality of an Artitect.
2022-10-12 15:33:06 +04:00
egorrrrr
aaee04d7ef Add datastructures playlist (#2430)
* Update 104-datastructures.md

good guide to learn ds and alghoritms

* Update content/roadmaps/110-java/content/100-java-fundamentals/104-datastructures.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-12 15:32:04 +04:00
Kamran Ahmed
4d2ccb1432 Fix broken build 2022-10-12 02:08:38 +04:00
Deepak gupta
c55673c1a3 Added content to data structure readme.md (#2325)
* Added content to data structure readme.md

Added basic understanding of data structures with a free-read content

* Update readme.md

* Update content/roadmaps/106-javascript/content/104-javascript-data-structures/readme.md

* Update content/roadmaps/106-javascript/content/104-javascript-data-structures/readme.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-12 02:06:37 +04:00
Shivam Kotak
cf7a3d8298 Update content for templates in angular (#2328)
* Update 101-property-binding.md

* Update 102-template-statements.md

* Update 103-binding-data-props-attrs-events.md

* Update 104-reference-vars.md

* Update 105-input-output.md
2022-10-12 02:04:45 +04:00
Deepak gupta
f2d49b9206 Add links to memory management docs (#2329)
* added links to memory management docs

.added read free-content docs

* Update 100-memory-lifecycle.md

* Update content/roadmaps/106-javascript/content/116-javascript-memory-management/100-memory-lifecycle.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-12 02:04:02 +04:00
Deepak gupta
6ff7cff880 Add content to Puppeteer (#2330)
added content with free read content
2022-10-12 02:03:03 +04:00
Deepak gupta
80db357946 Add content to playwright (#2331)
* added content to playwright

added content with free-read content

* Update content/roadmaps/113-qa/content/103-qa-automated-testing/100-frontend-automation/102-automation-frameworks/playwright.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-12 02:02:29 +04:00
Sandra Laguna
204079d1ab Added W3Schools resource about ES6 (#2332) 2022-10-12 02:01:28 +04:00
ChuckD3ath
0511d2267e Update All Mobile Automation Tools (#2334) 2022-10-12 01:59:36 +04:00
CHAKKA PHANI SIMHA
6efbf1581c Added content to readme.md file of 103-qa-automated-testing folder (#2339)
* Added content to readme.md file of 103-qa-automated-testing folder

[#1840 ](https://github.com/kamranahmedse/developer-roadmap/issues/1840) I contributed to this issue by adding the readme.md file for the 103-qa-automated-testing folder.

* Update content/roadmaps/113-qa/content/103-qa-automated-testing/readme.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-12 01:59:01 +04:00
Aarti Verma
ae959049e4 Added content for debugging in node.js and how to debug. (#2340)
* Added content for debugging in node.js and how to debug.

added tutorial links for the same to learn more about debugging in node.js

* Update content/roadmaps/107-nodejs/content/116-nodejs-more-debugging/readme.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2022-10-12 01:57:08 +04:00
Kamran Ahmed
233c5d8105 Revert "Removed Nodejs Error (#2341)" (#2420)
This reverts commit e020389df9.
2022-10-12 01:54:38 +04:00
4423 changed files with 37884 additions and 279928 deletions

View File

@@ -1,18 +0,0 @@
{
"extends": [
"next",
"next/core-web-vitals",
"prettier"
],
"rules": {
"@next/next/no-img-element": [
"off"
],
"react/display-name": [
"off"
],
"react/jsx-no-target-blank": [
"off"
]
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

View File

@@ -1 +0,0 @@
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 3473 1069"><defs><style>.cls-1{fill:#fff;}.cls-2{fill:#111;}.cls-3{fill-rule:evenodd;fill:url(#linear-gradient);}</style><linearGradient id="linear-gradient" x1="658.73" y1="777.7" x2="341.45" y2="352.06" gradientTransform="matrix(1, 0, 0, -1, 0, 1070)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#33a9ff"/><stop offset="1" stop-color="#1673ff"/></linearGradient></defs><rect class="cls-1" width="3473" height="1069"/><path class="cls-2" d="M1054.06,633.32q4.93.45,11.23.9H1081q52.55,0,77.7-26.5,25.59-26.49,25.59-73.18,0-48.94-24.25-74.09t-76.79-25.14q-7.18,0-14.82.45-5.78,0-11,.51a3.73,3.73,0,0,0-3.33,3.74Zm202.54-98.78Q1256.6,575,1244,605t-35.92,49.84q-22.9,19.75-56.14,29.63t-74.55,9.88q-18.86,0-44-1.79A338.32,338.32,0,0,1,984,686.3V386.41a3.8,3.8,0,0,1,3.13-3.75,386.34,386.34,0,0,1,47.17-5.27q26.49-1.8,45.36-1.8,40,0,72.3,9,32.79,9,56.14,28.29T1244,462.25Q1256.61,492.33,1256.6,534.54Z"/><path class="cls-2" d="M1397.52,534.54q0,22.89,5.39,41.31a103.13,103.13,0,0,0,16.17,31.87,74.66,74.66,0,0,0,26.05,20.21q15.27,7.19,35,7.18,19.3,0,34.58-7.18a69.47,69.47,0,0,0,26-20.21A91.41,91.41,0,0,0,1557,575.85q5.83-18.42,5.84-41.31T1557,493.23q-5.39-18.86-16.17-31.88a67.73,67.73,0,0,0-26-20.65q-15.27-7.18-34.58-7.19-19.77,0-35,7.64a72.5,72.5,0,0,0-26.05,20.65q-10.33,13-16.17,31.88A145.23,145.23,0,0,0,1397.52,534.54Zm237.57,0q0,40-12.12,70.49-11.68,30.09-32.34,50.74a134.89,134.89,0,0,1-49.4,30.53,176.88,176.88,0,0,1-61.07,10.33A174.23,174.23,0,0,1,1420,686.3a140,140,0,0,1-49.4-30.53q-21.11-20.65-33.23-50.74-12.13-30.53-12.13-70.49t12.58-70q12.57-30.53,33.68-51.18a142,142,0,0,1,49.4-31A171.39,171.39,0,0,1,1480.16,372a174.08,174.08,0,0,1,60.18,10.33,136.87,136.87,0,0,1,49.4,31q21.1,20.65,33.23,51.18Q1635.09,494.58,1635.09,534.54Z"/><path class="cls-2" d="M1810.48,375.59q69.62,0,106.88,24.7,37.28,24.24,37.28,79.92,0,56.13-37.72,81.27-37.73,24.69-107.79,24.69H1791a3.83,3.83,0,0,0-3.83,3.83v96.51a3.83,3.83,0,0,1-3.83,3.83h-66.23V386.83a3.81,3.81,0,0,1,3.1-3.75,400.76,400.76,0,0,1,45.4-5.69Q1791.18,375.59,1810.48,375.59Zm4.49,59.72q-7.63,0-15.27.45-5,.3-9.06.62a3.8,3.8,0,0,0-3.51,3.8v86.28h22q36.38,0,54.79-9.88t18.42-36.82q0-13-4.94-21.55a32.47,32.47,0,0,0-13.48-13.47q-8.54-5.39-21.1-7.19A159.75,159.75,0,0,0,1815,435.31Z"/><path class="cls-2" d="M2123.07,375.59q69.61,0,106.89,24.7,37.27,24.24,37.27,79.92,0,56.13-37.72,81.27-37.73,24.69-107.78,24.69h-18.18a3.83,3.83,0,0,0-3.83,3.83v96.51a3.83,3.83,0,0,1-3.83,3.83h-66.23V386.82a3.8,3.8,0,0,1,3.1-3.74,400.76,400.76,0,0,1,45.4-5.69Q2103.77,375.59,2123.07,375.59Zm4.49,59.72q-7.64,0-15.27.45-5,.3-9.06.62a3.81,3.81,0,0,0-3.51,3.8v86.28h22q36.38,0,54.78-9.88t18.42-36.82q0-13-4.94-21.55a32.47,32.47,0,0,0-13.48-13.47q-8.52-5.39-21.1-7.19A159.75,159.75,0,0,0,2127.56,435.31Z"/><path class="cls-2" d="M2540.5,630.17a1.29,1.29,0,0,1,1.28,1.28v57.62a1.28,1.28,0,0,1-1.28,1.27H2342.25V401.41a3.83,3.83,0,0,1,2.81-3.69l67.25-18.54v251Z"/><path class="cls-2" d="M2618.88,690.34V383a3.84,3.84,0,0,1,3.83-3.83h215a1.28,1.28,0,0,1,1.23,1.64l-16.44,56.26a1.26,1.26,0,0,1-1.22.92H2692.77a3.83,3.83,0,0,0-3.83,3.83v57.24H2803.1a1.27,1.27,0,0,1,1.23,1.63l-16,54.92a1.28,1.28,0,0,1-1.22.92h-94.34a3.82,3.82,0,0,0-3.83,3.83v71.15h154.72a1.28,1.28,0,0,1,1.23,1.63l-16.34,56.27a1.27,1.27,0,0,1-1.22.92Z"/><path class="cls-2" d="M3006,375.59q70.07,0,107.34,25.15,37.28,24.69,37.27,77.22,0,32.79-15.27,53.44-14.82,20.19-43.11,31.87,9.43,11.68,19.76,26.94,10.34,14.82,20.21,31.43,10.32,16.17,19.76,34.13,8.93,16.58,16.65,32.75a1.28,1.28,0,0,1-1.16,1.82H3091.6a1.27,1.27,0,0,1-1.11-.65q-8.37-15-17.15-30.33-8.53-15.72-18-30.53-9-14.82-18-27.84a286.92,286.92,0,0,0-18-24.25h-30.76a3.83,3.83,0,0,0-3.82,3.83V686.51a3.83,3.83,0,0,1-3.83,3.83h-66.23V386.82a3.8,3.8,0,0,1,3.09-3.74,400,400,0,0,1,44.06-5.69Q2986.67,375.59,3006,375.59Zm4.05,59.72q-7.64,0-13.93.45-4,.3-7.71.61a3.82,3.82,0,0,0-3.51,3.81v80.89h19.76q39.51,0,56.58-9.88t17.07-33.67q0-22.9-17.52-32.33Q3043.71,435.31,3010,435.31Z"/><path class="cls-3" d="M307.26,310a1.79,1.79,0,0,0-1.5,2.75l89.7,140.38a14.19,14.19,0,0,0,12,6.58H528.38c39.92,0,64.87,35.28,64.72,74.79s-26.74,74.44-64.72,74.44H404.77a4.71,4.71,0,0,0-4.71,4.75V754.25a4.72,4.72,0,0,0,4.72,4.75H560.62C689.12,759,753,637.1,753.09,534.5S690,310,560.62,310ZM367,609.29H336.16C318.4,609.29,304,626,304,646.71V757.66a1.28,1.28,0,0,0,1.28,1.28h30.88c17.76,0,32.15-16.75,32.15-37.41v-111A1.27,1.27,0,0,0,367,609.29Z"/></svg>

Before

Width:  |  Height:  |  Size: 4.4 KiB

View File

@@ -1,59 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 25.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 646.6 105.7" style="enable-background:new 0 0 646.6 105.7;" xml:space="preserve">
<style type="text/css">
.st0{fill:#104366;}
.st1{fill:#4086C6;}
</style>
<g>
<path class="st0" d="M21.1,79.8c-6.6-3.5-11.7-8.4-15.5-14.6C1.9,59,0,52,0,44.3c0-7.8,1.9-14.7,5.6-20.9
c3.7-6.2,8.9-11.1,15.5-14.6c6.6-3.5,14-5.3,22.2-5.3c8.2,0,15.6,1.8,22.1,5.3c6.6,3.5,11.7,8.4,15.5,14.6
c3.8,6.2,5.6,13.2,5.6,20.9c0,7.8-1.9,14.7-5.6,20.9c-3.8,6.2-8.9,11.1-15.5,14.6c-6.5,3.5-13.9,5.3-22.1,5.3
C35,85.1,27.6,83.4,21.1,79.8z M55.9,66.3c3.8-2.1,6.7-5.1,8.9-9c2.1-3.8,3.2-8.2,3.2-13.1c0-4.9-1.1-9.3-3.2-13.1
c-2.1-3.8-5.1-6.8-8.9-9c-3.8-2.1-8-3.2-12.6-3.2c-4.7,0-8.9,1.1-12.6,3.2s-6.7,5.1-8.9,9c-2.1,3.8-3.2,8.2-3.2,13.1
c0,4.9,1.1,9.3,3.2,13.1c2.1,3.8,5.1,6.8,8.9,9c3.8,2.1,8,3.2,12.6,3.2C47.9,69.5,52.1,68.5,55.9,66.3z"/>
<path class="st0" d="M108.1,82.6c-5.8-1.7-10.5-3.9-14.1-6.6l6.2-13.8c3.4,2.5,7.4,4.5,12.1,6c4.7,1.5,9.3,2.3,14,2.3
c5.2,0,9-0.8,11.5-2.3c2.5-1.5,3.7-3.6,3.7-6.2c0-1.9-0.7-3.4-2.2-4.7c-1.5-1.2-3.3-2.2-5.6-3c-2.3-0.8-5.4-1.6-9.3-2.5
c-6-1.4-11-2.9-14.8-4.3c-3.8-1.4-7.1-3.7-9.9-6.9c-2.7-3.2-4.1-7.4-4.1-12.6c0-4.6,1.2-8.7,3.7-12.5c2.5-3.7,6.2-6.7,11.2-8.9
c5-2.2,11.1-3.3,18.3-3.3c5,0,10,0.6,14.8,1.8c4.8,1.2,9,2.9,12.6,5.2l-5.6,13.9c-7.3-4.1-14.6-6.2-21.9-6.2
c-5.1,0-8.9,0.8-11.3,2.5c-2.4,1.7-3.7,3.8-3.7,6.5c0,2.7,1.4,4.7,4.2,6c2.8,1.3,7.1,2.6,12.9,3.9c6,1.4,11,2.9,14.8,4.3
c3.8,1.4,7.1,3.7,9.9,6.8c2.7,3.1,4.1,7.3,4.1,12.5c0,4.5-1.3,8.6-3.8,12.4c-2.5,3.7-6.3,6.7-11.3,8.9c-5,2.2-11.2,3.3-18.4,3.3
C120,85.1,113.9,84.3,108.1,82.6z"/>
<path class="st0" d="M180.1,82.6c-5.8-1.7-10.5-3.9-14.1-6.6l6.2-13.8c3.4,2.5,7.4,4.5,12.1,6c4.7,1.5,9.3,2.3,14,2.3
c5.2,0,9-0.8,11.5-2.3c2.5-1.5,3.7-3.6,3.7-6.2c0-1.9-0.7-3.4-2.2-4.7c-1.5-1.2-3.3-2.2-5.6-3c-2.3-0.8-5.4-1.6-9.3-2.5
c-6-1.4-10.9-2.9-14.8-4.3c-3.8-1.4-7.1-3.7-9.9-6.9c-2.7-3.2-4.1-7.4-4.1-12.6c0-4.6,1.2-8.7,3.7-12.5c2.5-3.7,6.2-6.7,11.2-8.9
s11.1-3.3,18.3-3.3c5,0,10,0.6,14.8,1.8c4.8,1.2,9,2.9,12.6,5.2l-5.6,13.9c-7.3-4.1-14.6-6.2-21.9-6.2c-5.1,0-8.9,0.8-11.3,2.5
c-2.4,1.7-3.7,3.8-3.7,6.5c0,2.7,1.4,4.7,4.2,6c2.8,1.3,7.1,2.6,12.9,3.9c6,1.4,10.9,2.9,14.8,4.3s7.1,3.7,9.9,6.8
c2.7,3.1,4.1,7.3,4.1,12.5c0,4.5-1.3,8.6-3.8,12.4c-2.5,3.7-6.3,6.7-11.3,8.9c-5,2.2-11.2,3.3-18.4,3.3
C192,85.1,186,84.3,180.1,82.6z"/>
<path class="st1" d="M293.2,79.1c-6.2-3.5-11.1-8.2-14.7-14.3c-3.6-6.1-5.4-12.9-5.4-20.5c0-7.6,1.8-14.5,5.4-20.5
c3.6-6.1,8.5-10.9,14.7-14.3c6.2-3.5,13.2-5.2,20.9-5.2c5.7,0,11,0.9,15.8,2.8c4.8,1.8,8.9,4.6,12.3,8.2l-3.6,3.7
c-6.3-6.2-14.4-9.4-24.3-9.4c-6.6,0-12.6,1.5-18.1,4.5c-5.4,3-9.7,7.2-12.8,12.5s-4.6,11.2-4.6,17.8s1.5,12.5,4.6,17.8
c3.1,5.3,7.3,9.5,12.8,12.5c5.4,3,11.4,4.5,18.1,4.5c9.8,0,17.9-3.2,24.3-9.5l3.6,3.7c-3.4,3.6-7.5,6.4-12.4,8.2
c-4.9,1.9-10.1,2.8-15.7,2.8C306.3,84.3,299.4,82.6,293.2,79.1z"/>
<path class="st1" d="M395.4,30c3.9,3.7,5.9,9.2,5.9,16.4v37.4h-5.4V73.3c-1.9,3.5-4.6,6.2-8.2,8.1c-3.6,1.9-7.9,2.9-13,2.9
c-6.5,0-11.7-1.5-15.5-4.6c-3.8-3.1-5.7-7.1-5.7-12.2c0-4.9,1.8-8.9,5.2-11.9c3.5-3,9.1-4.6,16.8-4.6h20.2v-4.7
c0-5.5-1.5-9.7-4.5-12.5c-3-2.9-7.3-4.3-13-4.3c-3.9,0-7.7,0.7-11.2,2c-3.6,1.4-6.6,3.2-9.1,5.4l-2.8-4.1c2.9-2.6,6.5-4.7,10.6-6.2
c4.1-1.5,8.5-2.2,13-2.2C385.9,24.4,391.5,26.3,395.4,30z M387.9,76.2c3.4-2.3,6-5.5,7.7-9.8V55.3h-20.1c-5.8,0-10,1.1-12.6,3.2
c-2.6,2.1-3.9,5-3.9,8.7c0,3.8,1.4,6.9,4.3,9.1c2.9,2.2,6.9,3.3,12.1,3.3C380.3,79.6,384.5,78.5,387.9,76.2z"/>
<path class="st1" d="M469,28.2c4.4,2.6,7.9,6.1,10.4,10.6c2.5,4.5,3.8,9.7,3.8,15.5c0,5.8-1.3,11-3.8,15.5
c-2.5,4.6-6,8.1-10.4,10.6c-4.4,2.5-9.4,3.8-14.9,3.8c-5.2,0-9.9-1.2-14.1-3.7c-4.2-2.4-7.5-5.9-9.8-10.2v35.3h-5.6V24.8h5.4v13.9
c2.3-4.5,5.6-8,9.9-10.6c4.2-2.5,9-3.8,14.3-3.8C459.6,24.4,464.6,25.7,469,28.2z M465.9,76c3.6-2.1,6.5-5,8.5-8.8
c2.1-3.8,3.1-8.1,3.1-12.9c0-4.8-1-9.1-3.1-12.9c-2.1-3.8-4.9-6.7-8.5-8.8c-3.6-2.1-7.7-3.2-12.2-3.2c-4.5,0-8.6,1.1-12.1,3.2
c-3.6,2.1-6.4,5-8.5,8.8c-2.1,3.8-3.1,8.1-3.1,12.9c0,4.8,1,9.1,3.1,12.9c2.1,3.8,4.9,6.7,8.5,8.8c3.6,2.1,7.6,3.2,12.1,3.2
C458.3,79.1,462.3,78.1,465.9,76z"/>
<path class="st1" d="M500.3,9.2c-0.9-0.9-1.4-1.9-1.4-3.2c0-1.3,0.5-2.4,1.4-3.3c0.9-0.9,2-1.4,3.3-1.4c1.3,0,2.4,0.4,3.3,1.3
c0.9,0.9,1.4,1.9,1.4,3.2c0,1.3-0.5,2.4-1.4,3.3c-0.9,0.9-2,1.4-3.3,1.4C502.3,10.5,501.2,10.1,500.3,9.2z M500.7,24.8h5.6v58.9
h-5.6V24.8z"/>
<path class="st1" d="M559.4,80c-1.4,1.4-3.2,2.4-5.4,3.1c-2.1,0.7-4.4,1.1-6.7,1.1c-5.1,0-9.1-1.4-11.9-4.2
c-2.8-2.8-4.2-6.8-4.2-11.8V29.7h-10.8v-4.9h10.8V12h5.6v12.9h18.7v4.9H537v37.9c0,3.8,0.9,6.8,2.8,8.8c1.8,2,4.6,3,8.2,3
c3.7,0,6.7-1.1,9.1-3.3L559.4,80z"/>
<path class="st1" d="M611.8,30c3.9,3.7,5.9,9.2,5.9,16.4v37.4h-5.4V73.3c-1.9,3.5-4.6,6.2-8.2,8.1c-3.6,1.9-7.9,2.9-13,2.9
c-6.5,0-11.7-1.5-15.5-4.6c-3.8-3.1-5.7-7.1-5.7-12.2c0-4.9,1.8-8.9,5.2-11.9c3.5-3,9.1-4.6,16.8-4.6H612v-4.7
c0-5.5-1.5-9.7-4.5-12.5c-3-2.9-7.3-4.3-13-4.3c-3.9,0-7.7,0.7-11.2,2c-3.6,1.4-6.6,3.2-9.1,5.4l-2.8-4.1c2.9-2.6,6.5-4.7,10.6-6.2
c4.1-1.5,8.5-2.2,13-2.2C602.3,24.4,607.9,26.3,611.8,30z M604.3,76.2c3.4-2.3,6-5.5,7.7-9.8V55.3h-20.1c-5.8,0-10,1.1-12.6,3.2
c-2.6,2.1-3.9,5-3.9,8.7c0,3.8,1.4,6.9,4.3,9.1c2.9,2.2,6.9,3.3,12.1,3.3C596.7,79.6,600.9,78.5,604.3,76.2z"/>
<path class="st1" d="M640.9,0h5.6v83.8h-5.6V0z"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 5.4 KiB

View File

@@ -1,11 +0,0 @@
<svg width="1354" height="420" viewBox="0 0 1354 420" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect width="1354" height="420" rx="20" fill="white"/>
<path d="M434.751 133.122H466.637L489.595 227.729C493.852 245.585 494.697 256.219 494.697 256.219H495.128C495.128 256.219 496.61 245.808 500.867 227.729L522.757 133.122H558.9L582.066 227.729C586.53 246.223 587.598 256.219 587.598 256.219H588.236C588.236 256.219 588.666 246.223 592.907 227.729L615.02 133.122H646.907L606.523 288.313H571.017L546.576 194.344C541.474 173.936 541.044 164.801 541.044 164.801H540.614C540.614 164.801 540.183 173.936 535.512 194.344L512.553 288.313H475.996L434.751 133.122Z" fill="black"/>
<path d="M641.583 231.934C641.583 196.428 664.541 173.47 699.202 173.47C733.639 173.47 756.597 196.428 756.597 231.934C756.597 267.647 733.639 290.828 699.202 290.828C664.557 290.812 641.583 267.647 641.583 231.934ZM726.832 231.934C726.832 208.976 715.783 195.998 699.202 195.998C681.346 195.998 671.349 210.458 671.349 231.934C671.349 255.323 682.398 268.284 699.202 268.284C717.058 268.284 726.832 253.824 726.832 231.934Z" fill="black"/>
<path d="M770.836 175.21H799.103V196.048H799.741C804.635 185.207 816.322 174.365 836.299 174.365C839.695 174.365 841.831 174.796 843.314 175.21V203.478H842.469C842.469 203.478 839.918 202.633 832.903 202.633C811.013 202.633 799.103 215.594 799.103 239.828V288.295H770.836V175.21Z" fill="black"/>
<path d="M856.5 133.122H884.767V182.865C884.767 212.2 884.336 217.509 884.336 217.509H884.767L926.857 175.212H962.139L912.843 224.11L970.031 288.313H936.646L895.401 241.536L884.767 251.946V288.297H856.5V133.122Z" fill="black"/>
<path d="M970.444 211.285C970.444 163.455 1000.21 131.569 1044.85 131.569C1089.49 131.569 1119.26 163.455 1119.26 211.285C1119.26 259.114 1089.49 291.001 1044.85 291.001C1000.21 291.001 970.444 259.114 970.444 211.285ZM1088.42 211.285C1088.42 178.761 1071 156.855 1044.84 156.855C1018.67 156.855 1001.26 178.761 1001.26 211.285C1001.26 243.809 1018.69 265.715 1044.84 265.715C1070.98 265.715 1088.42 243.809 1088.42 211.285Z" fill="black"/>
<path d="M1130.08 236.656H1162.4C1162.4 254.943 1174.95 265.146 1194.08 265.146C1210.23 265.146 1221.29 257.063 1221.29 245.584C1221.29 232.622 1212.79 229.21 1185.79 223.901C1161.12 219.007 1134.98 210.716 1134.98 178.399C1134.98 151.408 1157.93 131 1193.01 131C1229.57 131 1252.11 150.132 1252.11 179.037H1219.79C1219.79 165.007 1208.95 156.286 1193.01 156.286C1176.86 156.286 1166.86 164.146 1166.86 175.625C1166.86 187.742 1173.88 192.413 1195.56 196.878C1227.65 203.685 1254.02 207.288 1254.02 243.001C1254.02 271.3 1229.36 290.432 1193.01 290.432C1156.02 290.432 1130.08 268.957 1130.08 236.656Z" fill="black"/>
<path d="M100 210C100 214.824 101.269 219.647 103.723 223.793L148.231 300.878C152.8 308.747 159.739 315.178 168.369 318.055C185.377 323.724 202.977 316.447 211.354 301.893L222.1 283.278L179.708 210L224.47 132.408L235.216 113.792C238.431 108.208 242.747 103.638 247.824 100H243.17H178.777C166.677 100 155.508 106.431 149.5 116.923L103.723 196.208C101.269 200.354 100 205.177 100 210Z" fill="#6363F1"/>
<path d="M353.847 210C353.847 205.177 352.578 200.353 350.124 196.207L305.024 118.107C296.647 103.638 279.047 96.3608 262.039 101.945C253.409 104.822 246.47 111.253 241.901 119.122L231.747 136.638L274.139 210L229.378 287.592L218.632 306.208C215.416 311.708 211.101 316.362 206.024 320H210.678H275.07C287.17 320 298.34 313.569 304.347 303.077L350.124 223.792C352.578 219.646 353.847 214.823 353.847 210Z" fill="#6363F1"/>
</svg>

Before

Width:  |  Height:  |  Size: 3.4 KiB

21
.github/workflows/aws-costs.yml vendored Normal file
View File

@@ -0,0 +1,21 @@
name: Sends Daily AWS Costs to Slack
on:
# Allow manual Run
workflow_dispatch:
# Run at 7:00 UTC every day
schedule:
- cron: "0 7 * * *"
jobs:
aws_costs:
runs-on: ubuntu-latest
steps:
- name: Get Costs
env:
AWS_KEY: ${{ secrets.COST_AWS_ACCESS_KEY }}
AWS_SECRET: ${{ secrets.COST_AWS_SECRET_KEY }}
AWS_REGION: ${{ secrets.COST_AWS_REGION }}
SLACK_CHANNEL: ${{ secrets.SLACK_COST_CHANNEL }}
SLACK_TOKEN: ${{ secrets.SLACK_TOKEN }}
run: |
npm install -g aws-cost-cli
aws-cost -k $AWS_KEY -s $AWS_SECRET -r $AWS_REGION -S $SLACK_TOKEN -C $SLACK_CHANNEL

View File

@@ -3,11 +3,9 @@ on:
push:
branches: [ master ]
env:
ROADMAP_GA_SECRET: ${{ secrets.GA_SECRET }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
PAT: ${{ secrets.PAT }}
CI: true
NEXT_TELEMETRY_DISABLED: 1
jobs:
build:
runs-on: ubuntu-latest
@@ -17,14 +15,19 @@ jobs:
persist-credentials: false
- uses: actions/setup-node@v1
with:
node-version: 16
node-version: 18
- run: git config --global url."https://${{ secrets.PAT }}@github.com/".insteadOf ssh://git@github.com/
- uses: pnpm/action-setup@v2.2.2
with:
version: 7.13.4
- name: Setup Environment
run: |
npm install
pnpm install
- name: Generate meta and build
run: |
npm run meta
npm run build
touch ./dist/.nojekyll
echo 'roadmap.sh' > ./dist/CNAME
- name: Deploy to GH Pages
run: |
git config user.email "kamranahmed.se@gmail.com"

38
.github/workflows/update-deps.yml vendored Normal file
View File

@@ -0,0 +1,38 @@
name: Update dependencies
on:
workflow_dispatch: # allow manual run
schedule:
- cron: '0 0 * * 0' # every sunday at midnight
jobs:
upgrade-deps:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v3
with:
node-version: 18
- uses: pnpm/action-setup@v2.2.2
with:
version: 7.13.4
- name: Upgrade dependencies
run: |
pnpm install
npm run upgrade
pnpm install --lockfile-only
- name: Create PR
uses: peter-evans/create-pull-request@v4
with:
delete-branch: false
branch: "update-deps"
base: "master"
labels: |
dependencies
automated pr
reviewers: kamranahmedse
commit-message: "chore: update dependencies to latest"
title: "Upgrade dependencies to latest"
body: |
Updates all dependencies to latest versions.
Please review the changes and merge if everything looks good.

44
.gitignore vendored
View File

@@ -1,36 +1,26 @@
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
out
# build output
dist/
.output/
# dependencies
/node_modules
/.pnp
.pnp.js
node_modules/
# testing
/coverage
bin/developer-roadmap
# next.js
/.next/
/out/
# production
/build
# misc
.idea
.DS_Store
*.pem
# debug
# logs
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
# local env files
.env.local
.env.development.local
.env.test.local
.env.production.local
# vercel
.vercel
# environment variables
.env
.env.production
# macOS-specific files
.DS_Store
/test-results/
/playwright-report/
/playwright/.cache/
tests-examples

View File

@@ -1,5 +0,0 @@
{
"semi": true,
"singleQuote": true,
"tabWidth": 2
}

4
.vscode/extensions.json vendored Normal file
View File

@@ -0,0 +1,4 @@
{
"recommendations": ["astro-build.astro-vscode"],
"unwantedRecommendations": []
}

11
.vscode/launch.json vendored Normal file
View File

@@ -0,0 +1,11 @@
{
"version": "0.2.0",
"configurations": [
{
"command": "./node_modules/.bin/astro dev",
"name": "Development server",
"request": "launch",
"type": "node-terminal"
}
]
}

42
astro.config.mjs Normal file
View File

@@ -0,0 +1,42 @@
// https://astro.build/config
import sitemap from '@astrojs/sitemap';
import tailwind from '@astrojs/tailwind';
import compress from 'astro-compress';
import { defineConfig } from 'astro/config';
import rehypeExternalLinks from 'rehype-external-links';
import { serializeSitemap, shouldIndexPage } from './sitemap.mjs';
export default defineConfig({
site: 'https://roadmap.sh',
markdown: {
shikiConfig: {
theme: 'dracula',
},
rehypePlugins: [
[
rehypeExternalLinks,
{
target: '_blank',
},
],
],
},
build: {
format: 'file',
},
integrations: [
tailwind({
config: {
applyBaseStyles: false,
},
}),
sitemap({
filter: shouldIndexPage,
serialize: serializeSitemap,
}),
compress({
css: false,
js: false,
}),
],
});

View File

@@ -0,0 +1,144 @@
const fs = require('fs');
const path = require('path');
const CONTENT_DIR = path.join(__dirname, '../content');
// Directory containing the best-practices
const BEST_PRACTICE_CONTENT_DIR = path.join(__dirname, '../src/best-practices');
const bestPracticeId = process.argv[2];
const allowedBestPracticeId = fs.readdirSync(BEST_PRACTICE_CONTENT_DIR);
if (!bestPracticeId) {
console.error('bestPractice is required');
process.exit(1);
}
if (!allowedBestPracticeId.includes(bestPracticeId)) {
console.error(`Invalid best practice key ${bestPracticeId}`);
console.error(`Allowed keys are ${allowedBestPracticeId.join(', ')}`);
process.exit(1);
}
// Directory holding the best parctice content files
const bestPracticeDirName = fs
.readdirSync(BEST_PRACTICE_CONTENT_DIR)
.find((dirName) => dirName.replace(/\d+-/, '') === bestPracticeId);
if (!bestPracticeDirName) {
console.error('Best practice directory not found');
process.exit(1);
}
const bestPracticeDirPath = path.join(BEST_PRACTICE_CONTENT_DIR, bestPracticeDirName);
const bestPracticeContentDirPath = path.join(
BEST_PRACTICE_CONTENT_DIR,
bestPracticeDirName,
'content'
);
// If best practice content already exists do not proceed as it would override the files
if (fs.existsSync(bestPracticeContentDirPath)) {
console.error(`Best Practice content already exists @ ${bestPracticeContentDirPath}`);
process.exit(1);
}
function prepareDirTree(control, dirTree) {
// Directories are only created for groups
if (control.typeID !== '__group__') {
return;
}
// e.g. 104-testing-your-apps:other-options
const controlName = control?.properties?.controlName || '';
// No directory for a group without control name
if (!controlName || controlName.startsWith('check:') || controlName.startsWith('ext_link:')) {
return;
}
// e.g. ['testing-your-apps', 'other-options']
const dirParts = controlName.split(':');
// Nest the dir path in the dirTree
let currDirTree = dirTree;
dirParts.forEach((dirPart) => {
currDirTree[dirPart] = currDirTree[dirPart] || {};
currDirTree = currDirTree[dirPart];
});
const childrenControls = control.children.controls.control;
// No more children
if (childrenControls.length) {
childrenControls.forEach((childControl) => {
prepareDirTree(childControl, dirTree);
});
}
return { dirTree };
}
const bestPractice = require(path.join(__dirname, `../public/jsons/best-practices/${bestPracticeId}`));
const controls = bestPractice.mockup.controls.control;
// Prepare the dir tree that we will be creating
const dirTree = {};
controls.forEach((control) => {
prepareDirTree(control, dirTree);
});
/**
* @param parentDir Parent directory in which directory is to be created
* @param dirTree Nested dir tree to be created
* @param filePaths The mapping from groupName to file path
*/
function createDirTree(parentDir, dirTree, filePaths = {}) {
const childrenDirNames = Object.keys(dirTree);
const hasChildren = childrenDirNames.length !== 0;
// @todo write test for this, yolo for now
const groupName = parentDir
.replace(bestPracticeContentDirPath, '') // Remove base dir path
.replace(/(^\/)|(\/$)/g, '') // Remove trailing slashes
.replaceAll('/', ':') // Replace slashes with `:`
.replace(/:\d+-/, ':');
const humanizedGroupName = groupName
.split(':')
.pop()
?.replaceAll('-', ' ')
.replace(/^\w/, ($0) => $0.toUpperCase());
// If no children, create a file for this under the parent directory
if (!hasChildren) {
let fileName = `${parentDir}.md`;
fs.writeFileSync(fileName, `# ${humanizedGroupName}`);
filePaths[groupName || 'home'] = fileName.replace(CONTENT_DIR, '');
return filePaths;
}
// There *are* children, so create the parent as a directory
// and create `index.md` as the content file for this
fs.mkdirSync(parentDir);
let readmeFilePath = path.join(parentDir, 'index.md');
fs.writeFileSync(readmeFilePath, `# ${humanizedGroupName}`);
filePaths[groupName || 'home'] = readmeFilePath.replace(CONTENT_DIR, '');
// For each of the directory names, create a
// directory inside the given directory
childrenDirNames.forEach((dirName) => {
createDirTree(
path.join(parentDir, dirName),
dirTree[dirName],
filePaths
);
});
return filePaths;
}
// Create directories and get back the paths for created directories
createDirTree(bestPracticeContentDirPath, dirTree);
console.log('Created best practice content directory structure');

19
bin/compress-jsons.cjs Normal file
View File

@@ -0,0 +1,19 @@
const fs = require('node:fs');
const path = require('node:path');
const jsonsDir = path.join(process.cwd(), 'public/jsons');
const childJsonDirs = fs.readdirSync(jsonsDir);
childJsonDirs.forEach((childJsonDir) => {
const fullChildJsonDirPath = path.join(jsonsDir, childJsonDir);
const jsonFiles = fs.readdirSync(fullChildJsonDirPath);
jsonFiles.forEach((jsonFileName) => {
console.log(`Compressing ${jsonFileName}...`);
const jsonFilePath = path.join(fullChildJsonDirPath, jsonFileName);
const json = require(jsonFilePath);
fs.writeFileSync(jsonFilePath, JSON.stringify(json));
});
});

28
bin/readme.md Normal file
View File

@@ -0,0 +1,28 @@
## CLI Tools
> A bunch of CLI scripts to make the development easier
## `roadmap-links.cjs`
Generates a list of all the resources links in any roadmap file.
## `compress-jsons.cjs`
Compresses all the JSON files in the `public/jsons` folder
## `roadmap-content.cjs`
This command is used to create the content folders and files for the interactivity of the roadmap. You can use the below command to generate the roadmap skeletons inside a roadmap directory:
```bash
npm run roadmap-content [frontend|backend|devops|...]
```
For the content skeleton to be generated, we should have proper grouping, and the group names in the project files. You can follow the steps listed below in order to add the meta information to the roadmap.
- Remove all the groups from the roadmaps through the project editor. Select all and press `cmd+shift+g`
- Identify the boxes that should be clickable and group them together with `cmd+shift+g`
- Assign the name to the groups.
- Group names have the format of `[sort]-[slug]` e.g. `100-internet`. Each group name should start with a number starting from 100 which helps with sorting of the directories and the files. Groups at the same level have the sequential sorting information.
- Each groups children have a separate group and have the name similar to `[sort]-[parent-slug]:[child-slug]` where sort refers to the sorting of the `child-slug` and not the parent. Also parent-slug does not need to have the sorting information as a part of slug e.g. if parent was `100-internet` the children would be `100-internet:how-does-the-internet-work`, `101-internet:what-is-http`, `102-internet:browsers`.

163
bin/roadmap-content.cjs Normal file
View File

@@ -0,0 +1,163 @@
const fs = require('fs');
const path = require('path');
const CONTENT_DIR = path.join(__dirname, '../content');
// Directory containing the roadmaps
const ROADMAP_CONTENT_DIR = path.join(__dirname, '../src/roadmaps');
const roadmapId = process.argv[2];
const allowedRoadmapIds = fs.readdirSync(ROADMAP_CONTENT_DIR);
if (!roadmapId) {
console.error('roadmapId is required');
process.exit(1);
}
if (!allowedRoadmapIds.includes(roadmapId)) {
console.error(`Invalid roadmap key ${roadmapId}`);
console.error(`Allowed keys are ${allowedRoadmapIds.join(', ')}`);
process.exit(1);
}
// Directory holding the roadmap content files
const roadmapDirName = fs
.readdirSync(ROADMAP_CONTENT_DIR)
.find((dirName) => dirName.replace(/\d+-/, '') === roadmapId);
if (!roadmapDirName) {
console.error('Roadmap directory not found');
process.exit(1);
}
const roadmapDirPath = path.join(ROADMAP_CONTENT_DIR, roadmapDirName);
const roadmapContentDirPath = path.join(
ROADMAP_CONTENT_DIR,
roadmapDirName,
'content'
);
// If roadmap content already exists do not proceed as it would override the files
if (fs.existsSync(roadmapContentDirPath)) {
console.error(`Roadmap content already exists @ ${roadmapContentDirPath}`);
process.exit(1);
}
function prepareDirTree(control, dirTree, dirSortOrders) {
// Directories are only created for groups
if (control.typeID !== '__group__') {
return;
}
// e.g. 104-testing-your-apps:other-options
const controlName = control?.properties?.controlName || '';
// e.g. 104
const sortOrder = controlName.match(/^\d+/)?.[0];
// No directory for a group without control name
if (!controlName || !sortOrder) {
return;
}
// e.g. testing-your-apps:other-options
const controlNameWithoutSortOrder = controlName.replace(/^\d+-/, '');
// e.g. ['testing-your-apps', 'other-options']
const dirParts = controlNameWithoutSortOrder.split(':');
// Nest the dir path in the dirTree
let currDirTree = dirTree;
dirParts.forEach((dirPart) => {
currDirTree[dirPart] = currDirTree[dirPart] || {};
currDirTree = currDirTree[dirPart];
});
dirSortOrders[controlNameWithoutSortOrder] = Number(sortOrder);
const childrenControls = control.children.controls.control;
// No more children
if (childrenControls.length) {
childrenControls.forEach((childControl) => {
prepareDirTree(childControl, dirTree, dirSortOrders);
});
}
return { dirTree, dirSortOrders };
}
const roadmap = require(path.join(__dirname, `../public/jsons/roadmaps/${roadmapId}`));
const controls = roadmap.mockup.controls.control;
// Prepare the dir tree that we will be creating and also calculate the sort orders
const dirTree = {};
const dirSortOrders = {};
controls.forEach((control) => {
prepareDirTree(control, dirTree, dirSortOrders);
});
/**
* @param parentDir Parent directory in which directory is to be created
* @param dirTree Nested dir tree to be created
* @param sortOrders Mapping from groupName to sort order
* @param filePaths The mapping from groupName to file path
*/
function createDirTree(parentDir, dirTree, sortOrders, filePaths = {}) {
const childrenDirNames = Object.keys(dirTree);
const hasChildren = childrenDirNames.length !== 0;
// @todo write test for this, yolo for now
const groupName = parentDir
.replace(roadmapContentDirPath, '') // Remove base dir path
.replace(/(^\/)|(\/$)/g, '') // Remove trailing slashes
.replace(/(^\d+?-)/g, '') // Remove sorting information
.replaceAll('/', ':') // Replace slashes with `:`
.replace(/:\d+-/, ':');
const humanizedGroupName = groupName
.split(':')
.pop()
?.replaceAll('-', ' ')
.replace(/^\w/, ($0) => $0.toUpperCase());
const sortOrder = sortOrders[groupName] || '';
// Attach sorting information to dirname
// e.g. /roadmaps/100-frontend/content/internet
// ———> /roadmaps/100-frontend/content/103-internet
if (sortOrder) {
parentDir = parentDir.replace(/(.+?)([^\/]+)?$/, `$1${sortOrder}-$2`);
}
// If no children, create a file for this under the parent directory
if (!hasChildren) {
let fileName = `${parentDir}.md`;
fs.writeFileSync(fileName, `# ${humanizedGroupName}`);
filePaths[groupName || 'home'] = fileName.replace(CONTENT_DIR, '');
return filePaths;
}
// There *are* children, so create the parent as a directory
// and create `index.md` as the content file for this
fs.mkdirSync(parentDir);
let readmeFilePath = path.join(parentDir, 'index.md');
fs.writeFileSync(readmeFilePath, `# ${humanizedGroupName}`);
filePaths[groupName || 'home'] = readmeFilePath.replace(CONTENT_DIR, '');
// For each of the directory names, create a
// directory inside the given directory
childrenDirNames.forEach((dirName) => {
createDirTree(
path.join(parentDir, dirName),
dirTree[dirName],
dirSortOrders,
filePaths
);
});
return filePaths;
}
// Create directories and get back the paths for created directories
createDirTree(roadmapContentDirPath, dirTree, dirSortOrders);
console.log('Created roadmap content directory structure');

44
bin/roadmap-links.cjs Normal file
View File

@@ -0,0 +1,44 @@
const fs = require('fs');
const path = require('path');
const roadmapId = process.argv[2];
if (!roadmapId) {
console.error('Error: roadmapId is required');
}
const fullPath = path.join(__dirname, `../src/roadmaps/${roadmapId}`);
if (!fs.existsSync(fullPath)) {
console.error(`Error: path not found: ${fullPath}!`);
process.exit(1);
}
function readFiles(folderPath) {
const stats = fs.lstatSync(folderPath);
if (stats.isFile()) {
return [folderPath];
}
const folderContent = fs.readdirSync(folderPath);
let files = [];
for (const file of folderContent) {
const filePath = path.join(folderPath, file);
files = [...files, ...readFiles(filePath)];
}
return files;
}
const files = readFiles(fullPath);
let allLinks = [];
files.forEach((file) => {
const fileContent = fs.readFileSync(file, 'utf-8');
const matches = [...fileContent.matchAll(/\[[^\]]+]\((https?:\/\/[^)]+)\)/g)];
allLinks = [...allLinks, ...matches.map((match) => match[1])];
});
allLinks.map((link) => console.log(link));

View File

@@ -1,60 +0,0 @@
import { Box, Container, Flex, Heading, Image, Link, Text } from '@chakra-ui/react';
import React from 'react';
type ContentPageHeaderProps = {
formattedDate: string;
title: string;
subtitle: string;
author?: {
name: string;
twitter: string;
picture: string;
},
subLink?: {
text: string;
url: string;
}
};
export function ContentPageHeader(props: ContentPageHeaderProps) {
const { title, subtitle, author = null, formattedDate, subLink = null } = props;
return (
<Box pt={['35px', '35px', '70px']} pb={['35px', '35px', '55px']} borderBottomWidth={1} mb='30px'>
<Container maxW='container.md' position='relative' textAlign={['left', 'left', 'center']}>
<Flex alignItems='center' justifyContent={['flex-start', 'flex-start', 'center']}
fontSize={['12px', '12px', '14px']}>
{author?.name && (
<>
<Link
d={['none', 'flex', 'flex']}
target='_blank'
href={`https://twitter.com/${author.twitter}`}
alignItems='center'
fontWeight={600}
color='gray.500'
>
<Image alt={''} rounded={'full'} mr='7px' w='22px' src={author.picture} />
{author.name}
</Link>
<Text d={['none', 'inline', 'inline']} mx='7px' color='gray.500' as='span'>&middot;</Text>
</>
)}
<Text color='gray.500' as='span'>{formattedDate}</Text>
{subLink?.text && (
<>
<Text d={['none', 'none', 'inline']} mx='7px' color='gray.500' as='span'>&middot;</Text>
<Link d={['none', 'none', 'inline']} color='blue.500' fontWeight={500}
href={subLink.url} target={'_blank'}>{subLink.text}</Link>
</>
)}
</Flex>
<Heading as='h1' color='black' fontSize={['30px', '30px', '45px']} lineHeight={['40px', '40px', '53px']}
fontWeight={700} my={['5px', '5px', '10px']}>{title}</Heading>
<Text fontSize={['14px', '14px', '16px']} color='gray.700'>{subtitle}</Text>
</Container>
</Box>
);
}

View File

@@ -1,68 +0,0 @@
import { Box, Flex, Heading, Image, Link } from '@chakra-ui/react';
import { event } from '../lib/gtag';
function getPageSlug() {
const pathname = (typeof window !== 'undefined' ? window : {} as any)?.location?.pathname || '';
return pathname?.replace(/\//g, '');
}
export const CustomAd = () => {
const slug = getPageSlug();
if (slug !== 'devops') {
return null;
}
return (
<Link
href='https://thenewstack.io/ebooks/devops/cloud-native-devops-2019/?utm_source=Roadmap.sh&utm_medium=Banner&utm_campaign=Roadmap+DevOps+Ebook'
id='custom-ad'
pos='fixed'
bottom='15px'
right='20px'
zIndex={999}
display='flex'
maxWidth='330px'
bg='white'
boxShadow='0 1px 4px 1px hsla(0, 0%, 0%, .1)'
_hover={{ textDecoration: 'none' }}
rel="noopener sponsored"
target={'_blank'}
onClick={() => {
event({
category: 'SponsorClick',
action: `TNS EBook Redirect`,
label: `Clicked TNS EBook Link`
});
}}
>
<Image
src='https://i.imgur.com/fEKq19S.png'
alt='Custom Logo'
height={['100px', '100px', '100px', 'auto']}
width='130'
style={{ maxWidth: '130px', border: 'none' }}
/>
<Flex as='span' flexDirection='column' justifyContent='space-between'>
<Box as='span' p='10px'>
<Heading as='span' fontSize='14px' mb='5px' display='block'>Free DevOps eBook</Heading>
<Box display='block' as='span' fontSize='13px' lineHeight={1.5} fontWeight={500} color='gray.500'>
Learn all about doing DevOps the Cloud Native way with this free ebook from our partner, The New Stack
</Box>
</Box>
<Box as='span'
textAlign='center'
fontWeight={600}
fontSize='9px'
letterSpacing='0.5px'
textTransform='uppercase'
padding='5px 10px'
display={'block'}
background='repeating-linear-gradient(-45deg, transparent, transparent 5px, hsla(0, 0%, 0%, .025) 5px, hsla(0, 0%, 0%, .025) 10px) hsla(203, 11%, 95%, .4)'
>
Partner Content
</Box>
</Flex>
</Link>
);
};

View File

@@ -1,46 +0,0 @@
import { Box, Link, Text } from '@chakra-ui/react';
type DimmedMoreProps = {
text: string;
href: string;
};
export function DimmedMore(props: DimmedMoreProps) {
const { text, href } = props;
return (
<Box position='relative' textAlign='center' bottom='20px'>
<Box
opacity={1}
pointerEvents='none'
position='absolute'
bottom={0}
height='200px'
width='100%'
background='linear-gradient(180deg, rgb(255 255 255 / 40%), white)'
/>
<Link
rounded='20px'
display='inline'
bg='green.600'
color='white'
p='7px 20px'
href={href}
fontWeight={800}
fontSize='11px'
textTransform='uppercase'
my='25px'
position='relative'
_hover={{
textDecoration: 'none',
'& .forward-arrow': {
transform: 'translateX(3px)'
}
}}>
{text}
<Text d='inline-block' as='span' transition='200ms' ml='4px' className='forward-arrow'>&rarr;</Text>
</Link>
</Box>
);
}

View File

@@ -1,70 +0,0 @@
import { Box, Container, Flex, Image, Link, Stack, Text } from '@chakra-ui/react';
import siteConfig from '../content/site.json';
import { CustomAd } from './custom-ad';
import React from 'react';
function NavigationLinks() {
return (
<>
<Stack isInline d={['none', 'none', 'flex']} color='gray.400' fontWeight={600} spacing='30px'>
<Link _hover={{ color: 'white' }} href='/roadmaps'>Roadmaps</Link>
<Link _hover={{ color: 'white' }} href='/guides'>Guides</Link>
<Link _hover={{ color: 'white' }} href='/watch'>Videos</Link>
<Link _hover={{ color: 'white' }} href='/about'>About</Link>
<Link _hover={{ color: 'white' }} href={siteConfig.url.youtube} target='_blank'>YouTube</Link>
</Stack>
<Stack d={['flex', 'flex', 'none']} color='gray.400' fontWeight={600} spacing={0}>
<Link py='7px' borderBottomWidth={1} borderBottomColor='gray.800' _hover={{ color: 'white' }}
href='/roadmaps'>Roadmaps</Link>
<Link py='7px' borderBottomWidth={1} borderBottomColor='gray.800' _hover={{ color: 'white' }}
href='/guides'>Guides</Link>
<Link py='7px' borderBottomWidth={1} borderBottomColor='gray.800' _hover={{ color: 'white' }}
href='/watch'>Videos</Link>
<Link py='7px' borderBottomWidth={1} borderBottomColor='gray.800' _hover={{ color: 'white' }}
href='/about'>About</Link>
<Link py='7px' _hover={{ color: 'white' }} target='_blank'
href={siteConfig.url.youtube}>YouTube</Link>
</Stack>
</>
);
}
export function Footer() {
return (
<Box bg='brand.hero' p={['25px 0', '25px 0', '40px 0']}>
<Container maxW='container.md'>
<NavigationLinks />
<Box mt={['40px', '40px', '50px']} mb='40px' maxW='500px'>
<Flex spacing={0} alignItems='center' color='gray.400'>
<Link d='flex' alignItems='center' fontWeight={600} _hover={{ textDecoration: 'none', color: 'white' }}
href='/'>
<Image alt='' h='25px' w='25px' src='/logo.svg' mr='6px' />
roadmap.sh
</Link>
<Text as='span' mx='7px'>by</Text>
<Link bg='blue.500' px='6px' py='2px' rounded='4px' color='white' fontWeight={600} fontSize='13px'
_hover={{ textDecoration: 'none', bg: 'blue.600' }} href={siteConfig.url.twitter}
target='_blank'>@kamranahmedse</Link>
</Flex>
<Text my='15px' fontSize='14px' color='gray.500'>Community created roadmaps, articles, resources and
journeys to help you choose your path and grow in your career.</Text>
<Text fontSize='14px' color='gray.500'>
<Text as='span' mr='10px'>&copy; roadmap.sh</Text>&middot;
<Link href='/about' _hover={{ textDecoration: 'none', color: 'white' }} color='gray.400'
mx='10px'>FAQs</Link>&middot;
<Link href='/terms' _hover={{ textDecoration: 'none', color: 'white' }} color='gray.400'
mx='10px'>Terms</Link>&middot;
<Link href='/privacy' _hover={{ textDecoration: 'none', color: 'white' }} color='gray.400'
mx='10px'>Privacy</Link>
</Text>
</Box>
</Container>
<CustomAd />
</Box>
);
}

View File

@@ -1,117 +0,0 @@
import { useState } from 'react';
import { HamburgerIcon } from '@chakra-ui/icons';
import { Box, CloseButton, Container, Flex, IconButton, Image, Link, Stack, Text } from '@chakra-ui/react';
import RoadmapLogo from '../components/icons/roadmap.svg';
import siteConfig from '../content/site.json';
type MenuLinkProps = {
text: string;
link: string;
};
function MenuLink(props: MenuLinkProps) {
const { text, link } = props;
return <Link
borderBottomWidth={0}
borderBottomColor='gray.500'
_hover={{ textDecoration: 'none', borderBottomColor: 'white' }}
fontWeight={500}
href={link}
>
{text}
</Link>;
}
function DesktopMenuLinks() {
return (
<Stack d={['none', 'flex', 'flex']} shouldWrapChildren isInline spacing='15px' alignItems='center' color='gray.50'
fontSize='15px'>
<MenuLink text={'Roadmaps'} link={'/roadmaps'} />
<MenuLink text={'Guides'} link={'/guides'} />
<MenuLink text={'Videos'} link={'/watch'} />
<Link ml='10px' bgGradient='linear(to-l, yellow.700, red.600)' p='7px 10px' rounded='4px'
_hover={{ textDecoration: 'none', bgGradient: 'linear(to-l, red.800, yellow.700)' }}
fontWeight={500} href={'/signup'}>Subscribe</Link>
</Stack>
);
}
function MobileMenuLinks() {
const [isOpen, setIsOpen] = useState(false);
return (
<>
<IconButton
rounded='5px'
padding={0}
aria-label={'Menu'}
d={['block', 'none', 'none']}
icon={<HamburgerIcon color='white' w='25px' height='25px' />}
color='white'
cursor='pointer'
h='auto'
bg='transparent'
_hover={{ bg: 'transparent' }}
_active={{ bg: 'transparent' }}
_focus={{ bg: 'transparent' }}
onClick={() => setIsOpen(true)}
/>
{isOpen && (
<Stack color='gray.100'
fontSize={['22px', '22px', '22px', '32px']}
alignItems='center'
justifyContent='center'
pos='fixed'
left={0}
right={0}
bottom={0}
top={0}
bg='gray.900'
spacing='12px'
zIndex={999}
>
<Link href='/roadmaps'>Roadmaps</Link>
<Link href='/guides'>Guides</Link>
<Link href='/watch'>Videos</Link>
<Link href='/signup'>Subscribe</Link>
<CloseButton onClick={() => setIsOpen(false)} pos='fixed' top='40px' right='15px' size='lg' />
</Stack>
)}
</>
);
}
type GlobalHeaderProps = {
variant?: 'transparent' | 'solid'
};
export function GlobalHeader(props: GlobalHeaderProps) {
const { variant = 'solid' } = props;
return (
<Box bg={variant === 'solid' ? 'gray.900' : 'transparent'} p='20px 0'>
<Container maxW='container.md'>
<Flex justifyContent='space-between' alignItems='center'>
<Box>
<Link w='100%'
d='flex'
href='/'
alignItems='center'
color='white'
fontWeight={600}
_hover={{ textDecoration: 'none' }}
fontSize='18px'>
<RoadmapLogo style={{ height: '30px', width: '30px', marginRight: '10px' }} />
<Text d={['block', 'none', 'block']} as='span'>roadmap.sh</Text>
</Link>
</Box>
<DesktopMenuLinks />
<MobileMenuLinks />
</Flex>
</Container>
</Box>
);
}

View File

@@ -1,33 +0,0 @@
import { Badge, Box, Heading, Link, Text } from '@chakra-ui/react';
import { GuideType } from '../../lib/guide';
type GuideGridItemProps = {
title: string;
href: string;
subtitle: string;
date: string;
isNew?: boolean;
colorIndex?: number;
type?: GuideType['type'];
};
const bgColorList = [
'gray.700',
'purple.800'
];
export function GuideGridItem(props: GuideGridItemProps) {
const { title, subtitle, date, isNew = false, colorIndex = 0, href, type } = props;
return (
<Box _hover={{ textDecoration: 'none', transform: 'scale(1.02)' }} as={Link} href={href} shadow='xl' p='20px'
rounded='10px' bg={bgColorList[colorIndex] ?? bgColorList[0]} flex={1}>
<Text mb='10px' fontSize='13px' color='gray.400' textTransform='capitalize'>
{isNew && <Badge colorScheme={'green'} mr='10px'>New</Badge>}
{type} Guide
</Text>
<Heading color='white' mb={'6px'} fontSize='20px'>{title}</Heading>
<Text color='gray.300' fontSize='14px'>{subtitle}</Text>
</Box>
);
}

View File

@@ -1,167 +0,0 @@
import NextHead from 'next/head';
import siteConfig from '../content/site.json';
import { RoadmapType } from '../lib/roadmap';
type HelmetProps = {
title?: string;
keywords?: string[];
canonical?: string;
description?: string;
noIndex?: boolean;
roadmap?: RoadmapType;
};
function getRichSnippetJson(roadmap: RoadmapType) {
return {
'@context': 'https://schema.org',
'@type': 'Article',
mainEntityOfPage: {
'@type': 'WebPage',
'@id': `https://roadmap.sh/${roadmap.id}`,
},
headline: roadmap.seo.title,
description: roadmap.seo.description,
image: roadmap.jsonUrl
? `https://roadmap.sh/roadmaps/${roadmap.id}.png`
: undefined,
author: {
'@type': 'Person',
name: 'Kamran Ahmed',
url: 'https://twitter.com/kamranahmedse',
},
publisher: {
'@type': 'Organization',
name: 'roadmap.sh',
logo: {
'@type': 'ImageObject',
url: 'https://roadmap.sh/brand-square.png',
},
},
};
}
const Helmet = (props: HelmetProps) => {
const { roadmap, title, canonical, description, keywords, noIndex = false } = props;
return (
<NextHead>
<meta charSet="UTF-8" />
<title>{title || siteConfig.title}</title>
<meta
name="description"
content={description || siteConfig.description}
/>
<meta name="author" content={siteConfig.author} />
<meta
name="keywords"
content={keywords ? keywords.join(',') : siteConfig.keywords.join(',')}
/>
{noIndex && <meta name="robots" content="noindex" /> }
<meta
name="viewport"
content="width=device-width, user-scalable=yes, initial-scale=1.0, maximum-scale=3.0, minimum-scale=1.0"
/>
{canonical && <link rel="canonical" href={canonical} />}
<meta httpEquiv="Content-Language" content="en" />
<meta property="og:title" content={title || siteConfig.title} />
<meta
property="og:description"
content={description || siteConfig.description}
/>
<meta
property="og:image"
content={`${siteConfig.url.web}${siteConfig.logoSquare}`}
/>
<meta property="og:url" content={siteConfig.url.web} />
<meta property="og:type" content="website" />
<meta
property="article:publisher"
content={`https://facebook.com/${siteConfig.facebook}`}
/>
<meta property="og:site_name" content={siteConfig.name} />
<meta property="article:author" content={siteConfig.author} />
<meta name="twitter:card" content="summary" />
<meta name="twitter:site" content={`@${siteConfig.twitter}`} />
<meta name="twitter:title" content={title || siteConfig.title} />
<meta
name="twitter:description"
content={description || siteConfig.description}
/>
<meta
name="twitter:image"
content={`${siteConfig.url.web}${siteConfig.logoSquare}`}
/>
<meta name="twitter:image:alt" content="roadmap.sh" />
<meta name="mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta
name="apple-mobile-web-app-status-bar-style"
content="black-translucent"
/>
<link
rel="apple-touch-icon"
sizes="180x180"
href="/manifest/apple-touch-icon.png"
/>
<meta name="msapplication-TileColor" content="#101010" />
<meta name="theme-color" content="#848a9a" />
<link rel="manifest" href="/manifest/manifest.json" />
<link
rel="icon"
type="image/png"
sizes="32x32"
href="/manifest/icon32.png"
/>
<link
rel="icon"
type="image/png"
sizes="16x16"
href="/manifest/icon16.png"
/>
<link
rel="shortcut icon"
href="/manifest/favicon.ico"
type="image/x-icon"
/>
<link rel="icon" href="/manifest/favicon.ico" type="image/x-icon" />
{roadmap?.id && (
<script
type="application/ld+json"
dangerouslySetInnerHTML={{
__html: JSON.stringify(getRichSnippetJson(roadmap)),
}}
/>
)}
{/* Global Site Tag (gtag.js) - Google Analytics */}
{process.env.GA_SECRET && (
<>
<script
async
src={`https://www.googletagmanager.com/gtag/js?id=${process.env.GA_SECRET}`}
/>
<script
dangerouslySetInnerHTML={{
__html: `
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', '${process.env.GA_SECRET}');
`,
}}
/>
</>
)}
</NextHead>
);
};
export default Helmet;

View File

@@ -1,67 +0,0 @@
import { RoadmapType } from '../../lib/roadmap';
import { SimpleGrid, Tag } from '@chakra-ui/react';
import { HomeRoadmapItem } from '../roadmap/home-roadmap-item';
type FeaturedRoadmapsListProps = {
roadmaps: RoadmapType[];
title: string;
};
export const upcomingRoadmaps = [
{
type: 'Role Based',
title: 'React Native',
description: 'Step by step guide to become a React Native Developer',
id: 'react-native'
},
{
type: 'Skill Based',
title: 'TypeScript',
description: 'Step by step guide to learn TypeScript in 2022',
id: 'typescript'
},
{
type: 'Skill Based',
title: 'Rust',
description: 'Step by step guide to learn Rust in 2022',
id: 'rust'
},
];
export function FeaturedRoadmapsList(props: FeaturedRoadmapsListProps) {
const { roadmaps, title } = props;
return (
<>
<Tag bg='gray.400' mb={4}>{title}</Tag>
<SimpleGrid columns={[1, 2, 3]} spacing={['10px', '10px', '15px']} mb='40px'>
<>
{roadmaps.map((roadmap: RoadmapType, counter: number) => (
<HomeRoadmapItem
isUpcoming={roadmap.isUpcoming}
url={`/${roadmap.id}`}
key={roadmap.id}
colorIndex={counter}
title={roadmap.featuredTitle === 'Software Design and Architecture' ? 'Software Design' : roadmap.featuredTitle}
isCommunity={roadmap.isCommunity}
isNew={roadmap.isNew}
subtitle={roadmap.featuredDescription}
/>
))}
{upcomingRoadmaps
.filter(roadmap => roadmap.type === title)
.map((roadmap, counter) => (
<HomeRoadmapItem
isUpcoming={true}
url={`/upcoming?id=${roadmap.id}`}
key={`upcoming-${roadmap.id}`}
colorIndex={9}
title={roadmap.title}
subtitle={roadmap.description}
/>
))}
</>
</SimpleGrid>
</>
);
}

View File

@@ -1,3 +0,0 @@
<svg width="29" height="29">
<path d="M23.2 5H5.8a.8.8 0 0 0-.8.8V23.2c0 .44.35.8.8.8h9.3v-7.13h-2.38V13.9h2.38v-2.38c0-2.45 1.55-3.66 3.74-3.66 1.05 0 1.95.08 2.2.11v2.57h-1.5c-1.2 0-1.48.57-1.48 1.4v1.96h2.97l-.6 2.97h-2.37l.05 7.12h5.1a.8.8 0 0 0 .79-.8V5.8a.8.8 0 0 0-.8-.79"></path>
</svg>

Before

Width:  |  Height:  |  Size: 298 B

View File

@@ -1,3 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor">
<path d="M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"/>
</svg>

Before

Width:  |  Height:  |  Size: 841 B

View File

@@ -1,4 +0,0 @@
<svg viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">
<path fill-rule="evenodd"
d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path>
</svg>

Before

Width:  |  Height:  |  Size: 474 B

View File

@@ -1,4 +0,0 @@
<svg width="30" height="30" viewBox="0 0 283 283" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M0 39C0 17.4609 17.4609 0 39 0H244C265.539 0 283 17.4609 283 39V244C283 265.539 265.539 283 244 283H39C17.4609 283 0 265.539 0 244V39Z" fill="black"></path>
<path d="M121.215 210.72C119.348 211.28 116.361 211.84 112.255 212.4C108.335 212.96 104.228 213.24 99.9347 213.24C95.828 213.24 92.0947 212.96 88.7347 212.4C85.5614 211.84 82.8547 210.72 80.6147 209.04C78.3747 207.36 76.6014 205.12 75.2947 202.32C74.1747 199.333 73.6147 195.507 73.6147 190.84V106.84C73.6147 102.547 74.3614 98.9067 75.8547 95.92C77.5347 92.7467 79.868 89.9467 82.8547 87.52C85.8414 85.0933 89.4814 82.9467 93.7747 81.08C98.2547 79.0267 103.015 77.2533 108.055 75.76C113.095 74.2667 118.321 73.1467 123.735 72.4C129.148 71.4667 134.561 71 139.975 71C148.935 71 156.028 72.7733 161.255 76.32C166.481 79.68 169.095 85.28 169.095 93.12C169.095 95.7333 168.721 98.3467 167.975 100.96C167.228 103.387 166.295 105.627 165.175 107.68C161.255 107.68 157.241 107.867 153.135 108.24C149.028 108.613 145.015 109.173 141.095 109.92C137.175 110.667 133.441 111.507 129.895 112.44C126.535 113.187 123.641 114.12 121.215 115.24V210.72ZM166.387 188.32C166.387 180.48 168.813 173.947 173.667 168.72C178.52 163.493 185.147 160.88 193.547 160.88C201.947 160.88 208.573 163.493 213.427 168.72C218.28 173.947 220.707 180.48 220.707 188.32C220.707 196.16 218.28 202.693 213.427 207.92C208.573 213.147 201.947 215.76 193.547 215.76C185.147 215.76 178.52 213.147 173.667 207.92C168.813 202.693 166.387 196.16 166.387 188.32Z" fill="white"></path>
</svg>

Before

Width:  |  Height:  |  Size: 1.6 KiB

View File

@@ -1 +0,0 @@
<svg fill="currentColor" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M22 18v-7h-9v-5h3v-6h-8v6h3v5h-9v7h-2v6h6v-6h-2v-5h7v5h-2v6h6v-6h-2v-5h7v5h-2v6h6v-6z"/></svg>

Before

Width:  |  Height:  |  Size: 184 B

View File

@@ -1,3 +0,0 @@
<svg width="29" height="29" fill="currentColor">
<path d="M22.05 7.54a4.47 4.47 0 0 0-3.3-1.46 4.53 4.53 0 0 0-4.53 4.53c0 .35.04.7.08 1.05A12.9 12.9 0 0 1 5 6.89a5.1 5.1 0 0 0-.65 2.26c.03 1.6.83 2.99 2.02 3.79a4.3 4.3 0 0 1-2.02-.57v.08a4.55 4.55 0 0 0 3.63 4.44c-.4.08-.8.13-1.21.16l-.81-.08a4.54 4.54 0 0 0 4.2 3.15 9.56 9.56 0 0 1-5.66 1.94l-1.05-.08c2 1.27 4.38 2.02 6.94 2.02 8.3 0 12.86-6.9 12.84-12.85.02-.24 0-.43 0-.65a8.68 8.68 0 0 0 2.26-2.34c-.82.38-1.7.62-2.6.72a4.37 4.37 0 0 0 1.95-2.51c-.84.53-1.81.9-2.83 1.13z"></path>
</svg>

Before

Width:  |  Height:  |  Size: 550 B

View File

@@ -1,21 +0,0 @@
export function VideoIcon(props: any) {
return (
<svg
stroke='currentColor'
fill='currentColor'
strokeWidth='0'
viewBox='0 0 24 24'
height='1em'
width='1em'
xmlns='http://www.w3.org/2000/svg'
{...props}
>
<g>
<path fill='none' d='M0 0h24v24H0z' />
<path
d='M3 3.993C3 3.445 3.445 3 3.993 3h16.014c.548 0 .993.445.993.993v16.014a.994.994 0 0 1-.993.993H3.993A.994.994 0 0 1 3 20.007V3.993zm7.622 4.422a.4.4 0 0 0-.622.332v6.506a.4.4 0 0 0 .622.332l4.879-3.252a.4.4 0 0 0 0-.666l-4.88-3.252z'
/>
</g>
</svg>
);
}

View File

@@ -1,3 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill='currentColor'>
<path d="M19.615 3.184c-3.604-.246-11.631-.245-15.23 0-3.897.266-4.356 2.62-4.385 8.816.029 6.185.484 8.549 4.385 8.816 3.6.245 11.626.246 15.23 0 3.897-.266 4.356-2.62 4.385-8.816-.029-6.185-.484-8.549-4.385-8.816zm-10.615 12.816v-8l8 3.993-8 4.007z"/>
</svg>

Before

Width:  |  Height:  |  Size: 369 B

View File

@@ -1,58 +0,0 @@
import React from 'react';
import { Badge, Flex, Link, Text } from '@chakra-ui/react';
type LinksListItemProps = {
href: string;
title: string;
subtitle: string;
badgeText?: string;
target?: string;
icon?: React.ReactChild;
hideSubtitleOnMobile?: boolean;
};
export function LinksListItem(props: LinksListItemProps) {
const { title, subtitle, badgeText, icon, hideSubtitleOnMobile = false, href, target } = props;
return (
<Link
target={target || '_self'}
href={href}
fontSize={['14px', '14px', '15px']}
py='9px'
d='flex'
flexDirection={['column', 'row', 'row']}
fontWeight={500}
color='gray.600'
alignItems={['flex-start', 'center']}
justifyContent={'space-between'}
sx={{
'@media (hover: none)': {
'&:hover': {
'& .list-item-title': {
transform: 'none'
}
}
}
}}
_hover={{
textDecoration: 'none',
color: 'blue.400',
'& .list-item-title': {
transform: 'translateX(10px)'
}
}}
isTruncated
maxWidth='100%'
>
<Flex alignItems='center' className='list-item-title' transition={'200ms'}>
{icon}
<Text maxWidth={'345px'} isTruncated as='span'>{title}</Text>
{badgeText &&
<Badge pos='relative' top='1px' variant='subtle' colorScheme='green' ml='10px'>{badgeText}</Badge>}
</Flex>
<Text d={[hideSubtitleOnMobile ? 'none' : 'inline', 'inline']} mt={['3px', 0]} as='span'
fontSize={['11px', '11px', '12px']} color='gray.500'>{subtitle}</Text>
</Link>
);
}

View File

@@ -1,21 +0,0 @@
import React from 'react';
import { StackDivider, VStack } from '@chakra-ui/react';
type LinksListProps = {
children: React.ReactNode
};
export function LinksList(props: LinksListProps) {
const { children } = props;
return (
<VStack
rounded='5px'
divider={<StackDivider borderColor='gray.200' />}
spacing={0}
align='stretch'
>
{children}
</VStack>
);
}

View File

@@ -1,20 +0,0 @@
import React from 'react';
// @ts-ignore
import { MDXProvider } from '@mdx-js/react';
import { ChakraProvider } from '@chakra-ui/react';
import MdxComponents from './mdx-components';
import { roadmapTheme } from '../../styles/theme';
type MdRendererType = {
children: React.ReactNode
};
export default function MdRenderer(props: MdRendererType) {
return (
<ChakraProvider theme={roadmapTheme} resetCSS>
<MDXProvider components={MdxComponents}>
{props.children}
</MDXProvider>
</ChakraProvider>
);
};

View File

@@ -1,37 +0,0 @@
import React from 'react';
import styled from 'styled-components';
type EnrichedLinkProps = {
href: string;
children: React.ReactNode;
};
const Link = styled.a`
font-weight: 600;
text-decoration: underline;
`;
const EnrichedLink = (props: EnrichedLinkProps) => {
// Is external URL or is a media URL
const isExternalUrl = /(^http(s)?:\/\/)|(\.(png|svg|jpeg|jpg)$)/.test(
props.href
);
const linkProps: Record<string, string> = {
target: '_self',
...(isExternalUrl
? {
rel: 'nofollow',
target: '_blank',
}
: {}),
};
return (
<Link href={props.href} {...linkProps}>
{props.children}
</Link>
);
};
export default EnrichedLink;

View File

@@ -1,53 +0,0 @@
import React from 'react';
import { Link, Text, Badge } from '@chakra-ui/react';
type BadgeLinkType = {
target: string;
badgeText: string;
href: string;
colorScheme?: string;
children: React.ReactNode;
};
export function BadgeLink(props: BadgeLinkType) {
const {
target = '_blank',
colorScheme = 'purple',
badgeText,
href,
children,
} = props;
// Is external URL or is a media URL
const isExternalUrl = /(^http(s)?:\/\/)|(\.(png|svg|jpeg|jpg)$)/.test(
props.href
);
const linkProps: Record<string, string> = {
...(isExternalUrl
? {
rel: 'nofollow',
}
: {}),
};
return (
<Text mb={'0px'}>
<Link
fontSize="14px"
color="blue.700"
fontWeight={500}
textDecoration="none"
href={href}
target={target}
_hover={{ textDecoration: 'none', color: 'purple.400' }}
{...linkProps}
>
<Badge fontSize="11px" mr="7px" colorScheme={colorScheme}>
{badgeText}
</Badge>
{children}
</Link>
</Text>
);
}

View File

@@ -1,27 +0,0 @@
import styled from 'styled-components';
const BlockQuote = styled.blockquote`
padding: 16px 20px;
position: relative;
background: #e8e8e8;
border-radius: 5px;
margin-bottom: 18px;
h1, h2, h3, h4, h5, h6 {
margin-top: 0;
}
p + h4 {
margin-top: 15px;
}
p {
margin: 0;
& + p {
margin-top: 10px;
}
}
`;
export default BlockQuote;

View File

@@ -1,10 +0,0 @@
import React from 'react';
import { Code as ChakraCode } from '@chakra-ui/react';
type CodeType = {
children: React.ReactNode;
}
export default function Code(props: CodeType) {
return <ChakraCode bg='blue.500'>{props.children}</ChakraCode>;
}

View File

@@ -1,22 +0,0 @@
import { Box, Flex, Heading, Text } from '@chakra-ui/react';
import TreeIcon from '../../icons/tree.svg';
type DedicatedRoadmapProps = {
href: string;
title: string;
description: string;
};
export function DedicatedRoadmap(props: DedicatedRoadmapProps) {
const { href, title, description } = props;
return (
<Flex as={'a'} target='_blank' href={ href } p={5} px={5} mt={6} rounded='md' alignItems='center' _hover={{ bg: 'yellow.400'}} bg='yellow.300'>
<Box d={['none', 'none', 'none', 'block', 'block']} mr={4} height='32px' w='32px' as={TreeIcon} color='gray.900' />
<Box as='span'>
<Heading fontSize='lg' as={'h4'} mb='2px' color='gray.900'>{ title }</Heading>
<Text color='gray.700' as='span' fontSize='md'>{ description }</Text>
</Box>
</Flex>
);
}

View File

@@ -1,81 +0,0 @@
import React from 'react';
import styled from 'styled-components';
import LinkIcon from 'components/icons/link.svg';
const linkify = (Component: React.FunctionComponent<any>) => {
return function EnrichedHeading(props: { children: string }): React.ReactNode {
const text = props.children;
const id = text?.toLowerCase && text
.toLowerCase()
.replace(/[^\x00-\x7F]/g, '')
.replace(/\s+/g, '-')
.replace(/[?!]/g, '');
return (
<Component id={id}>
<HeaderLink href={`#${id}`}>
<LinkIcon />
</HeaderLink>
{props.children}
</Component>
);
};
};
const HeaderLink = styled.a`
position: absolute;
top: 0;
left: -25px;
width: 25px;
display: none;
height: 100%;
align-items: center;
justify-content: flex-start;
`;
const H1 = styled.h1`
position: relative;
font-size: 32px;
line-height: 40px;
font-weight: 700;
margin: 20px 0 10px !important;
&:hover ${HeaderLink} {
display: flex;
}
`;
const H2 = styled(H1).attrs({ as: 'h2' })`
font-size: 30px;
`;
const H3 = styled(H1).attrs({ as: 'h3' })`
margin: 22px 0 8px;
font-size: 28px;
`;
const H4 = styled(H1).attrs({ as: 'h4' })`
margin: 18px 0 8px;
font-size: 24px;
`;
const H5 = styled(H1).attrs({ as: 'h5' })`
margin: 14px 0 8px;
font-size: 18px;
`;
const H6 = styled(H1).attrs({ as: 'h6' })`
margin: 12px 0 8px;
font-size: 18px;
`;
const Headings = {
h1: H1,
h2: H2,
h3: H3,
h4: H4,
h5: H5,
h6: H6
};
export default Headings;

View File

@@ -1,47 +0,0 @@
import styled from 'styled-components';
type IFrameProps = {
title: string;
src: string;
};
const AspectRatioBox = styled.div`
position: relative;
max-width: 100%;
margin-bottom: 18px;
&:before {
height: 0;
content: "";
display: block;
padding-bottom: 50%;
}
& > iframe {
overflow: hidden;
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
display: flex;
justify-content: center;
align-items: center;
width: 100%;
height: 100%;
}
`;
export default function IFrame(props: IFrameProps) {
return (
<AspectRatioBox>
<iframe
frameBorder={0}
title={props.title}
src={props.src}
allow={'accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture'}
allowFullScreen
/>
</AspectRatioBox>
);
}

View File

@@ -1,7 +0,0 @@
import styled from 'styled-components';
export const Img = styled.img`
max-width: 100%;
margin: 25px auto;
display: block;
`;

View File

@@ -1,34 +0,0 @@
import { Code } from '@chakra-ui/react';
import { P } from './p';
import Headings from './heading';
import { Pre } from './pre';
import BlockQuote from './blockquote';
import { Table } from './table';
import IFrame from './iframe';
import { Img } from './img';
import EnrichedLink from './a';
import { BadgeLink } from './badge-link';
import { Li, Ul } from './ul';
import PremiumBlock from './premium-block';
import { ResourceGroupTitle } from './resource-group-title';
import { DedicatedRoadmap } from './dedicated-roadmap';
const MdxComponents = {
p: P,
...Headings,
pre: Pre,
blockquote: BlockQuote,
a: EnrichedLink,
DedicatedRoadmap,
table: Table,
iframe: IFrame,
img: Img,
code: Code,
BadgeLink: BadgeLink,
ResourceGroupTitle: ResourceGroupTitle,
PremiumBlock: PremiumBlock,
ul: Ul,
li: Li
};
export default MdxComponents;

View File

@@ -1,14 +0,0 @@
import React from 'react';
import { Text } from '@chakra-ui/react';
import styled from 'styled-components';
type EnrichedTextType = {
children: React.ReactNode;
}
export const P = styled.p`
line-height: 27px;
font-size: 16px;
color: black;
margin-bottom: 18px;
`;

View File

@@ -1,12 +0,0 @@
import styled from 'styled-components';
export const Pre = styled.pre`
margin: 25px -25px 25px -25px !important;
padding: 20px 25px !important;
border-radius: 10px;
line-height: 1.5 !important;
code {
background: transparent;
}
`;

View File

@@ -1,19 +0,0 @@
import React from 'react';
import { Box, Button, Heading, Text } from '@chakra-ui/react';
import { LockIcon } from '@chakra-ui/icons';
type PremiumBlockProps = {
title: string;
description: string;
};
export default function PremiumBlock(props: PremiumBlockProps) {
return (
<Box p='40px' textAlign='center' rounded='5px' mb='18px' bg='gray.50' borderWidth={1}>
<LockIcon color='gray.300' height='45px' w='45px' mb='18px' />
<Heading as='h3' fontSize='30px' mb='10px'>{props.title}</Heading>
<Text mb='18px'>{props.description}</Text>
<Button colorScheme='green'>Become a Member</Button>
</Box>
);
}

View File

@@ -1,12 +0,0 @@
import React from 'react';
import { Heading } from '@chakra-ui/react';
type ResourceGroupTitleProps = {
children: React.ReactNode;
};
export function ResourceGroupTitle(props: ResourceGroupTitleProps) {
const { children } = props;
return <Heading mt='20px' color='gray.800' fontSize='14px' pb='5px' borderBottomWidth={1} textTransform='uppercase' as="h2" mb={'10px'}>{children}</Heading>;
}

View File

@@ -1,25 +0,0 @@
import styled from 'styled-components';
export const Table = styled.table`
border-collapse: separate;
width: 100%;
border-spacing: 0;
margin: 20px 0;
th {
color: #666;
font-size: 12px;
font-weight: 400;
background: #FAFAFA;
text-transform: uppercase;
height: 40px;
vertical-align: middle;
padding: 5px 10px;
}
td {
font-size: 14px;
padding: 10px;
border-bottom: 1px solid #EAEAEA;
}
`;

View File

@@ -1,16 +0,0 @@
import React from 'react';
import { UnorderedList } from '@chakra-ui/react';
import styled from 'styled-components';
export const Ul = styled.ul`
margin-left: 40px;
margin-bottom: 18px;
ul {
margin-top: 18px;
}
`;
export const Li = styled.li`
margin-bottom: 7px;
`;

View File

@@ -1,29 +0,0 @@
import { Box, Container, Heading, Link, Text } from '@chakra-ui/react';
export function OpensourceBanner() {
return (
<Box bg='white' borderTopWidth={1} py={['45px', '45px', '70px']} textAlign='center'>
<Container maxW='container.sm'>
<Heading fontSize={['25px', '25px', '35px']} mb={['10px', '10px', '20px']}>Open Source</Heading>
<Text lineHeight='26px' fontSize={['15px', '15px', '16px']} mb='20px'>The project is OpenSource,&nbsp;
<Link
_hover={{ textDecoration: 'none' }}
href='https://github.com/search?o=desc&q=stars%3A%3E100000&s=stars&type=Repositories'
target='_blank'
borderBottomWidth={1}
fontWeight={600}
>6th most starred project on GitHub</Link> and is visited by hundreds of thousands of
developers every month.</Text>
<iframe
src='https://ghbtns.com/github-btn.html?user=kamranahmedse&repo=developer-roadmap&type=star&count=true&size=large'
frameBorder='0'
scrolling='0'
width='170'
height='30'
style={{ margin: 'auto' }}
title='GitHub'
/>
</Container>
</Box>
);
}

View File

@@ -1,37 +0,0 @@
import { Box, Container, Heading, Text } from '@chakra-ui/react';
import React from 'react';
type PageHeaderProps = {
title: string;
subtitle: string;
children?: React.ReactNode;
beforeTitle?: React.ReactNode;
};
export function PageHeader(props: PageHeaderProps) {
const { title, subtitle, children, beforeTitle = null } = props;
return (
<Box pt={['25px', '20px', '45px']} pb={['20px', '15px', '30px']} borderBottomWidth={1} mb='30px'>
<Container maxW='container.md' position='relative'>
{beforeTitle}
<Heading
as='h1'
color='black'
fontSize={['28px', '33px', '40px']}
fontWeight={700}
mb={['2px', '2px', '5px']}
>
{title}
</Heading>
<Text fontSize={['13px', '14px', '15px']}>{subtitle}</Text>
</Container>
{children && (
<Container maxW='container.md'>
{children}
</Container>
)}
</Box>
);
}

View File

@@ -1,16 +0,0 @@
import React from 'react';
import { Box } from '@chakra-ui/react';
type PageWrapperProps = {
children: React.ReactNode;
}
export function PageWrapper(props: PageWrapperProps) {
const { children } = props;
return (
<Box bgColor='brand.bg' bgImage='url(/bg.jpg)' bgRepeat='no-repeat' bgSize='100%' w='100%' minH='100vh'>
{ children }
</Box>
);
}

View File

@@ -1,80 +0,0 @@
import { Badge, Box, Button, Container, Link, Stack, Text } from '@chakra-ui/react';
import { RoadmapType } from '../lib/roadmap';
type RelatedRoadmapsProps = {
roadmaps: RoadmapType[];
};
const colorsList = [
'gray.700',
'purple.700',
'blue.700',
'red.700',
'green.700',
'teal.700',
'yellow.700',
'cyan.700',
'pink.700'
];
const roadmapTitleMapping: Record<string, string> = {
"Software Design and Architecture": "Software Design",
}
export function RelatedRoadmaps(props: RelatedRoadmapsProps) {
const { roadmaps } = props;
if (!roadmaps.length) {
return null;
}
return (
<Box borderTopWidth={1} bgColor='gray.50' pb='35px' pt='5px'>
<Container maxW='container.md'>
<Box display='flex' position='relative' top='-23px' alignItems='center' justifyContent='space-between'>
<Text textAlign='center' borderWidth={1} bg='white' p='4px' fontWeight='bold' rounded='md' px={'15px'}>
Related Roadmaps
</Text>
<Button as={Link} variant='outline' bg='white' size='sm' _hover={{ textDecoration: 'none', bg: 'gray.100' }}
href='/'>
<Text as='span' display={['inline', 'none', 'none']}>More &rarr;</Text>
<Text as='span' display={['none', 'inline', 'inline']}>All Roadmaps &rarr;</Text>
</Button>
</Box>
<Stack spacing='5px'>
{roadmaps.map((roadmap, counter) => (
<Link
href={`/${roadmap.id}`}
key={roadmap.id}
borderWidth={1}
borderColor='blue.100'
py='7px'
px='14px'
rounded='md'
bg='white'
textDecoration={'none'}
_hover={{ bg: 'gray.100', borderColor: 'blue.200' }}
bgGradient='linear(to-r, white, gray.50)'
display='flex'
alignItems='center'
flexDir={['column', 'row', 'row']}
>
<Text
color={colorsList[counter]}
as='span'
fontWeight='bold'
display={['inline-block']}
minWidth='150px'
mr='10px'
>
{roadmapTitleMapping[roadmap.featuredTitle] || roadmap.featuredTitle}
</Text>
<Text as='span' display={['block', 'inline']} isTruncated maxWidth='100%' fontSize={['sm', 'sm', 'md']} color='gray.700'>{roadmap.featuredDescription}</Text>
</Link>
))}
</Stack>
</Container>
</Box>
);
}

View File

@@ -1,117 +0,0 @@
import { Box, Button, Flex, Text } from '@chakra-ui/react';
import { RemoveScroll } from 'react-remove-scroll';
import { RoadmapType } from '../../lib/roadmap';
import RoadmapGroup from '../../pages/[roadmap]/[group]';
import { CheckIcon, CloseIcon, RepeatIcon } from '@chakra-ui/icons';
import { queryGroupElementsById } from '../../lib/renderer';
type ContentDrawerProps = {
roadmap: RoadmapType;
groupId: string;
onClose?: () => void;
};
export function ContentDrawer(props: ContentDrawerProps) {
const { roadmap, groupId, onClose = () => null } = props;
if (!groupId) {
return null;
}
const isDone = localStorage.getItem(groupId) === 'done';
return (
<Box zIndex={99999} pos="relative">
<Box
onClick={onClose}
pos="fixed"
top={0}
left={0}
right={0}
bottom={0}
bg="black"
opacity={0.4}
/>
<RemoveScroll allowPinchZoom>
<Box
p="0px 30px 30px"
position="fixed"
w={['100%', '60%', '40%']}
bg="white"
top={0}
right={0}
bottom={0}
borderLeftWidth={'1px'}
overflowY="scroll"
>
<Flex
mt="20px"
justifyContent="space-between"
alignItems="center"
zIndex={1}
>
{!isDone && (
<Button
onClick={() => {
localStorage.setItem(groupId, 'done');
queryGroupElementsById(groupId).forEach((item) =>
item?.classList?.add('done')
);
onClose();
}}
colorScheme="green"
leftIcon={<CheckIcon />}
size="xs"
iconSpacing={0}
>
<Text
as="span"
d={['block', 'none', 'none', 'block']}
ml="10px"
>
Mark as Done
</Text>
</Button>
)}
{isDone && (
<Button
onClick={() => {
localStorage.removeItem(groupId);
queryGroupElementsById(groupId).forEach((item) =>
item?.classList?.remove('done')
);
onClose();
}}
colorScheme="red"
leftIcon={<RepeatIcon />}
size="xs"
iconSpacing={0}
>
<Text
as="span"
d={['block', 'none', 'none', 'block']}
ml="10px"
>
Mark as Pending
</Text>
</Button>
)}
<Button
onClick={onClose}
colorScheme="yellow"
ml="5px"
leftIcon={<CloseIcon width="8px" />}
iconSpacing={0}
size="xs"
>
<Text as="span" d={['none', 'none', 'none', 'block']} ml="10px">
Close
</Text>
</Button>
</Flex>
<RoadmapGroup isOutlet roadmap={roadmap} group={groupId} />
</Box>
</RemoveScroll>
</Box>
);
}

View File

@@ -1,39 +0,0 @@
import React from 'react';
import { Box, Button, Divider, Link, Text } from '@chakra-ui/react';
type EditContentPageLinkProps = {
href: string;
};
export function EditContentPageLink(props: EditContentPageLinkProps) {
const { href } = props;
return (
<Box my='30px'>
<Divider mb="15px" orientation="horizontal" />
<Text
lineHeight="23px"
fontWeight={500}
fontSize="14px"
color="gray.500"
mb="10px"
>
This page is a work in progress. Help us by writing a small
introduction to the topic and suggesting a few links to read more
about this topic.
</Text>
<Button
size="sm"
py="20px"
as={Link}
href={href}
target="_blank"
isFullWidth
colorScheme={'gray'}
_hover={{ textDecoration: 'none', bg: 'gray.200' }}
>
Edit this Page
</Button>
</Box>
);
}

View File

@@ -1,121 +0,0 @@
import { Badge, Box, Flex, Heading, Link, Text, Tooltip } from '@chakra-ui/react';
import { InfoIcon } from '@chakra-ui/icons';
type RoadmapGridItemProps = {
title: string;
subtitle: string;
isCommunity?: boolean;
isUpcoming?: boolean;
colorIndex?: number;
isNew?: boolean;
url: string;
};
const bgColorList = [
'red.100',
'yellow.100',
'green.200',
'teal.200',
'blue.200',
'red.200',
'gray.200',
'teal.200',
'yellow.100',
'green.200',
'red.200'
];
export function HomeRoadmapItem(props: RoadmapGridItemProps) {
const {
title,
subtitle,
isCommunity,
isNew,
colorIndex = 0,
url,
isUpcoming
} = props;
return (
<Box
position='relative'
as={Link}
href={url}
_hover={{
textDecoration: 'none',
bg: 'rgba(255,255,255,.10)'
}}
sx={{
// On mobile devices, don't change the scale
'@media (hover: none)': {
'&:hover': {
bg: 'rgba(255,255,255,.05)'
}
}
}}
flex={1}
shadow='2xl'
className={'home-roadmap-item'}
bg={'rgba(255,255,255,.05)'}
color='white'
p='15px'
rounded='10px'
pos='relative'
>
{isCommunity && (
<Tooltip label={'Community contribution'} hasArrow placement='top'>
<InfoIcon opacity={0.5} position='absolute' top='10px' right='10px' />
</Tooltip>
)}
<Heading
fontSize={['17px', '17px', '22px']}
color={bgColorList[colorIndex]}
mb='5px'
d='flex'
alignItems='center'
>
{title}
{ isNew && <Badge position='absolute' bottom={0} right={0} colorScheme='yellow' ml='10px'>New</Badge> }
</Heading>
<Text color='gray.200' fontSize={['13px']}>
{subtitle}
</Text>
{isUpcoming && (
<Flex
alignItems='center'
justifyContent='center'
pos='absolute'
left={0}
right={0}
top={0}
bottom={0}
rounded='10px'
>
<Text
color='white'
bg='gray.600'
zIndex={1}
fontWeight={600}
p={'5px 10px'}
rounded='10px'
>
Upcoming
</Text>
<Box
bg={'black'}
pos='absolute'
top={0}
left={0}
right={0}
bottom={0}
rounded={'10px'}
opacity={0.5}
/>
</Flex>
)}
</Box>
);
}

View File

@@ -1,50 +0,0 @@
import { Badge, Link, Text } from '@chakra-ui/react';
import siteConfig from '../../content/site.json';
import { event } from '../../lib/gtag';
import React from 'react';
export function NewAlertBanner() {
return (
<Text
_hover={{
textDecoration: 'none',
color: 'blue.700',
'& .new-badge': { bg: 'blue.700' },
}}
as={Link}
href={siteConfig.url.youtube}
d="block"
target="_blank"
color="red.700"
fontSize="sm"
mb="10px"
fontWeight={500}
onClick={() =>
event({
category: 'Subscription',
action: 'Clicked the YouTube banner',
label: 'YouTube Alert on Roadmap',
})
}
>
<Badge
transition={'all 300ms'}
className="new-badge"
mr="7px"
colorScheme="red"
variant="solid"
>
New
</Badge>
<Text textDecoration="underline" as="span" d={['none', 'inline']}>
Roadmap topics to be covered on our YouTube Channel
</Text>
<Text textDecoration="underline" as="span" d={['inline', 'none']}>
Topic videos being made on YouTube
</Text>
<Text as="span" ml="5px">
&raquo;
</Text>
</Text>
);
}

View File

@@ -1,26 +0,0 @@
import { RoadmapType } from '../../lib/roadmap';
import { Container, Heading, Link, Text } from '@chakra-ui/react';
import siteConfig from '../../content/site.json';
type RoadmapProps = {
roadmap: RoadmapType;
};
export function RoadmapError(props: RoadmapProps) {
const { roadmap } = props;
return (
<Container
bg={'red.600'}
maxW={'container.md'}
position="relative"
mt="50px"
p='20px'
rounded='5px'
color='white'
>
<Heading mb='4px' size='md'>Oops! There&apos;s an error</Heading>
<Text>Try refreshing or <Link target='_blank' fontWeight={700} textDecoration={'underline'} fontSize='14px' href={siteConfig.url.issue}>report a bug</Link> and use the <Link fontWeight={700} textDecoration={'underline'} href={`/roadmaps/${roadmap.id}.png`}>non-interactive version</Link></Text>
</Container>
);
}

View File

@@ -1,89 +0,0 @@
import { Badge, Box, Flex, Heading, Link, Text, Tooltip } from '@chakra-ui/react';
import { InfoIcon } from '@chakra-ui/icons';
type RoadmapGridItemProps = {
title: string;
subtitle: string;
href: string;
isCommunity?: boolean;
isUpcoming?: boolean;
colorIndex?: number;
};
const bgColorList = [
'gray.900',
'purple.900',
'blue.900',
'red.900',
'green.900',
'teal.900',
'yellow.900',
'cyan.900',
'pink.900',
'gray.800',
'purple.800',
'blue.800',
'red.800',
'green.800',
'teal.800',
'yellow.800',
'cyan.800',
'pink.800',
'gray.700',
'purple.700',
'blue.700',
'red.700',
'green.700',
'teal.700',
'yellow.700',
'cyan.700',
'pink.700',
'gray.600',
'purple.600',
'blue.600',
'red.600',
'green.600',
'teal.600',
'yellow.600',
'cyan.600',
'pink.600'
];
export function RoadmapGridItem(props: RoadmapGridItemProps) {
const { title, subtitle, isCommunity = false, isUpcoming = false, colorIndex = 0, href = '/' } = props;
return (
<Box _hover={{ textDecoration: 'none', transform: 'scale(1.02)' }} as={Link} href={href} shadow='xl' p='20px'
rounded='10px' bg={bgColorList[colorIndex] ?? bgColorList[0]} flex={1} pos='relative'>
{isCommunity && (
<Tooltip label={'Community contribution'} hasArrow placement='top'>
<InfoIcon opacity={0.5} color='gray.100' position='absolute' top='10px' right='10px' />
</Tooltip>
)}
<Heading color='white' mb={'6px'} fontSize='20px'>{title}</Heading>
<Text color='gray.300' fontSize='14px'>{subtitle}</Text>
{isUpcoming && (
<Flex
alignItems='center'
justifyContent='center'
pos='absolute'
left={0}
right={0}
top={0}
bottom={0}
rounded='10px'
>
<Text color='white' bg='yellow.900' zIndex={1} fontWeight={600} p={'5px 10px'}
rounded='10px'>Upcoming</Text>
<Box bg={'black'} pos='absolute' top={0} left={0} right={0} bottom={0} rounded={'10px'} opacity={0.5} />
</Flex>
)}
</Box>
);
}

View File

@@ -1,20 +0,0 @@
import { Container, Spinner } from '@chakra-ui/react';
export function RoadmapLoader() {
return (
<Container
maxW={'container.md'}
position="relative"
mt="60px"
textAlign="center"
>
<Spinner
thickness="7px"
speed="0.65s"
emptyColor="gray.200"
color="gray.500"
size="xl"
/>
</Container>
);
}

View File

@@ -1,220 +0,0 @@
import siteConfig from '../../content/site.json';
import { isInteractiveRoadmap, RoadmapType } from '../../lib/roadmap';
import { NewAlertBanner } from './new-alert-banner';
import {
Badge,
Box,
Button,
Container,
Flex,
Heading,
Input,
Link,
Modal,
ModalBody,
ModalCloseButton,
ModalContent,
ModalOverlay,
Stack,
Text,
useDisclosure
} from '@chakra-ui/react';
import { AtSignIcon, ChatIcon, DownloadIcon } from '@chakra-ui/icons';
import React from 'react';
import { SIGNUP_EMAIL_INPUT_NAME, SIGNUP_FORM_ACTION } from '../../pages/signup';
import { event } from '../../lib/gtag';
type RoadmapPageHeaderType = {
roadmap: RoadmapType;
};
function RoadmapDownloader({ roadmapTitle }: { roadmapTitle: string }) {
const { isOpen, onOpen, onClose } = useDisclosure();
const initialRef = React.useRef(null);
return (
<>
<Button
onClick={(e) => {
event({
category: 'Subscription',
action: `Clicked Download ${roadmapTitle} Roadmap`,
label: `Download ${roadmapTitle} Roadmap Button`
});
onOpen();
}}
size='xs'
py='14px'
px='10px'
leftIcon={<DownloadIcon />}
display={['none', 'flex']}
colorScheme='yellow'
variant='solid'
_hover={{ textDecoration: 'none' }}
_focus={{ boxShadow: 'none' }}
>
Download
</Button>
<Modal initialFocusRef={initialRef} closeOnOverlayClick={true} isOpen={isOpen} onClose={onClose} isCentered motionPreset='none'>
<ModalOverlay />
<ModalContent>
<ModalCloseButton />
<ModalBody p={6}>
<Heading mb='5px' fontSize='2xl'>Download Roadmap</Heading>
<Text fontSize={'md'} color='gray.700'>Enter your email below to receive the download link.</Text>
<form action={SIGNUP_FORM_ACTION} method='post' target='_blank' onSubmit={() => {
event({
category: 'Subscription',
action: `Submitted Download ${roadmapTitle} Roadmap Email`,
label: `PDF / Subscribe ${roadmapTitle} Roadmap`
});
onClose();
}}>
<Input required ref={initialRef} size='md' my='10px' type='email' placeholder='Email address' name={SIGNUP_EMAIL_INPUT_NAME} />
<Button type='submit' colorScheme='green' size='md' width={'full'}>Send Link</Button>
</form>
</ModalBody>
</ModalContent>
</Modal>
</>
);
}
function RoadmapSubscriber({ roadmapTitle }: { roadmapTitle: string }) {
const { isOpen, onOpen, onClose } = useDisclosure();
const initialRef = React.useRef(null);
return (
<>
<Button
onClick={(e) => {
event({
category: 'Subscription',
action: `Clicked Subscribe ${roadmapTitle} Roadmap`,
label: `Subscribe ${roadmapTitle} Roadmap Button`
});
onOpen();
}}
size='xs'
py='14px'
px='10px'
leftIcon={<AtSignIcon />}
display={'flex'}
colorScheme='yellow'
variant='solid'
_hover={{ textDecoration: 'none' }}
_focus={{ boxShadow: 'none' }}
>
Subscribe
</Button>
<Modal initialFocusRef={initialRef} closeOnOverlayClick={true} isOpen={isOpen} onClose={onClose} isCentered motionPreset='none'>
<ModalOverlay />
<ModalContent>
<ModalCloseButton />
<ModalBody p={6}>
<Heading mb='5px' fontSize='2xl'>Subscribe</Heading>
<Text fontSize={'md'} color='gray.700'>Enter your below to receive updates to this roadmap.</Text>
<form action={SIGNUP_FORM_ACTION} method='post' target='_blank' onSubmit={() => {
event({
category: 'Subscription',
action: `Submitted Subscribe ${roadmapTitle} Roadmap Email`,
label: `Email / Subscribe ${roadmapTitle} Roadmap`
});
onClose();
}}>
<Input required ref={initialRef} size='md' my='10px' type='email' placeholder='Email address' name={SIGNUP_EMAIL_INPUT_NAME} />
<Button type='submit' colorScheme='green' size='md' width={'full'}>Subscribe</Button>
</form>
</ModalBody>
</ModalContent>
</Modal>
</>
);
}
export function RoadmapPageHeader(props: RoadmapPageHeaderType) {
const { roadmap } = props;
return (
<Box
pt={['25px', '20px', '45px']}
pb={['20px', '15px', '30px']}
borderBottomWidth={1}
mb='30px'
>
<Container maxW='container.md' position='relative'>
<NewAlertBanner />
<Heading
as='h1'
color='black'
fontSize={['28px', '33px', '40px']}
fontWeight={700}
mb={['2px', '2px', '5px']}
>
{roadmap.title}
</Heading>
<Text fontSize={['13px', '14px', '15px']}>{roadmap.description}</Text>
<Flex justifyContent='space-between' alignItems={'center'} mt='20px'>
<Stack isInline flex={1}>
<Button
d={['flex', 'flex']}
as={Link}
href={'/roadmaps'}
size='xs'
py='14px'
px='10px'
colorScheme='teal'
variant='solid'
_hover={{ textDecoration: 'none' }}
>
&larr;
<Text as='span' d={['none', 'inline']} ml='5px'>
All Roadmaps
</Text>
</Button>
<RoadmapDownloader roadmapTitle={roadmap.featuredTitle} />
<RoadmapSubscriber roadmapTitle={roadmap.featuredTitle} />
<Box flex={1} justifyContent='flex-end' d='flex'>
<Button
as={Link}
href={`${siteConfig.url.issue}?title=[Suggestion] ${roadmap.title}`}
target='_blank'
size='xs'
py='14px'
px='10px'
colorScheme='green'
leftIcon={<ChatIcon />}
_hover={{ textDecoration: 'none' }}
>
Suggest Changes
</Button>
</Box>
</Stack>
</Flex>
{isInteractiveRoadmap(roadmap.id) && (
<Text
mt='30px'
mb={['-37px', '-32px', '-47px']}
fontWeight={500}
fontSize='14px'
bg='white'
borderWidth={1}
p='5px 7px'
rounded='3px'
>
<Badge pos='relative' top={'-1px'} mr='6px' colorScheme='yellow'>
New
</Badge>
Resources are here, try clicking any nodes.
</Text>
)}
</Container>
</Box>
);
}

View File

@@ -1,33 +0,0 @@
import { Flex, Link, Text } from '@chakra-ui/react';
import YouTubeLogo from '../components/icons/youtube.svg';
import siteConfig from '../content/site.json';
import { event } from '../lib/gtag';
export function StickyBanner() {
return (
<Flex as={Link}
href={siteConfig.url.youtube}
bg={'yellow.200'}
color='gray.900'
alignItems='center'
position='sticky'
top={0}
zIndex={999}
justifyContent='center'
py='8px'
_hover={{ textDecoration: 'none', bg: 'yellow.400' }}
target='_blank'
onClick={() => event({
category: 'Subscription',
action: 'Clicked the YouTube banner',
label: 'Sticky YouTube banner on Top'
})}
>
<YouTubeLogo style={{ height: '20px', display: 'inline-block', marginRight: '7px' }} />
<Text as='span' fontWeight={500} fontSize='14px'>
<Text as='span'>We now have a YouTube Channel. <Text as='span' d={['none', 'inline']}>Subscribe for the video
content.</Text></Text>
</Text>
</Flex>
);
}

View File

@@ -1,20 +0,0 @@
import { Box, Button, Container, Heading, Link, Text } from '@chakra-ui/react';
import { event } from '../lib/gtag';
export function TeamsBanner() {
return (
<Box bg='teal.500' borderTopWidth={1} py={['45px', '45px', '70px']} textAlign='center'>
<Container maxW='container.sm'>
<Heading as='h4' color={'white'} fontSize={['25px', '25px', '35px']} mb={['10px', '10px', '20px']}>Roadmaps for Teams</Heading>
<Text lineHeight='26px' color={'white'} fontSize={['15px', '15px', '18px']} mb='20px'>We are working on a solution for teams. Help us shape the platform!</Text>
<Button onClick={() => {
event({
category: 'UpcomingFeatureClick',
action: `Teams Form Redirect`,
label: `Click Teams Footer Link`
});
}} target={'_blank'} as={Link} href='https://forms.gle/6X2matbCmjmvYGGt6' _hover={{textDecoration: 'none', bg: 'gray.300'}}>Take a Survey</Button>
</Container>
</Box>
);
}

View File

@@ -1,69 +0,0 @@
import { Badge, Box, Heading, Link, Text } from '@chakra-ui/react';
type VideoGridItemProps = {
href: string;
title: string;
subtitle: string;
date: string;
target?: string;
isNew?: boolean;
colorIndex?: number;
};
const bgColorList = [
'gray.900',
'purple.900',
'blue.900',
'red.900',
'green.900',
'teal.900',
'yellow.900',
'cyan.900',
'pink.900',
'gray.800',
'purple.800',
'blue.800',
'red.800',
'green.800',
'teal.800',
'yellow.800',
'cyan.800',
'pink.800',
'gray.700',
'purple.700',
'blue.700',
'red.700',
'green.700',
'teal.700',
'yellow.700',
'cyan.700',
'pink.700',
'gray.600',
'purple.600',
'blue.600',
'red.600',
'green.600',
'teal.600',
'yellow.600',
'cyan.600',
'pink.600'
];
export function VideoGridItem(props: VideoGridItemProps) {
const { title, subtitle, date, isNew = false, colorIndex = 0, href, target } = props;
return (
<Box _hover={{ textDecoration: 'none', transform: 'scale(1.02)' }} as={Link} href={ href } target={target || '_self'} shadow='xl' p='20px'
rounded='10px' bg={bgColorList[colorIndex] ?? bgColorList[0]} flex={1}>
<Text mb='7px' fontSize='12px' color='gray.400'>
{isNew && <Badge colorScheme={'green'} mr='10px'>New</Badge>}
{date}
</Text>
<Heading color='white' mb={'6px'} fontSize='20px' lineHeight={'28px'}>{title}</Heading>
<Text color='gray.300' fontSize='14px'>{subtitle}</Text>
</Box>
);
}

View File

@@ -1,49 +0,0 @@
[
{
"username": "kamranahmedse",
"name": "Kamran Ahmed",
"twitter": "kamranahmedse",
"picture": "/authors/kamranahmedse.jpeg",
"bio": "Lead engineer at Tajawal. Lover of all things web and opensource. Created roadmap.sh to help the confused ones."
},
{
"username": "jesse",
"name": "Jesse Li",
"twitter": "__jesse_li",
"picture": "/authors/jesse.png",
"bio": "Software engineer."
},
{
"username": "dmytrobol",
"name": "Dmytro Bolkachov",
"twitter": "dmytrobol",
"picture": "/authors/dmytrobol.png",
"bio": "JavaScript Lad, Movie buff and coder interested in everything web related"
},
{
"username": "spekulatius",
"name": "Peter Thaleikis",
"twitter": "spekulatius1984",
"picture": "/authors/spekulatius.jpg",
"bio": "Developer building side-projects for fun, lover of the web and open source"
},
{
"username": "ebrahimbharmal007",
"name": "Ebrahim Bharmal",
"twitter": "BharmalEbrahim",
"picture": "/authors/ebrahimbharmal007.png",
"bio": "Love building projects using tools completely new to me. Python forever. Senior at University of Texas at Arlington (2021)"
},
{
"username": "lesovsky",
"name": "Alexey Lesovsky",
"bio": "Linux system administrator and PostgreSQL DBA at DataEgret.",
"picture": "/authors/lesovsky.jpeg"
},
{
"username": "danielgruesso",
"name": "Daniel Gruesso",
"bio": "Product manager working on blockchain and smart contracts developer tools",
"picture": "/authors/danielgruesso.jpg"
}
]

View File

@@ -1,304 +0,0 @@
[
{
"id": "http-basic-authentication",
"title": "HTTP Basic Authentication",
"description": "Learn what is HTTP Basic Authentication and how to implement it in Node.js",
"isNew": true,
"type": "textual",
"authorUsername": "kamranahmedse",
"updatedAt": "2022-10-03T19:59:14.191Z",
"createdAt": "2022-10-03T19:59:14.191Z"
},
{
"id": "basics-of-authentication",
"title": "Basics of Authentication",
"description": "Learn the basics of Authentication and Authorization",
"isNew": true,
"type": "textual",
"authorUsername": "kamranahmedse",
"updatedAt": "2022-09-21T19:59:14.191Z",
"createdAt": "2022-09-21T19:59:14.191Z"
},
{
"id": "avoid-render-blocking-javascript-with-async-defer",
"title": "Async and Defer Script Loading",
"description": "Learn how to avoid render blocking JavaScript using async and defer scripts.",
"isNew": false,
"type": "visual",
"authorUsername": "kamranahmedse",
"updatedAt": "2021-09-10T19:59:14.191Z",
"createdAt": "2021-09-10T19:59:14.191Z"
},
{
"id": "what-are-web-vitals",
"title": "What are Web Vitals?",
"description": "Learn what are the core web vitals and how to measure them.",
"isNew": false,
"type": "visual",
"authorUsername": "kamranahmedse",
"updatedAt": "2021-09-05T19:59:14.191Z",
"createdAt": "2021-09-05T19:59:14.191Z"
},
{
"id": "what-is-sli-slo-sla",
"title": "SLIs, SLOs and SLAs",
"description": "Learn what are different indicators for performance identification of any service.",
"isNew": false,
"type": "visual",
"authorUsername": "kamranahmedse",
"updatedAt": "2021-08-31T19:59:14.191Z",
"createdAt": "2021-08-31T19:59:14.191Z"
},
{
"id": "ci-cd",
"title": "What is CI and CD?",
"description": "Learn the basics of CI/CD and how to implement that with GitHub Actions.",
"isNew": false,
"type": "visual",
"authorUsername": "kamranahmedse",
"updatedAt": "2021-07-09T19:59:14.191Z",
"createdAt": "2021-07-09T19:59:14.191Z"
},
{
"id": "sso",
"title": "SSO — Single Sign On",
"description": "Learn the basics of SAML and understand how does Single Sign On work.",
"isNew": false,
"type": "visual",
"authorUsername": "kamranahmedse",
"updatedAt": "2021-07-01T19:59:14.191Z",
"createdAt": "2021-07-01T19:59:14.191Z"
},
{
"id": "oauth",
"title": "OAuth — Open Authorization",
"description": "Learn and understand what is OAuth and how it works",
"isNew": false,
"type": "visual",
"authorUsername": "kamranahmedse",
"updatedAt": "2021-06-28T19:59:14.191Z",
"createdAt": "2021-06-28T19:59:14.191Z"
},
{
"id": "jwt-authentication",
"title": "JWT Authentication",
"description": "Understand what is JWT authentication and how is it implemented",
"isNew": false,
"type": "visual",
"authorUsername": "kamranahmedse",
"updatedAt": "2021-06-20T19:59:14.191Z",
"createdAt": "2021-06-20T19:59:14.191Z"
},
{
"id": "token-authentication",
"title": "Token Based Authentication",
"description": "Understand what is token based authentication and how it is implemented",
"isNew": false,
"type": "visual",
"authorUsername": "kamranahmedse",
"updatedAt": "2021-06-02T20:59:14.191Z",
"createdAt": "2021-06-02T20:59:14.191Z"
},
{
"id": "session-authentication",
"title": "Session Based Authentication",
"description": "Understand what is session based authentication and how it is implemented",
"isNew": false,
"type": "visual",
"authorUsername": "kamranahmedse",
"updatedAt": "2021-05-26T20:59:14.191Z",
"createdAt": "2021-05-26T20:59:14.191Z"
},
{
"id": "basic-authentication",
"title": "Basic Authentication",
"description": "Understand what is basic authentication and how it is implemented",
"isNew": false,
"type": "visual",
"authorUsername": "kamranahmedse",
"updatedAt": "2021-05-19T20:59:14.191Z",
"createdAt": "2021-05-19T20:59:14.191Z"
},
{
"id": "character-encodings",
"title": "Character Encodings",
"description": "Covers the basics of character encodings and explains ASCII vs Unicode",
"isNew": false,
"type": "visual",
"authorUsername": "kamranahmedse",
"updatedAt": "2021-05-14T20:59:14.191Z",
"createdAt": "2021-05-14T20:59:14.191Z"
},
{
"id": "unfamiliar-codebase",
"title": "Unfamiliar Codebase",
"description": "Tips on getting getting familiar with an unfamiliar codebase",
"isNew": false,
"type": "visual",
"authorUsername": "kamranahmedse",
"updatedAt": "2021-05-04T20:59:14.191Z",
"createdAt": "2021-05-04T20:59:14.191Z"
},
{
"id": "why-build-it-and-they-will-come-wont-work-anymore",
"title": "Build it and they will come?",
"description": "Why “build it and they will come” alone wont work anymore",
"isNew": false,
"type": "textual",
"authorUsername": "spekulatius",
"updatedAt": "2021-05-04T12:59:14.191Z",
"createdAt": "2021-05-04T12:59:14.191Z"
},
{
"id": "dhcp-in-one-picture",
"title": "DHCP in One Picture",
"description": "Here is what happens when a new device joins the network.",
"isNew": false,
"type": "visual",
"authorUsername": "kamranahmedse",
"updatedAt": "2021-04-28T15:48:21.191Z",
"createdAt": "2021-04-28T15:48:21.191Z"
},
{
"id": "ssl-tls-https-ssh",
"title": "SSL vs TLS vs SSH",
"description": "Quick tidbit on the differences between SSL, TLS, HTTPS and SSH",
"isNew": false,
"type": "visual",
"authorUsername": "kamranahmedse",
"updatedAt": "2021-04-22T15:48:21.191Z",
"createdAt": "2021-04-22T15:48:21.191Z"
},
{
"id": "asymptotic-notation",
"title": "Asymptotic Notation",
"description": "Learn the basics of measuring the time and space complexity of algorithms",
"isNew": false,
"type": "visual",
"authorUsername": "kamranahmedse",
"updatedAt": "2021-04-03T15:48:21.191Z",
"createdAt": "2021-04-03T15:48:21.191Z"
},
{
"id": "big-o-notation",
"title": "Big-O Notation",
"description": "Easy to understand explanation of Big-O notation without any fancy terms",
"isNew": false,
"type": "visual",
"authorUsername": "kamranahmedse",
"updatedAt": "2021-03-15T15:48:21.191Z",
"createdAt": "2021-03-15T15:48:21.191Z"
},
{
"id": "random-numbers",
"title": "Random Numbers: Are they?",
"description": "Learn how they are generated and why they may not be truly random.",
"isNew": false,
"type": "visual",
"authorUsername": "kamranahmedse",
"updatedAt": "2021-03-14T15:48:21.191Z",
"createdAt": "2021-03-14T15:48:21.191Z"
},
{
"id": "scaling-databases",
"title": "Scaling Databases",
"description": "Learn the ups and downs of different database scaling strategies",
"isNew": false,
"type": "visual",
"authorUsername": "kamranahmedse",
"updatedAt": "2021-02-18T15:48:21.191Z",
"createdAt": "2021-02-18T15:48:21.191Z"
},
{
"id": "what-is-internet",
"title": "How does the internet work?",
"description": "Learn the basics of internet and everything involved with this short video series",
"isNew": false,
"type": "textual",
"authorUsername": "kamranahmedse",
"updatedAt": "2021-02-29T15:48:21.191Z",
"createdAt": "2021-02-29T15:48:21.191Z"
},
{
"id": "torrent-client",
"title": "Building a BitTorrent Client",
"description": "Learn everything you need to know about BitTorrent by writing a client in Go",
"isNew": false,
"type": "textual",
"authorUsername": "jesse",
"updatedAt": "2021-01-17T15:48:21.191Z",
"createdAt": "2021-01-17T15:48:21.191Z",
"canonical": "https://blog.jse.li/posts/torrent/"
},
{
"id": "levels-of-seniority",
"title": "Levels of Seniority",
"description": "How to Step Up as a Junior, Mid Level or a Senior Developer?",
"isNew": false,
"type": "textual",
"authorUsername": "kamranahmedse",
"updatedAt": "2020-12-03T12:13:00.860Z",
"createdAt": "2020-12-03T12:13:00.860Z"
},
{
"id": "design-patterns-for-humans",
"title": "Design Patterns for Humans",
"description": "A language agnostic, ultra-simplified explanation to design patterns",
"isNew": false,
"type": "textual",
"authorUsername": "kamranahmedse",
"updatedAt": "2019-10-09T12:00:00.860Z",
"createdAt": "2019-01-23T17:00:00.860Z"
},
{
"id": "journey-to-http2",
"title": "Journey to HTTP/2",
"description": "The evolution of HTTP. How it all started and where we stand today",
"isNew": false,
"type": "textual",
"authorUsername": "kamranahmedse",
"createdAt": "2018-12-04T12:00:00.860Z",
"updatedAt": "2018-12-04T12:00:00.860Z",
"isDraft": true
},
{
"id": "dns-in-one-picture",
"title": "DNS in One Picture",
"description": "Quick illustrative guide on how a website is found on the internet.",
"isNew": false,
"type": "visual",
"authorUsername": "kamranahmedse",
"updatedAt": "2018-12-04T12:00:00.860Z",
"createdAt": "2018-12-04T17:00:00.860Z"
},
{
"id": "http-caching",
"title": "HTTP Caching",
"description": "Everything you need to know about web caching",
"isNew": false,
"type": "textual",
"authorUsername": "kamranahmedse",
"createdAt": "2018-11-29T17:00:00.860Z",
"updatedAt": "2018-11-29T17:00:00.860Z"
},
{
"id": "history-of-javascript",
"title": "Brief History of JavaScript",
"description": "How JavaScript was introduced and evolved over the years",
"isNew": false,
"type": "textual",
"authorUsername": "kamranahmedse",
"createdAt": "2017-10-28T17:00:00.860Z",
"updatedAt": "2017-10-28T17:00:00.860Z"
},
{
"id": "proxy-servers",
"title": "Proxy Servers",
"description": "How do proxy servers work and what are forward and reverse proxies?",
"isNew": false,
"type": "textual",
"authorUsername": "ebrahimbharmal007",
"createdAt": "2017-10-24T17:00:00.860Z",
"updatedAt": "2017-10-24T17:00:00.860Z"
}
]

View File

@@ -1,15 +0,0 @@
export const guideMeta = {
"title": "WebStorm — Project History",
"description": "Learn how to peek through the history of any git repository to learn how it grew.",
"url": "/guides/project-history",
"fileName": "project-history",
"featured": true,
"author": "kamranahmedse",
"updatedAt": "2020-07-16T19:59:14.191Z",
"createdAt": "2020-07-16T19:59:14.191Z"
};
Asymptotic notation is the standard way of measuring the time and space that an algorithm will consume as the input grows. In one of my last guides, I covered "Big-O notation" and a lot of you asked for a similar one for Asymptotic notation. You can find the [previous guide here](/guides/big-o-notation).
[![](/guides/asymptotic-notation.png)](/guides/asymptotic-notation.png)

View File

@@ -1,2 +0,0 @@
[![](/guides/avoid-render-blocking-javascript-with-async-defer.png)](/guides/avoid-render-blocking-javascript-with-async-defer.png)

View File

@@ -1,2 +0,0 @@
[![](/guides/basic-authentication.png)](/guides/basic-authentication.png)

View File

@@ -1,83 +0,0 @@
Our last video series was about data structures. We looked at the most common data structures, their use cases, pros and cons, and the different operations you could perform on each data structure.
Today, we are kicking off a similar series for Authentication strategies where we will discuss everything you need to know about authentication and authentication strategies.
In this guide today will be talking about what authentication is, and we will cover some terminology that will help us later in the series. You can watch the video below or continue reading this guide.
<iframe src="https://www.youtube.com/embed/Mcyt9SrZT6g" title="Basics of Authentication" />
## What is Authentication?
Authentication is the process of verifying someone's identity. A real-world example of that would be when you board a plane, the airline worker checks your passport to verify your identity, so the airport worker authenticates you.
If we talk about computers, when you log in to any website, you usually authenticate yourself by entering your username and password, which is then checked by the website to ensure that you are who you claim to be. There are two things you should keep in mind:
- Authentication is not only for the persons
- And username and password are not the only way to authenticate.
Some other examples are:
- When you open a website in the browser. If the website uses HTTP, TLS is used to authenticate the server and avoid the fake loading of websites.
- There might be server-to-server communication on the website. The server may need to authenticate the incoming request to avoid malicious usage.
## How does Authentication Work?
On a high level, we have the following factors used for authentication.
- **Username and Password**
- **Security Codes, Pin Codes, or Security Questions** — An example would be the pin code you enter at an ATM to withdraw cash.
- **Hard Tokens and Soft Tokens** — Hard tokens are the special hardware devices that you attach to your device to authenticate yourself. Soft tokens, unlike hard tokens, don't have any authentication-specific device; we must verify the possession of a device that was used to set up the identity. For example, you may receive an OTP to log in to your account on a website.
- **Biometric Authentication** — In biometric authentication, we authenticate using biometrics such as iris, facial, or voice recognition.
We can categorize the factors above into three different types.
- Username / Password and Security codes rely on the person's knowledge: we can group them under the **Knowledge Factor**.
- In hard and soft tokens, we authenticate by checking the possession of hardware, so this would be a **Possession Factor**.
- And in biometrics, we test the person's inherent qualities, i.e., iris, face, or voice, so this would be a **Qualities** factor.
This brings us to our next topic: Multi-factor Authentication and Two-Factor Authentication.
## Multifactor Authentication
Multifactor authentication is the type of authentication in which we rely on more than one factor to authenticate a user.
For example, if we pick up username/password from the **knowledge factor**. And we pick soft tokens from the **possession factor**, and we say that for a user to authenticate, they must enter their credentials and an OTP, which will be sent to their mobile phone, so this would be an example of multifactor authentication.
In multifactor authentication, since we rely on more than one factor, this way of authentication is much more secure than single-factor authentication.
One important thing to note here is that the factors you pick for authentication, they must differ. So, for example, if we pick up a username/password and security question or security codes, it is still not true multifactor authentication because we still rely on the knowledge factor. The factors have to be different from each other.
### Two-Factor Authentication
Two-factor authentication is similar to multifactor authentication. The only difference is that there are precisely two factors in 2FA. In MFA, we can have 2, 3, 4, or any authentication factors; 2FA has exactly two factors. We can say that 2FA is always MFA, because there are more than one factors. MFA is not always 2FA because there may be more than two factors involved.
Next we have the difference between authentication and authorization. This comes up a lot in the interviews, and beginners often confuse them.
### What is Authentication
Authentication is the process of verifying the identity. For example, when you enter your credentials at a login screen, the application here identifies you through your credentials. So this is what the authentication is, the process of verifying the identity.
In case of an authentication failure, for example, if you enter an invalid username and password, the HTTP response code is "Unauthorized" 401.
### What is Authorization
Authorization is the process of checking permission. Once the user has logged in, i.e., the user has been authenticated, the process of reviewing the permission to see if the user can perform the relevant operation or not is called authorization.
And in case of authorization failure, i.e., if the user tries to perform an operation they are not allowed to perform, the HTTP response code is forbidden 403.
## Authentication Strategies
Given below is the list of common authentication strategies:
- Basics of Authentication
- Session Based Authentication
- Token-Based Authentication
- JWT Authentication
- OAuth - Open Authorization
- Single Sign On (SSO)
In this series of illustrated videos and textual guides, we will be going through each of the strategies discussing what they are, how they are implemented, the pros and cons and so on.
So stay tuned, and I will see you in the next one.

View File

@@ -1,4 +0,0 @@
Big-O notation is the mathematical notation that helps analyse the algorithms to get an idea about how they might perform as the input grows. The image below explains Big-O in a simple way without using any fancy terminology.
[![](/guides/big-o-notation.png)](/guides/big-o-notation.png)

View File

@@ -1,2 +0,0 @@
[![](/guides/character-encodings.png)](/guides/character-encodings.png)

View File

@@ -1,4 +0,0 @@
The image below details the differences between the continuous integration and continuous delivery. Also, here is the [accompanying video on implementing that with GitHub actions](https://www.youtube.com/watch?v=nyKZTKQS_EQ).
[![](/guides/ci-cd.png)](/guides/ci-cd.png)

View File

@@ -1,2 +0,0 @@
[![](/guides/dhcp.png)](/guides/dhcp.png)

View File

@@ -1,5 +0,0 @@
DNS or Domain Name System is one of the fundamental blocks of the internet. As a developer, you should have at-least the basic understanding of how it works. This article is a brief introduction to what is DNS and how it works.
DNS at its simplest is like a phonebook on your mobile phone. Whenever you have to call one of your contacts, you can either dial their number from your memory or use their name which will then be used by your mobile phone to search their number in your phone book to call them. Every time you make a new friend, or your existing friend gets a mobile phone, you have to memorize their phone number or save it in your phonebook to be able to call them later on. DNS or Domain Name System, in a similar fashion, is a mechanism that allows you to browse websites on the internet. Just like your mobile phone does not know how to call without knowing the phone number, your browser does not know how to open a website just by the domain name; it needs to know the IP Address for the website to open. You can either type the IP Address to open, or provide the domain name and press enter which will then be used by your browser to find the IP address by going through several hoops. The picture below is the illustration of how your browser finds a website on the internet.
[![](https://i.imgur.com/z9rwm5A.png)](https://i.imgur.com/z9rwm5A.png)

View File

@@ -1,2 +0,0 @@
[![](/guides/jwt-authentication.png)](/guides/jwt-authentication.png)

View File

@@ -1,2 +0,0 @@
[![](/guides/oauth.png)](/guides/oauth.png)

View File

@@ -1,5 +0,0 @@
One of my favorite pastimes is going through the history of my favorite projects to learn how they grew over time or how certain features were implemented.
The image below describes how I do that in WebStorm.
[![](/guides/project-history.png)](/guides/project-history.png)

View File

@@ -1,47 +0,0 @@
The Internet has connected people across the world using social media and audio/video calling features along with providing an overabundance of knowledge and tools. All this comes with an inherent danger of security and privacy breaches. In this guide, we will talk about **proxies** that play a vital role in mitigating these risks. We will cover the following topics in this guide:
- [Proxy Server](#proxy-server)
- [Forward Proxy Server](#forward-proxy-server)
- [Reverse Proxy Server](#reverse-proxy-server)
- [Summary](#summary)
## Proxy Server
***Every web request which is sent from the client to a web server goes through some type of proxy server.*** A proxy server acts as a gateway between client *(you)* and the internet and separates end-users from the websites you browse. It replaces the source IP address of the web request with the proxy server's IP address and then forwards it to the web server. The web server is unaware of the client, it only sees the proxy server.
![Proxy Server Description](/guides/proxy/proxy-example.png)
> NOTE: This is not an accurate description but rather just an illustration.
Proxy servers serve as a single point of control making it easier to enforce security policies. It also provides caching mechanism which stores the requested web pages on the proxy server to improve performance. If the requested web-page is available in cache memory then instead of forwarding the request to the web-server it will send the cached webpage back to the client. This **saves big companies thousands of dollars** by reducing the load on their servers as their website is visited by millions of users every day.
## Forward Proxy Server
A forward proxy is generally implemented on the client side and **sits in front of multiple clients** or client sources. Forward proxy servers are mainly used by companies to **manage internet usage** of their employees and **restrict content**. It is also used as a **firewall** to secure the company's network by blocking any request which would pose threat to the companies's network. Proxy servers are also used to **bypass geo-restriction** and browse content that might be blocked in the user's country. It enables users to **browse anonymously**, as the proxy server masks their details from the website's servers.
![Forward Proxy Description](/guides/proxy/forward-proxy.png)
> NOTE: This is not an accurate description but rather just an illustration
## Reverse Proxy Server
Reverse proxy servers are implemented on the **server side** instead of the client side. It **sits in front of multiple webservers** and manages the incoming requests by forwarding them to the web servers. It provides anonymity for the **back-end web servers and not the client**. Reverse proxy servers are generally used to perform tasks such as **authentication, content caching, and encryption/decryption** on behalf of the web server. These tasks would **hog CPU cycles** on the web server and degrade the performance of the website by introducing a high amount of delay in loading the webpage. Reverse proxies are also used as **load balancers** to distribute the incoming traffic efficiently among the web servers but it is **not optimized** for this task. In essence, a reverse proxy server is a gateway to a web-server or group of web-servers.
![Reverse Proxy Description](/guides/proxy/reverse-proxy.png)
> NOTE: This is not an accurate description but rather just an illustration. Red lines represent server's response and black lines represent initial request from client(s).
## Summary
A proxy server acts as a gateway between client *(you)* and the internet and separates end-users from the websites you browse. ***The position of the proxy server on the network determines whether it is a forward or a reverse proxy server***. A Forward proxy is implemented on the client side and **sits in front of multiple clients** or client sources and forwards requests to the web server. Reverse proxy servers are implemented on the **server side** it **sits in front of multiple webservers** and manages the incoming requests by forwarding them to the web servers.
If all this was too much to take in, I have a simple analogy for you.
At a restaurant, the waiter/waitress takes your order and gives it to the kitchen head chef. The head chef then calls out the order and assigns tasks to everyone in the kitchen.
In this analogy:
* You are the client
* Your order is the web request
* Waiter/Waitress is your forward proxy server
* Kitchen head chef is the reverse proxy server
* Other chefs working in the kitchen are the web servers
With that said our guide comes to an end. Thank you for reading and feel free to submit any updates to the guide using the links below.

View File

@@ -1,4 +0,0 @@
Random numbers are everywhere from computer games to lottery systems, graphics software, statistical sampling, computer simulation and cryptography. Graphic below is a quick explanation to how the random numbers are generated and why they may not be truly random.
[![](/guides/random-numbers.png)](/guides/random-numbers.png)

View File

@@ -1,4 +0,0 @@
The chart below aims to give you a really basic understanding of how the capability of a DBMS is increased to handle a growing amount of load.
[![](/guides/scaling-databases.svg)](/guides/scaling-databases.svg)

View File

@@ -1,2 +0,0 @@
[![](/guides/session-authentication.png)](/guides/session-authentication.png)

View File

@@ -1,2 +0,0 @@
[![](/guides/ssl-tls-https-ssh.png)](/guides/ssl-tls-https-ssh.png)

View File

@@ -1,2 +0,0 @@
[![](/guides/sso.png)](/guides/sso.png)

View File

@@ -1,8 +0,0 @@
# Threads and Concurrency
A thread is an execution context in which the instructions to the CPU can be scheduled and executed independently of the parent process. Concurrency is the concept of multiple threads in a shared memory space being computed simultaneously (or intermittently executed in succession to provide that illusion). Concurrency allows multiple processes to execute at once and can apply to programming languages as well as operating systems.
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink badgeText='Watch' href='https://www.youtube.com/watch?v=olYdb0DdGtM'>Threading Tutorial #1 - Concurrency, Threading and Parallelism</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://medium.com/@akhandmishra/operating-system-threads-and-concurrency-aec2036b90f8'>Operating System: Threads and Concurrency</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://web.mit.edu/6.005/www/fa14/classes/17-concurrency/'>Reading 17: Concurrency</BadgeLink>

View File

@@ -1,2 +0,0 @@
[![](/guides/token-authentication.png)](/guides/token-authentication.png)

View File

@@ -1,2 +0,0 @@
[![](/guides/unfamiliar-codebase.png)](/guides/unfamiliar-codebase.png)

View File

@@ -1,11 +0,0 @@
> **Roadmap is not ready yet**. Please check back later or [subscribe to get notified](/signup).
While we prepare the roadmap, follow this simple advice to learn anything
> Just **pick a project and start working on it**, you will learn all that you need along the way.
**&rarr;** &nbsp; [All Roadmaps](/roadmaps) &nbsp;&bull;&nbsp; [Programming guides](/guides) &nbsp;&bull;&nbsp; [Subscribe](/signup)

View File

@@ -1,2 +0,0 @@
[![](/guides/web-vitals.png)](/guides/web-vitals.png)

View File

@@ -1,62 +0,0 @@
Since the explosive growth of web-based applications, every developer stands to benefit from understanding how the Internet works. Through this article and its accompanying introductory series of short videos about the Internet from [code.org](https://code.org), you will learn the basics of the Internet and how it works. After going through this article, you will be able to answer the following questions:
* What is the Internet?
* How does the information move on the internet?
* How do the networks talk to each other and the protocols involved?
* What's the relationship between packets, routers, and reliability?
* HTTP and the HTML How are you viewing this webpage in your browser?
* How is the information transfer on the internet made secure?
* What is cybersecurity and what are some common internet crimes?
## What is the Internet?
The Internet is a global network of computers connected to each other which communicate through a standardized set of protocols.
In the video below, Vint Cerf, one of the "fathers of the internet," explains the history of how the Internet works and how no one person or organization is really in charge of it.
<iframe width="100%" height="400" src="https://www.youtube.com/embed/Dxcc6ycZ73M" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
## Wires, Cables, and Wi-Fi
Information on the Internet moves from one computer to another in the form of bits over various mediums, including Ethernet cables, fiber optic cables, and wireless signals (i.e., radio waves).
In the video linked below, you will learn about the different mediums for data transfer on the Internet and the pros and cons for each.
<iframe width="100%" height="400" src="https://www.youtube.com/embed/ZhEf7e4kopM" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
## IP Addresses and DNS
Now that you know about the physical medium for the data transfer over the internet, it's time to learn about the protocols involved. How does the information traverse from one computer to another in this massive global network of computers?
In the video below, you will get a brief introduction to IP, DNS, and how these protocols make the Internet work.
<iframe width="100%" height="400" src="https://www.youtube.com/embed/5o8CwafCxnU" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
## Packets, Routing, and Reliability
Information transfer on the Internet from one computer to another does not need to follow a fixed path; in fact, it may change paths during the transfer. This information transfer is done in the form of packets and these packets may follow different routes depending on certain factors.
In this video, you will learn about how the packets of information are routed from one computer to another to reach the destination.
<iframe width="100%" height="400" src="https://www.youtube.com/embed/AYdF7b3nMto" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
## HTTP and HTML
HTTP is the standard protocol by which webpages are transferred over the Internet. The video below is a brief introduction to HTTP and how web browsers load websites for you.
<iframe width="100%" height="400" src="https://www.youtube.com/embed/kBXQZMmiA4s" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
## Encryption and Public Keys
Cryptography is what keeps our communication secure on the Internet. In this short video, you will learn the basics of cryptograpy, SSL/TLS, and how they help make the communication on the Internet secure.
<iframe width="100%" height="400" src="https://www.youtube.com/embed/ZghMPWGXexs" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
## Cybersecurity and Crime
In this video, you will learn about the basics of cybersecurity and common cybercrimes
<iframe width="100%" height="400" src="https://www.youtube.com/embed/AuYNXgO_f3Y" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
And that wraps it up for this article. To learn more about the Internet, [Kamran Ahmed](https://twitter.com/kamranahmedse) has a nice little guide on [DNS: How a website is found on the Internet](/guides/dns-in-one-picture). Also, go through the episodes of [howdns.works](https://howdns.works/) and read this [cartoon intro to DNS over HTTPS](https://hacks.mozilla.org/2018/05/a-cartoon-intro-to-dns-over-https/).

View File

@@ -1,2 +0,0 @@
[![](/guides/sli-slo-sla.jpeg)](/guides/sli-slo-sla.jpeg)

View File

@@ -1,67 +0,0 @@
## What is roadmap.sh?
Roadmap.sh is the place containing community curated roadmaps, study plans, paths and resources for the budding
developers. It started as a [set of charts to guide the developers](https://github.com/kamranahmedse/developer-roadmap)
who are confused about what should they learn next but that alone wasn't enough so I expanded it into the website to get
more contributors involved.
## What are the plans for roadmap.sh?
The website started off as
a [simple repository containing a few charts](https://github.com/kamranahmedse/developer-roadmap) for developers and
based on my personal opinions but it could have been much more than that so I decided to expand it to a website where
people can contribute to study plans with their areas of expertise as well, add more roadmaps, write guides etc.
We haven't opened up the sign ups for now but we will be doing. My long term plans for this website are to turn it into
a goto place for the developers to seek guidance about their careers, help others, share their journeys, incentivize the
learnings, get feedbacks on their projects etc.
## How did you build roadmap.sh?
The basic version of the website has been built with [Next.js](https://github.com/zeit/next.js/), is opensource and can
be found on [github](https://github.com/kamranahmedse/developer-roadmap). It was hastily done to get it out in front of the
people and get people to start contributing, so it might be rough on the edges, but that is where we need your help.
## How does it make money?
It doesn't make any money. I have been using my personal time and budget to build it. I did not create this website with
any intentions of monetization but as a good will, to help the people get out of the frustration that I was once in.
Having said that, I love teaching and my future plans are to be able to work full-time on roadmap.sh for which it has to
make enough money to pay for my rent, groceries, bills, travel expenses, etc but even if it doesn't it's likely I'll
continue growing the site however I can. My focus at the moment is not making money from it and just adding content that
creates value for the people.
> Sponsor the efforts by [paying as little as 5$ per month](https://github.com/sponsors/kamranahmedse) or with [one time payment via paypal](https://paypal.me/kamranahmedse). Alternatively, reach out to me at [kamranahmed.se@gmail.com](mailto:kamranahmed.se@gmail.com).
## Can I contribute?
You definitely can, infact you are encouraged to do that. Even your minor contributions such as typo fixes count. The
source code of the website can be [found on Github](https://github.com/kamranahmedse/developer-roadmap). Your contributions can
be:
* Adding a new roadmap
* Updating existing roadmap
* Suggesting changes to the existing roadmaps
* Writing a Guide
* Updating an existing guide
* Fixing grammar mistakes, typos on the website or the content
* Updating the UI of the website
* Refactoring the codebase
* Becoming a sponsor
Just make sure
to [follow the contribution guidelines](https://github.com/kamranahmedse/developer-roadmap/tree/master/contributing) when you
decide to contribute.
## Can I redistribute the content?
No, the license of the content on this website does not allow you to redistribute any of the content on this website
anywhere. You can use it for personal use or share the link to the content if you have to but redistribution is not
allowed.
## What is the best way to contact you?
Tweet or send me a message [@kamranahmedse](https://twitter.com/kamranahmedse) or email me
at [kamranahmed.se@gmail.com](mailto:kamranahmed.se@gmail.com). I get lots of messages so apologies in advance if you don't hear back
from me soon but I do reply to everyone.

View File

@@ -1,22 +0,0 @@
<br />
<br />
# Download Roadmap PDFs
Here is the list of PDF links for each of the roadmaps.
* **Frontend Roadmap** - [Roadmap Link](https://roadmap.sh/frontend) / [PDF Link](https://roadmap.sh/pdfs/frontend.pdf)
* **Backend Roadmap** - [Roadmap Link](https://roadmap.sh/backend) / [PDF Link](https://roadmap.sh/pdfs/backend.pdf)
* **DevOps Roadmap** - [Roadmap Link](https://roadmap.sh/devops) / [PDF Link](https://roadmap.sh/pdfs/devops.pdf)
* **QA Roadmap** - [Roadmap Link](https://roadmap.sh/qa) / [PDF Link](https://roadmap.sh/pdfs/qa.pdf)
* **Software Architect Roadmap** - [Roadmap Link](https://roadmap.sh/software-architect) / [PDF Link](https://roadmap.sh/pdfs/software-architect.pdf)
* **JavaScript Roadmap** - [Roadmap Link](https://roadmap.sh/javascript) / [PDF Link](https://roadmap.sh/pdfs/javascript.pdf)
* **Node.js Roadmap** - [Roadmap Link](https://roadmap.sh/nodejs) / [PDF Link](https://roadmap.sh/pdfs/nodejs.pdf)
* **Angular Roadmap** - [Roadmap Link](https://roadmap.sh/angular) / [PDF Link](https://roadmap.sh/pdfs/angular.pdf)
* **React Roadmap** - [Roadmap Link](https://roadmap.sh/react) / [PDF Link](https://roadmap.sh/pdfs/react.pdf)
* **Vue Roadmap** - [Roadmap Link](https://roadmap.sh/vue) / [PDF Link](https://roadmap.sh/pdfs/vue.pdf)
* **Design System Roadmap** - [Roadmap Link](https://roadmap.sh/design-system) / [PDF Link](https://roadmap.sh/pdfs/design-system.pdf)
* **Blockchain Roadmap** - [Roadmap Link](https://roadmap.sh/blockchain) / [PDF Link](https://roadmap.sh/pdfs/blockchain.pdf)
* **Go Roadmap** - [Roadmap Link](https://roadmap.sh/go) / [PDF Link](https://roadmap.sh/pdfs/go.pdf)
* **Java Roadmap** - [Roadmap Link](https://roadmap.sh/java) / [PDF Link](https://roadmap.sh/pdfs/java.pdf)
* **Python Roadmap** - [Roadmap Link](https://roadmap.sh/python) / [PDF Link](https://roadmap.sh/pdfs/python.pdf)

File diff suppressed because it is too large Load Diff

View File

@@ -1,144 +0,0 @@
{
"home": "/roadmaps/100-frontend/content/readme.md",
"internet": "/roadmaps/100-frontend/content/100-internet/readme.md",
"internet:how-does-the-internet-work": "/roadmaps/100-frontend/content/100-internet/100-how-does-the-internet-work.md",
"internet:what-is-http": "/roadmaps/100-frontend/content/100-internet/101-what-is-http.md",
"internet:browsers-and-how-they-work": "/roadmaps/100-frontend/content/100-internet/102-browsers-and-how-they-work.md",
"internet:dns-and-how-it-works": "/roadmaps/100-frontend/content/100-internet/103-dns-and-how-it-works.md",
"internet:what-is-domain-name": "/roadmaps/100-frontend/content/100-internet/104-what-is-domain-name.md",
"internet:what-is-hosting": "/roadmaps/100-frontend/content/100-internet/105-what-is-hosting.md",
"html": "/roadmaps/100-frontend/content/101-html/readme.md",
"html:learn-the-basics": "/roadmaps/100-frontend/content/101-html/100-learn-the-basics.md",
"html:writing-semantic-html": "/roadmaps/100-frontend/content/101-html/101-writing-semantic-html.md",
"html:forms-and-validations": "/roadmaps/100-frontend/content/101-html/102-forms-and-validations.md",
"html:conventions-and-best-practices": "/roadmaps/100-frontend/content/101-html/103-conventions-and-best-practices.md",
"html:accessibility": "/roadmaps/100-frontend/content/101-html/104-accessibility.md",
"html:seo-basics": "/roadmaps/100-frontend/content/101-html/105-seo-basics.md",
"css": "/roadmaps/100-frontend/content/102-css/readme.md",
"css:learn-the-basics": "/roadmaps/100-frontend/content/102-css/100-learn-the-basics.md",
"css:making-layouts": "/roadmaps/100-frontend/content/102-css/101-making-layouts.md",
"css:responsive-design-and-media-queries": "/roadmaps/100-frontend/content/102-css/102-responsive-design-and-media-queries.md",
"javascript": "/roadmaps/100-frontend/content/103-javascript/readme.md",
"javascript:syntax-and-basic-constructs": "/roadmaps/100-frontend/content/103-javascript/100-syntax-and-basic-constructs.md",
"javascript:learn-dom-manipulation": "/roadmaps/100-frontend/content/103-javascript/101-learn-dom-manipulation.md",
"javascript:learn-fetch-api-ajax-xhr": "/roadmaps/100-frontend/content/103-javascript/102-learn-fetch-api-ajax-xhr.md",
"javascript:es6-and-modular-javascript": "/roadmaps/100-frontend/content/103-javascript/103-es6-and-modular-javascript.md",
"javascript:concepts": "/roadmaps/100-frontend/content/103-javascript/104-concepts.md",
"version-control-systems": "/roadmaps/100-frontend/content/104-version-control-systems/readme.md",
"version-control-systems:basic-usage-of-git": "/roadmaps/100-frontend/content/104-version-control-systems/100-basic-usage-of-git.md",
"repo-hosting-services": "/roadmaps/100-frontend/content/105-repo-hosting-services/readme.md",
"repo-hosting-services:github": "/roadmaps/100-frontend/content/105-repo-hosting-services/100-github.md",
"repo-hosting-services:gitlab": "/roadmaps/100-frontend/content/105-repo-hosting-services/101-gitlab.md",
"repo-hosting-services:bitbucket": "/roadmaps/100-frontend/content/105-repo-hosting-services/102-bitbucket.md",
"web-security-knowledge": "/roadmaps/100-frontend/content/106-web-security-knowledge/readme.md",
"web-security-knowledge:cors": "/roadmaps/100-frontend/content/106-web-security-knowledge/102-cors.md",
"web-security-knowledge:https": "/roadmaps/100-frontend/content/106-web-security-knowledge/100-https.md",
"web-security-knowledge:content-security-policy": "/roadmaps/100-frontend/content/106-web-security-knowledge/101-content-security-policy.md",
"web-security-knowledge:owasp-security-risks": "/roadmaps/100-frontend/content/106-web-security-knowledge/103-owasp-security-risks.md",
"package-managers": "/roadmaps/100-frontend/content/107-package-managers/readme.md",
"package-managers:npm": "/roadmaps/100-frontend/content/107-package-managers/100-npm.md",
"package-managers:yarn": "/roadmaps/100-frontend/content/107-package-managers/101-yarn.md",
"package-managers:pnpm": "/roadmaps/100-frontend/content/107-package-managers/102-pnpm.md",
"css-architecture": "/roadmaps/100-frontend/content/108-css-architecture/readme.md",
"css-architecture:bem": "/roadmaps/100-frontend/content/108-css-architecture/100-bem.md",
"css-architecture:oocss": "/roadmaps/100-frontend/content/108-css-architecture/101-oocss.md",
"css-architecture:smacss": "/roadmaps/100-frontend/content/108-css-architecture/102-smacss.md",
"css-preprocessors": "/roadmaps/100-frontend/content/109-css-preprocessors/readme.md",
"css-preprocessors:sass": "/roadmaps/100-frontend/content/109-css-preprocessors/100-sass.md",
"css-preprocessors:postcss": "/roadmaps/100-frontend/content/109-css-preprocessors/101-postcss.md",
"css-preprocessors:less": "/roadmaps/100-frontend/content/109-css-preprocessors/102-less.md",
"build-tools": "/roadmaps/100-frontend/content/110-build-tools/readme.md",
"build-tools:task-runners": "/roadmaps/100-frontend/content/110-build-tools/100-task-runners/readme.md",
"build-tools:task-runners:npm-scripts": "/roadmaps/100-frontend/content/110-build-tools/100-task-runners/100-npm-scripts.md",
"build-tools:linters-formatters": "/roadmaps/100-frontend/content/110-build-tools/102-linters-formatters/readme.md",
"build-tools:linters-formatters:prettier": "/roadmaps/100-frontend/content/110-build-tools/102-linters-formatters/100-prettier.md",
"build-tools:linters-formatters:eslint": "/roadmaps/100-frontend/content/110-build-tools/102-linters-formatters/101-eslint.md",
"build-tools:linters-formatters:standardjs": "/roadmaps/100-frontend/content/110-build-tools/102-linters-formatters/102-standardjs.md",
"build-tools:module-bundlers": "/roadmaps/100-frontend/content/110-build-tools/101-module-bundlers/readme.md",
"build-tools:module-bundlers:webpack": "/roadmaps/100-frontend/content/110-build-tools/101-module-bundlers/100-webpack.md",
"build-tools:module-bundlers:esbuild": "/roadmaps/100-frontend/content/110-build-tools/101-module-bundlers/101-esbuild.md",
"build-tools:module-bundlers:rollup": "/roadmaps/100-frontend/content/110-build-tools/101-module-bundlers/102-rollup.md",
"build-tools:module-bundlers:parcel": "/roadmaps/100-frontend/content/110-build-tools/101-module-bundlers/103-parcel.md",
"build-tools:module-bundlers:vite": "/roadmaps/100-frontend/content/110-build-tools/101-module-bundlers/104-vite.md",
"pick-a-framework": "/roadmaps/100-frontend/content/111-pick-a-framework/readme.md",
"pick-a-framework:react-js": "/roadmaps/100-frontend/content/111-pick-a-framework/100-react-js/readme.md",
"pick-a-framework:svelte": "/roadmaps/100-frontend/content/111-pick-a-framework/103-svelte.md",
"pick-a-framework:solid-js": "/roadmaps/100-frontend/content/111-pick-a-framework/104-solid-js.md",
"pick-a-framework:react-js:recoil": "/roadmaps/100-frontend/content/111-pick-a-framework/100-react-js/102-recoil.md",
"pick-a-framework:react-js:redux": "/roadmaps/100-frontend/content/111-pick-a-framework/100-react-js/100-redux.md",
"pick-a-framework:react-js:mobx": "/roadmaps/100-frontend/content/111-pick-a-framework/100-react-js/101-mobx.md",
"pick-a-framework:angular": "/roadmaps/100-frontend/content/111-pick-a-framework/101-angular/readme.md",
"pick-a-framework:angular:rxjs": "/roadmaps/100-frontend/content/111-pick-a-framework/101-angular/100-rxjs.md",
"pick-a-framework:angular:ngrx": "/roadmaps/100-frontend/content/111-pick-a-framework/101-angular/101-ngrx.md",
"pick-a-framework:vue-js": "/roadmaps/100-frontend/content/111-pick-a-framework/102-vue-js/readme.md",
"pick-a-framework:vue-js:pinia": "/roadmaps/100-frontend/content/111-pick-a-framework/102-vue-js/100-pinia.md",
"modern-css": "/roadmaps/100-frontend/content/112-modern-css/readme.md",
"modern-css:styled-components": "/roadmaps/100-frontend/content/112-modern-css/100-styled-components.md",
"modern-css:css-modules": "/roadmaps/100-frontend/content/112-modern-css/101-css-modules.md",
"modern-css:styled-jsx": "/roadmaps/100-frontend/content/112-modern-css/102-styled-jsx.md",
"modern-css:emotion": "/roadmaps/100-frontend/content/112-modern-css/103-emotion.md",
"web-components": "/roadmaps/100-frontend/content/113-web-components/readme.md",
"web-components:html-templates": "/roadmaps/100-frontend/content/113-web-components/100-html-templates.md",
"web-components:custom-elements": "/roadmaps/100-frontend/content/113-web-components/101-custom-elements.md",
"web-components:shadow-dom": "/roadmaps/100-frontend/content/113-web-components/102-shadow-dom.md",
"css-frameworks": "/roadmaps/100-frontend/content/114-css-frameworks/readme.md",
"css-frameworks:js-first": "/roadmaps/100-frontend/content/114-css-frameworks/114-js-first/readme.md",
"css-frameworks:js-first:chakra-ui": "/roadmaps/100-frontend/content/114-css-frameworks/114-js-first/101-chakra-ui.md",
"css-frameworks:js-first:mantine": "/roadmaps/100-frontend/content/114-css-frameworks/114-js-first/104-mantine.md",
"css-frameworks:js-first:material-ui": "/roadmaps/100-frontend/content/114-css-frameworks/114-js-first/102-material-ui.md",
"css-frameworks:js-first:radix-ui": "/roadmaps/100-frontend/content/114-css-frameworks/114-js-first/103-radix-ui.md",
"css-frameworks:js-first:daisy-ui": "/roadmaps/100-frontend/content/114-css-frameworks/114-js-first/105-daisy-ui.md",
"css-frameworks:js-first:tailwind-css": "/roadmaps/100-frontend/content/114-css-frameworks/114-js-first/100-tailwind-css.md",
"css-frameworks:css-first": "/roadmaps/100-frontend/content/114-css-frameworks/114-css-first/readme.md",
"css-frameworks:css-first:bootstrap": "/roadmaps/100-frontend/content/114-css-frameworks/114-css-first/100-bootstrap.md",
"css-frameworks:css-first:bulma": "/roadmaps/100-frontend/content/114-css-frameworks/114-css-first/101-bulma.md",
"testing-your-apps": "/roadmaps/100-frontend/content/115-testing-your-apps/readme.md",
"testing-your-apps:jest": "/roadmaps/100-frontend/content/115-testing-your-apps/100-jest.md",
"testing-your-apps:playwright": "/roadmaps/100-frontend/content/115-testing-your-apps/104-playwright.md",
"testing-your-apps:react-testing-library": "/roadmaps/100-frontend/content/115-testing-your-apps/101-react-testing-library.md",
"testing-your-apps:cypress": "/roadmaps/100-frontend/content/115-testing-your-apps/102-cypress.md",
"testing-your-apps:enzyme": "/roadmaps/100-frontend/content/115-testing-your-apps/103-enzyme.md",
"testing-your-apps:other-options": "/roadmaps/100-frontend/content/115-testing-your-apps/104-other-options.md",
"testing-your-apps:mocha": "/roadmaps/100-frontend/content/115-testing-your-apps/105-mocha.md",
"testing-your-apps:chai": "/roadmaps/100-frontend/content/115-testing-your-apps/106-chai.md",
"testing-your-apps:ava": "/roadmaps/100-frontend/content/115-testing-your-apps/107-ava.md",
"testing-your-apps:jasmine": "/roadmaps/100-frontend/content/115-testing-your-apps/108-jasmine.md",
"type-checkers": "/roadmaps/100-frontend/content/116-type-checkers/readme.md",
"type-checkers:typescript": "/roadmaps/100-frontend/content/116-type-checkers/100-typescript.md",
"type-checkers:flow": "/roadmaps/100-frontend/content/116-type-checkers/101-flow.md",
"progressive-web-apps": "/roadmaps/100-frontend/content/117-progressive-web-apps/readme.md",
"progressive-web-apps:performance": "/roadmaps/100-frontend/content/117-progressive-web-apps/101-performance.md",
"progressive-web-apps:apis": "/roadmaps/100-frontend/content/117-progressive-web-apps/100-apis.md",
"server-side-rendering": "/roadmaps/100-frontend/content/118-server-side-rendering/readme.md",
"server-side-rendering:react-js": "/roadmaps/100-frontend/content/118-server-side-rendering/100-react-js/readme.md",
"server-side-rendering:react-js:next-js": "/roadmaps/100-frontend/content/118-server-side-rendering/100-react-js/100-next-js.md",
"server-side-rendering:react-js:remix": "/roadmaps/100-frontend/content/118-server-side-rendering/100-react-js/101-remix.md",
"server-side-rendering:react-js:after-js": "/roadmaps/100-frontend/content/118-server-side-rendering/100-react-js/101-after-js.md",
"server-side-rendering:angular": "/roadmaps/100-frontend/content/118-server-side-rendering/101-angular/readme.md",
"server-side-rendering:angular:universal": "/roadmaps/100-frontend/content/118-server-side-rendering/101-angular/100-universal.md",
"server-side-rendering:vue-js": "/roadmaps/100-frontend/content/118-server-side-rendering/102-vue-js/readme.md",
"server-side-rendering:vue-js:nuxt-js": "/roadmaps/100-frontend/content/118-server-side-rendering/102-vue-js/100-nuxt-js.md",
"graphql": "/roadmaps/100-frontend/content/119-graphql/readme.md",
"graphql:apollo": "/roadmaps/100-frontend/content/119-graphql/100-apollo.md",
"graphql:relay-modern": "/roadmaps/100-frontend/content/119-graphql/101-relay-modern.md",
"static-site-generators": "/roadmaps/100-frontend/content/120-static-site-generators/readme.md",
"static-site-generators:next-js": "/roadmaps/100-frontend/content/120-static-site-generators/100-next-js.md",
"static-site-generators:remix": "/roadmaps/100-frontend/content/120-static-site-generators/108-remix.md",
"static-site-generators:gatsbyjs": "/roadmaps/100-frontend/content/120-static-site-generators/101-gatsbyjs.md",
"static-site-generators:nuxt-js": "/roadmaps/100-frontend/content/120-static-site-generators/102-nuxt-js.md",
"static-site-generators:vuepress": "/roadmaps/100-frontend/content/120-static-site-generators/103-vuepress.md",
"static-site-generators:jekyll": "/roadmaps/100-frontend/content/120-static-site-generators/104-jekyll.md",
"static-site-generators:hugo": "/roadmaps/100-frontend/content/120-static-site-generators/105-hugo.md",
"static-site-generators:gridsome": "/roadmaps/100-frontend/content/120-static-site-generators/106-gridsome.md",
"static-site-generators:eleventy": "/roadmaps/100-frontend/content/120-static-site-generators/107-eleventy.md",
"mobile-applications": "/roadmaps/100-frontend/content/121-mobile-applications/readme.md",
"mobile-applications:react-native": "/roadmaps/100-frontend/content/121-mobile-applications/100-react-native.md",
"mobile-applications:nativescript": "/roadmaps/100-frontend/content/121-mobile-applications/101-nativescript.md",
"mobile-applications:flutter": "/roadmaps/100-frontend/content/121-mobile-applications/102-flutter.md",
"mobile-applications:ionic": "/roadmaps/100-frontend/content/121-mobile-applications/103-ionic.md",
"desktop-applications": "/roadmaps/100-frontend/content/122-desktop-applications/readme.md",
"desktop-applications:electron": "/roadmaps/100-frontend/content/122-desktop-applications/100-electron.md",
"desktop-applications:tauri": "/roadmaps/100-frontend/content/122-desktop-applications/101-tauri.md",
"desktop-applications:proton-native": "/roadmaps/100-frontend/content/122-desktop-applications/102-proton-native.md",
"web-assembly": "/roadmaps/100-frontend/content/123-web-assembly.md"
}

View File

@@ -1,11 +0,0 @@
# Internet
The Internet is a global network of computers connected to each other which communicate through a standardized set of protocols.
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://www.vox.com/2014/6/16/18076282/the-internet'>The Internet Explained</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='http://web.stanford.edu/class/msande91si/www-spr04/readings/week1/InternetWhitepaper.htm'>How Does the Internet Work?</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://developer.mozilla.org/en-US/docs/Learn/Common_questions/How_does_the_Internet_work'>How Does the Internet Work? MDN Docs</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='/guides/what-is-internet'>Introduction to Internet</BadgeLink>
<BadgeLink badgeText='Watch' href='https://www.youtube.com/watch?v=TNQsmPf24go'>How does the Internet work?</BadgeLink>
<BadgeLink badgeText='Watch' href='https://www.youtube.com/watch?v=7_LPdttKXPc'>How the Internet Works in 5 Minutes</BadgeLink>

View File

@@ -1,11 +0,0 @@
# What is HTTP?
HTTP is the `TCP/IP` based application layer communication protocol which standardizes how the client and server communicate with each other. HTTP follows a classical "Client-Server model" with a client opening a connection request, then waiting until it receives a response. HTTP is a stateless protocol, that means that the server does not keep any data (state) between two requests.
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://www.cloudflare.com/en-gb/learning/ddos/glossary/hypertext-transfer-protocol-http/'>What is HTTP?</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://howhttps.works'>How HTTPS Works ...in a comic!</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://developer.mozilla.org/en-US/docs/Web/HTTP/Overview'>An overview of HTTP</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://kamranahmed.info/blog/2016/08/13/http-in-depth'>Journey to HTTP/2</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://www.smashingmagazine.com/2021/08/http3-core-concepts-part1/'>HTTP/3 From A To Z: Core Concepts</BadgeLink>
<BadgeLink badgeText='Watch' href='https://www.youtube.com/watch?v=iYM2zFP3Zn0'>HTTP Crash Course & Exploration</BadgeLink>

Some files were not shown because too many files have changed in this diff Show More