mirror of
https://github.com/kamranahmedse/developer-roadmap.git
synced 2026-03-12 17:51:53 +08:00
Compare commits
19 Commits
fix/editor
...
testimonia
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
dfaf120314 | ||
|
|
be5ccbbc0b | ||
|
|
12950051d6 | ||
|
|
03cd25b6c0 | ||
|
|
829615ffec | ||
|
|
6a24436418 | ||
|
|
c726a1a342 | ||
|
|
7d7835ee9c | ||
|
|
17d30c0e8d | ||
|
|
62bd5c339f | ||
|
|
111f702b9b | ||
|
|
3dd115dce1 | ||
|
|
75925cb53a | ||
|
|
de5bed02f8 | ||
|
|
72c670570b | ||
|
|
a450b4ed5a | ||
|
|
66be61efa3 | ||
|
|
caddd0f93d | ||
|
|
cc32cbe79c |
BIN
public/pdfs/roadmaps/cloudflare.pdf
Normal file
BIN
public/pdfs/roadmaps/cloudflare.pdf
Normal file
Binary file not shown.
File diff suppressed because one or more lines are too long
519
public/roadmap-content/cloudflare.json
Normal file
519
public/roadmap-content/cloudflare.json
Normal file
@@ -0,0 +1,519 @@
|
||||
{
|
||||
"PcYnYAAkKMbzoiCnBfjqO": {
|
||||
"title": "JavaScript Fundamentals",
|
||||
"description": "",
|
||||
"links": []
|
||||
},
|
||||
"q9oQTt_NqhdWvJfA5XH1V": {
|
||||
"title": "Basic Command-line Knowledge",
|
||||
"description": "",
|
||||
"links": []
|
||||
},
|
||||
"9iSdASlRxyod9YwZ2IUry": {
|
||||
"title": "HTTP and Web Protocols",
|
||||
"description": "",
|
||||
"links": []
|
||||
},
|
||||
"C08pIguX1N45Iw0kh0Fvu": {
|
||||
"title": "Git Basics",
|
||||
"description": "",
|
||||
"links": []
|
||||
},
|
||||
"dSBYTGGkol3MAXyg7G7_J": {
|
||||
"title": "Node.js and NPM",
|
||||
"description": "",
|
||||
"links": []
|
||||
},
|
||||
"zR84MFLL6y0dygz9hXXPA": {
|
||||
"title": "TypeScript Fundamentals",
|
||||
"description": "",
|
||||
"links": []
|
||||
},
|
||||
"Isl5anwDvb1MacA-JH4ej": {
|
||||
"title": "Understand Serverless Architecture",
|
||||
"description": "",
|
||||
"links": []
|
||||
},
|
||||
"TB6vGzDgGZ9yAd9MGR7vw": {
|
||||
"title": "Workers Runtime Environment",
|
||||
"description": "",
|
||||
"links": []
|
||||
},
|
||||
"aGWLomYHGkIfn7GFc0_Yl": {
|
||||
"title": "Edge Computing Fundamentals",
|
||||
"description": "",
|
||||
"links": []
|
||||
},
|
||||
"HNEXPU6r_T7UYvwLv2wnt": {
|
||||
"title": "Request/Response Handling",
|
||||
"description": "",
|
||||
"links": []
|
||||
},
|
||||
"_2UnRlbUplHvs5-Stj4O4": {
|
||||
"title": "Fetch API and Runtime APIs",
|
||||
"description": "",
|
||||
"links": []
|
||||
},
|
||||
"i6L9FI6fBDXr0XtMrc_uR": {
|
||||
"title": "Workers Lifecycle",
|
||||
"description": "",
|
||||
"links": []
|
||||
},
|
||||
"WZSi9inWPhqZQvDN-C8BV": {
|
||||
"title": "Service Bindings",
|
||||
"description": "",
|
||||
"links": []
|
||||
},
|
||||
"uBjcQ9PJUfwzu5N_2CNjN": {
|
||||
"title": "Caching Strategies",
|
||||
"description": "",
|
||||
"links": []
|
||||
},
|
||||
"aStbAF4zraqhJ-N3RH4ha": {
|
||||
"title": "Middleware Patterns",
|
||||
"description": "",
|
||||
"links": []
|
||||
},
|
||||
"9ef2VPCru8lCmRxxGe-Eo": {
|
||||
"title": "Bindings",
|
||||
"description": "",
|
||||
"links": []
|
||||
},
|
||||
"-8MsWNvuqwQCbLpOx_kov": {
|
||||
"title": "Hono",
|
||||
"description": "Hono is a small, simple and ultrafast web framework built on web standards. It works on any JavaScript runtime: Cloudflare Workers, Fastly Compute, Deno, Bun, Vercel, Netlify, AWS Lambda, Lambda@Edge, and Node.js. Hono is more known for supporting a lot more than the basics.\n\nUse-cases\n---------\n\nHono is a simple web application framework similar to the well known javascript framework Express, without a frontend. But it runs on CDN Edges and allows you to construct larger applications when combined with middleware.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Hono JS Examples",
|
||||
"url": "https://github.com/honojs/examples",
|
||||
"type": "opensource"
|
||||
},
|
||||
{
|
||||
"title": "Official Documentation",
|
||||
"url": "https://hono.dev/docs/",
|
||||
"type": "article"
|
||||
},
|
||||
{
|
||||
"title": "Hono.js: A Small Framework with Big Potential",
|
||||
"url": "https://medium.com/@appvintechnologies/hono-js-a-small-framework-with-big-potential-15a093fc5c07",
|
||||
"type": "article"
|
||||
},
|
||||
{
|
||||
"title": "Quick Start with Hono: Simple Setup Guide",
|
||||
"url": "https://dev.to/koshirok096/quick-start-with-hono-simple-setup-guide-bite-sized-article-lhe",
|
||||
"type": "article"
|
||||
},
|
||||
{
|
||||
"title": "Learn with me",
|
||||
"url": "https://www.youtube.com/watch?v=gY-TK33G6kQ",
|
||||
"type": "video"
|
||||
}
|
||||
]
|
||||
},
|
||||
"15jl6CSCkqnh_eFfysLDM": {
|
||||
"title": "Itty Router",
|
||||
"description": "Itty Router is a lightweight router with the motto \"less is more\" that supports Cloudflare workers and pages. While other libraries may suffer from feature creep/bloat to please a wider audience, Itty Router painfully consider every single byte added to itty. Our router options range from ~450 bytes to ~970 bytes for a batteries-included version with built-in defaults, error handling, formatting, etc. On top of that, the following concepts aim to keep YOUR code tiny (and readable) as well.\n\nSimple Projects ideas\n---------------------\n\nItty Router is a lightweight router system that supports typescript. You can create easy and good routers for Cloudflare workers or pages. With a simple project like a URL shortener, you can use Itty Router and Cloudflare KV.\n\nOther project ideas can be found:\n\n* Webhook Relay\n * Transform webhook data or API data towards another API so you can transform the data as you like.\n* Micro URL Monitoring\n * Monitor any URL and give back responses on the specific endpoint.\n* Single-Use Download Links (Watch out for costs from Cloudflare!)\n * Generate links that expire after one download, ideal for file sharing.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Official Documentation",
|
||||
"url": "https://itty.dev/itty-router/",
|
||||
"type": "article"
|
||||
}
|
||||
]
|
||||
},
|
||||
"Tzx93tvoGrc9_fKQqkorN": {
|
||||
"title": "Wrangler",
|
||||
"description": "",
|
||||
"links": []
|
||||
},
|
||||
"uoaOrypiMkyoikXvTHeVS": {
|
||||
"title": "DevTools Integration",
|
||||
"description": "",
|
||||
"links": []
|
||||
},
|
||||
"8Y6TIYoWIXrxtmzDVdS0b": {
|
||||
"title": "CI/CD Pipelines",
|
||||
"description": "",
|
||||
"links": []
|
||||
},
|
||||
"zSwio18XdBfqwSneAx_AP": {
|
||||
"title": "Any Frontend Framework",
|
||||
"description": "",
|
||||
"links": []
|
||||
},
|
||||
"o4sBgniPmLqwej6TlIPcl": {
|
||||
"title": "Miniflare",
|
||||
"description": "",
|
||||
"links": []
|
||||
},
|
||||
"1dGFfQauOgHP7T4ReMpCU": {
|
||||
"title": "Workers KV",
|
||||
"description": "",
|
||||
"links": []
|
||||
},
|
||||
"EBTHbXOOZiqrcYJvKhcWV": {
|
||||
"title": "Key-value Operations",
|
||||
"description": "",
|
||||
"links": []
|
||||
},
|
||||
"sQlRIYLnZcugATgpogJmw": {
|
||||
"title": "Metadata Handling",
|
||||
"description": "",
|
||||
"links": []
|
||||
},
|
||||
"i64-aCpZHygq76fBU6eXD": {
|
||||
"title": "Bulk Operations",
|
||||
"description": "",
|
||||
"links": []
|
||||
},
|
||||
"OgW-iIrJZ5-sOWKnFpIZd": {
|
||||
"title": "Caching Patterns",
|
||||
"description": "",
|
||||
"links": []
|
||||
},
|
||||
"gxLUlXGuaY5Q-0xmBgQwz": {
|
||||
"title": "R2 Storage",
|
||||
"description": "",
|
||||
"links": []
|
||||
},
|
||||
"K9iW2H6riKwddWmpWJFJw": {
|
||||
"title": "Object Storage",
|
||||
"description": "",
|
||||
"links": []
|
||||
},
|
||||
"BPahk1qH9Hk11tsE2hw3A": {
|
||||
"title": "Large File Handling",
|
||||
"description": "",
|
||||
"links": []
|
||||
},
|
||||
"3jU5753Uza2aS-gZo7w4k": {
|
||||
"title": "Asset Management",
|
||||
"description": "",
|
||||
"links": []
|
||||
},
|
||||
"UNE6XK4su5r2jcxhY7hOG": {
|
||||
"title": "Bucket Operations",
|
||||
"description": "",
|
||||
"links": []
|
||||
},
|
||||
"YvgmmF9sWfURgijFV7E31": {
|
||||
"title": "Bucket Lifecycle",
|
||||
"description": "",
|
||||
"links": []
|
||||
},
|
||||
"mKN0Ta3zSk7PCm_uHYKFN": {
|
||||
"title": "D1",
|
||||
"description": "",
|
||||
"links": []
|
||||
},
|
||||
"PnhP47woPJb_JnLpMMiTw": {
|
||||
"title": "Schema Management",
|
||||
"description": "",
|
||||
"links": []
|
||||
},
|
||||
"M8rSSVFUHixgWZRfaBPHb": {
|
||||
"title": "Migrations",
|
||||
"description": "",
|
||||
"links": []
|
||||
},
|
||||
"65xDESm6jbHWkVO4NgHqx": {
|
||||
"title": "Query Optimization",
|
||||
"description": "",
|
||||
"links": []
|
||||
},
|
||||
"MpWO1sroeF106SEMU1V1a": {
|
||||
"title": "Drizzle",
|
||||
"description": "",
|
||||
"links": []
|
||||
},
|
||||
"h3MHLZZwkYqqb5PSfMhpB": {
|
||||
"title": "Prisma",
|
||||
"description": "",
|
||||
"links": []
|
||||
},
|
||||
"zyRgTtlng6idboSgL9YTt": {
|
||||
"title": "Queues",
|
||||
"description": "",
|
||||
"links": []
|
||||
},
|
||||
"EFA8m0EdhygxcBWzwmbnT": {
|
||||
"title": "Message Processing",
|
||||
"description": "",
|
||||
"links": []
|
||||
},
|
||||
"qgvDGyLjc6lMmVPjHozFM": {
|
||||
"title": "Background Jobs",
|
||||
"description": "",
|
||||
"links": []
|
||||
},
|
||||
"MInAsLLJtIq6WQDSj5yGH": {
|
||||
"title": "Rate Limiting",
|
||||
"description": "",
|
||||
"links": []
|
||||
},
|
||||
"Grl59SjY31Q3sgf9uX-xf": {
|
||||
"title": "Dead Letter Queues",
|
||||
"description": "",
|
||||
"links": []
|
||||
},
|
||||
"G-xBbtaniYFRE9Dgs18px": {
|
||||
"title": "Durable Objects",
|
||||
"description": "",
|
||||
"links": []
|
||||
},
|
||||
"EQjhRlM7zpANNWkypScIl": {
|
||||
"title": "State Management",
|
||||
"description": "",
|
||||
"links": []
|
||||
},
|
||||
"RYm0oBFCxm-S-aCwZ21p6": {
|
||||
"title": "Coordination",
|
||||
"description": "",
|
||||
"links": []
|
||||
},
|
||||
"36w4Q73XkCwo5Cva0XsF8": {
|
||||
"title": "Persistence",
|
||||
"description": "",
|
||||
"links": []
|
||||
},
|
||||
"rxxibrJUo1rQ3XCuUIP59": {
|
||||
"title": "Transactional Operations",
|
||||
"description": "",
|
||||
"links": []
|
||||
},
|
||||
"rAl7zXcODiqIpS__3qf1A": {
|
||||
"title": "Workflows",
|
||||
"description": "",
|
||||
"links": []
|
||||
},
|
||||
"a0S0_JLwLLNGLUAHrqG4P": {
|
||||
"title": "Workers AI",
|
||||
"description": "",
|
||||
"links": []
|
||||
},
|
||||
"zMwmoCUp9429_aXU-Bz4H": {
|
||||
"title": "Text Generation",
|
||||
"description": "",
|
||||
"links": []
|
||||
},
|
||||
"S7laV14zsx31O0Tsj2SRL": {
|
||||
"title": "Image Processing",
|
||||
"description": "",
|
||||
"links": []
|
||||
},
|
||||
"HJbJ8OxjJzznYwLlIOSO2": {
|
||||
"title": "Speech Rcognition",
|
||||
"description": "",
|
||||
"links": []
|
||||
},
|
||||
"QxPoNHsL-Pj_z3aU6qEP4": {
|
||||
"title": "AI Model Integration",
|
||||
"description": "",
|
||||
"links": []
|
||||
},
|
||||
"NWGVtH1vxQuO4lly0Omuy": {
|
||||
"title": "Vectorize",
|
||||
"description": "",
|
||||
"links": []
|
||||
},
|
||||
"UIWaR1ZdjSm0UAS69Kz_5": {
|
||||
"title": "Vector Embeddings",
|
||||
"description": "",
|
||||
"links": []
|
||||
},
|
||||
"pg3GtykCegK411DYDN8sN": {
|
||||
"title": "Similarity Search",
|
||||
"description": "",
|
||||
"links": []
|
||||
},
|
||||
"Ep9_oV_YnkbH1gHM-n3gO": {
|
||||
"title": "AI-powered Search",
|
||||
"description": "",
|
||||
"links": []
|
||||
},
|
||||
"LoT3NtpNj9uAgQRV-MD_E": {
|
||||
"title": "Stream",
|
||||
"description": "",
|
||||
"links": []
|
||||
},
|
||||
"zQp7XfDKWJgMf2LexRJhN": {
|
||||
"title": "Video Delivery",
|
||||
"description": "",
|
||||
"links": []
|
||||
},
|
||||
"RiQSPAV9uRFgwQFJckTFV": {
|
||||
"title": "Live streaming",
|
||||
"description": "",
|
||||
"links": []
|
||||
},
|
||||
"3B6Z7F0D3Sf8ZBlV3kkGx": {
|
||||
"title": "Video Processing",
|
||||
"description": "",
|
||||
"links": []
|
||||
},
|
||||
"8bOWuopxHtBWUSFaVT54P": {
|
||||
"title": "Images",
|
||||
"description": "",
|
||||
"links": []
|
||||
},
|
||||
"vHQdMgaL2EEr2o_eJmOuV": {
|
||||
"title": "Calls",
|
||||
"description": "",
|
||||
"links": []
|
||||
},
|
||||
"aKEH4ZxI6J1nwjp_AgH5r": {
|
||||
"title": "Logging and Monitoring",
|
||||
"description": "",
|
||||
"links": []
|
||||
},
|
||||
"z-1Ye5hcNdr9r6Gwdw7mv": {
|
||||
"title": "Email Workers",
|
||||
"description": "",
|
||||
"links": []
|
||||
},
|
||||
"-lsYPD6JueIV94RybGH_Y": {
|
||||
"title": "Routing",
|
||||
"description": "",
|
||||
"links": []
|
||||
},
|
||||
"6bNUqx5f_w5NuDL25BABN": {
|
||||
"title": "Processing",
|
||||
"description": "",
|
||||
"links": []
|
||||
},
|
||||
"kdIfqTCcOSvV4KDpjr7nu": {
|
||||
"title": "Filtering",
|
||||
"description": "",
|
||||
"links": []
|
||||
},
|
||||
"vu8yJsS1WccsdcEVUqwNd": {
|
||||
"title": "AI Gateway",
|
||||
"description": "",
|
||||
"links": []
|
||||
},
|
||||
"qkFRW_tJB8_1IYpYskQ5M": {
|
||||
"title": "Browser Rendering",
|
||||
"description": "",
|
||||
"links": []
|
||||
},
|
||||
"76xovsBrKOnlRBVjsqNq1": {
|
||||
"title": "Security & Performance",
|
||||
"description": "",
|
||||
"links": []
|
||||
},
|
||||
"8IF7jftushwZrn7JXpC_v": {
|
||||
"title": "Workers Security Model",
|
||||
"description": "",
|
||||
"links": []
|
||||
},
|
||||
"uNinrB9wm5ahjGXu5fc0g": {
|
||||
"title": "Isolates Architecture",
|
||||
"description": "",
|
||||
"links": []
|
||||
},
|
||||
"KWix4jeNUKJ07Iu95Mqj_": {
|
||||
"title": "Web Security Headers",
|
||||
"description": "",
|
||||
"links": []
|
||||
},
|
||||
"JP5U6c2fZjtkU-Xzwtapx": {
|
||||
"title": "Rate Limiting",
|
||||
"description": "",
|
||||
"links": []
|
||||
},
|
||||
"ui3pUfsGMxv4WRzHkgbF0": {
|
||||
"title": "Cache API",
|
||||
"description": "",
|
||||
"links": []
|
||||
},
|
||||
"INiqdtppBmCthOEXuHb-V": {
|
||||
"title": "HTML Rewriting",
|
||||
"description": "",
|
||||
"links": []
|
||||
},
|
||||
"sXBxaQtwJ-luGVXdqVXk1": {
|
||||
"title": "Edge SSL/TLS",
|
||||
"description": "",
|
||||
"links": []
|
||||
},
|
||||
"So-cKAVfbgsw2zzFREu7Q": {
|
||||
"title": "Bot Management",
|
||||
"description": "",
|
||||
"links": []
|
||||
},
|
||||
"wvurOKbemF4Tt2WZcmqDL": {
|
||||
"title": "Integration & Workflows",
|
||||
"description": "",
|
||||
"links": []
|
||||
},
|
||||
"SaHqm7T4FFVrsgyfImo66": {
|
||||
"title": "Pages Functions",
|
||||
"description": "",
|
||||
"links": []
|
||||
},
|
||||
"JfpVexcbuWCx_R3EjFmbo": {
|
||||
"title": "Service Bindings",
|
||||
"description": "",
|
||||
"links": []
|
||||
},
|
||||
"jYAUIKozuhsNK5LbkeAJ6": {
|
||||
"title": "Inter Worker Communication",
|
||||
"description": "",
|
||||
"links": []
|
||||
},
|
||||
"4g5w6IAdzefdlRTxbRbdS": {
|
||||
"title": "External API Integration",
|
||||
"description": "",
|
||||
"links": []
|
||||
},
|
||||
"uOUjI6CPrhZIlz6mRCtOW": {
|
||||
"title": "Webhook Handling",
|
||||
"description": "",
|
||||
"links": []
|
||||
},
|
||||
"Z9Yywlf7rXFBtxTq5B2Y5": {
|
||||
"title": "Event-driven Architectures",
|
||||
"description": "",
|
||||
"links": []
|
||||
},
|
||||
"gsCRhwwjXuyueaYHSPOVZ": {
|
||||
"title": "Development Tools",
|
||||
"description": "",
|
||||
"links": []
|
||||
},
|
||||
"n0vIbHmUZHrF4WjEhYdb8": {
|
||||
"title": "Wrangler",
|
||||
"description": "",
|
||||
"links": []
|
||||
},
|
||||
"vZHBp4S6WaS5sa5rfUOk-": {
|
||||
"title": "Miniflare",
|
||||
"description": "",
|
||||
"links": []
|
||||
},
|
||||
"G6YQZUQh_x8Qxm1oBseLQ": {
|
||||
"title": "DevTools",
|
||||
"description": "",
|
||||
"links": []
|
||||
},
|
||||
"jyWxaMx7_nojt5HsyAv7K": {
|
||||
"title": "Testing Frameworks",
|
||||
"description": "",
|
||||
"links": []
|
||||
},
|
||||
"Cy2T8978yUAPGol-yzxv_": {
|
||||
"title": "Monitoring Tools",
|
||||
"description": "",
|
||||
"links": []
|
||||
},
|
||||
"TmQC7fTL6b9EsBDYibv4g": {
|
||||
"title": "Debugging Techniques",
|
||||
"description": "",
|
||||
"links": []
|
||||
},
|
||||
"8WZpSKBHCeYfTEL9tBNKr": {
|
||||
"title": "Tunnels",
|
||||
"description": "",
|
||||
"links": []
|
||||
}
|
||||
}
|
||||
BIN
public/roadmaps/cloudflare.png
Normal file
BIN
public/roadmaps/cloudflare.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 506 KiB |
@@ -43,6 +43,7 @@ Here is the list of available roadmaps with more being actively worked upon.
|
||||
- [AI and Data Scientist Roadmap](https://roadmap.sh/ai-data-scientist)
|
||||
- [AI Engineer Roadmap](https://roadmap.sh/ai-engineer)
|
||||
- [AWS Roadmap](https://roadmap.sh/aws)
|
||||
- [Cloudflare Roadmap](https://roadmap.sh/cloudflare)
|
||||
- [Linux Roadmap](https://roadmap.sh/linux)
|
||||
- [Terraform Roadmap](https://roadmap.sh/terraform)
|
||||
- [Data Analyst Roadmap](https://roadmap.sh/data-analyst)
|
||||
|
||||
@@ -5,7 +5,7 @@ import {
|
||||
COURSE_PURCHASE_PARAM,
|
||||
setAuthToken,
|
||||
} from '../../lib/jwt';
|
||||
import { cn } from '../../../editor/utils/classname.ts';
|
||||
import { cn } from '../../lib/classname.ts';
|
||||
import { httpGet } from '../../lib/http';
|
||||
import { Spinner } from '../ReactIcons/Spinner.tsx';
|
||||
import { CHECKOUT_AFTER_LOGIN_KEY } from './CourseLoginPopup.tsx';
|
||||
|
||||
@@ -1,22 +1,25 @@
|
||||
import { useStore } from '@nanostores/react';
|
||||
import {
|
||||
ChartColumn,
|
||||
CheckCircle,
|
||||
CheckSquare,
|
||||
FolderGit2,
|
||||
Pencil,
|
||||
SquarePen,
|
||||
Zap,
|
||||
type LucideIcon,
|
||||
type LucideIcon
|
||||
} from 'lucide-react';
|
||||
import { useEffect, useState } from 'react';
|
||||
import type { AllowedProfileVisibility } from '../../api/user.ts';
|
||||
import { useToast } from '../../hooks/use-toast';
|
||||
import { cn } from '../../lib/classname.ts';
|
||||
import type { GuideFileType } from '../../lib/guide';
|
||||
import { httpGet } from '../../lib/http';
|
||||
import type { QuestionGroupType } from '../../lib/question-group';
|
||||
import type { AllowedRoadmapRenderer } from '../../lib/roadmap.ts';
|
||||
import type { VideoFileType } from '../../lib/video';
|
||||
import { $accountStreak, type StreakResponse } from '../../stores/streak';
|
||||
import type { PageType } from '../CommandMenu/CommandMenu';
|
||||
import { FeaturedGuideList } from '../FeaturedGuides/FeaturedGuideList';
|
||||
import { FeaturedVideoList } from '../FeaturedVideos/FeaturedVideoList';
|
||||
import {
|
||||
FavoriteRoadmaps,
|
||||
type AIRoadmapType,
|
||||
@@ -24,12 +27,21 @@ import {
|
||||
import { HeroRoadmap } from '../HeroSection/HeroRoadmap.tsx';
|
||||
import type { ProjectStatusDocument } from '../Projects/ListProjectSolutions';
|
||||
import type { UserProgress } from '../TeamProgress/TeamProgressPage';
|
||||
import { projectGroups } from '../../pages/index.astro';
|
||||
import type { QuestionGroupType } from '../../lib/question-group';
|
||||
import { FeaturedGuideList } from '../FeaturedGuides/FeaturedGuideList';
|
||||
import { FeaturedVideoList } from '../FeaturedVideos/FeaturedVideoList';
|
||||
import type { GuideFileType } from '../../lib/guide';
|
||||
import type { VideoFileType } from '../../lib/video';
|
||||
|
||||
const projectGroups = [
|
||||
{
|
||||
title: 'Frontend',
|
||||
id: 'frontend',
|
||||
},
|
||||
{
|
||||
title: 'Backend',
|
||||
id: 'backend',
|
||||
},
|
||||
{
|
||||
title: 'DevOps',
|
||||
id: 'devops',
|
||||
},
|
||||
];
|
||||
|
||||
type UserDashboardResponse = {
|
||||
name: string;
|
||||
|
||||
@@ -257,6 +257,12 @@ const groups: GroupType[] = [
|
||||
type: 'skill',
|
||||
otherGroups: ['Web Development'],
|
||||
},
|
||||
{
|
||||
title: 'Cloudflare',
|
||||
link: '/cloudflare',
|
||||
type: 'skill',
|
||||
otherGroups: ['Web Development'],
|
||||
},
|
||||
{
|
||||
title: 'Linux',
|
||||
link: '/linux',
|
||||
|
||||
163
src/components/SQLCourse/ReviewsSection.tsx
Normal file
163
src/components/SQLCourse/ReviewsSection.tsx
Normal file
@@ -0,0 +1,163 @@
|
||||
import { ChevronDownIcon, StarIcon, User2Icon } from 'lucide-react';
|
||||
import { useState } from 'react';
|
||||
import { cn } from '../../../editor/utils/classname';
|
||||
import { markdownToHtml } from '../../lib/markdown';
|
||||
|
||||
type Review = {
|
||||
name: string;
|
||||
role: string;
|
||||
rating: number;
|
||||
text: string;
|
||||
avatarUrl?: string;
|
||||
};
|
||||
|
||||
export function ReviewsSection() {
|
||||
const [isExpanded, setIsExpanded] = useState(false);
|
||||
const reviews: Review[] = [
|
||||
{
|
||||
name: 'Tomáš Janků',
|
||||
role: 'Software Engineer',
|
||||
rating: 5,
|
||||
text: "The course and it's interactivity is excellent and I'd honestly say it's **one of the best** on the SQL theme I've seen out there.",
|
||||
avatarUrl: 'https://github.com/jankudev.png',
|
||||
},
|
||||
{
|
||||
name: 'Gourav Khunger',
|
||||
role: 'Software Engineer',
|
||||
rating: 5,
|
||||
text: 'This course was **absolutely brilliant!** The integrated database environment to practice what I learned was the best part.',
|
||||
avatarUrl: 'https://github.com/gouravkhunger.png',
|
||||
},
|
||||
{
|
||||
name: 'Meabed',
|
||||
role: 'CTO',
|
||||
rating: 5,
|
||||
text: 'Kamran has **clearly put a lot of thought** into this course. The content, structure and exercises were all great.',
|
||||
avatarUrl: 'https://github.com/meabed.png',
|
||||
},
|
||||
{
|
||||
name: 'Mohsin Aheer',
|
||||
role: 'Sr. Software Engineer',
|
||||
rating: 5,
|
||||
text: 'I already knew SQL but this course **taught me a bunch of new things.** Practical examples and challenges were great. Highly recommended!',
|
||||
avatarUrl: 'https://github.com/aheermohsinse.png',
|
||||
},
|
||||
{
|
||||
name: 'Reeve Tee',
|
||||
role: 'Software Engineer',
|
||||
rating: 5,
|
||||
text: 'I found the course **highly comprehensive and incredibly valuable**. I would love to see more courses like this!',
|
||||
avatarUrl: '',
|
||||
},
|
||||
{
|
||||
name: 'Zeeshan',
|
||||
role: 'Sr. Software Engineer',
|
||||
rating: 5,
|
||||
text: 'Loved the teaching style and the way the course was structured. The **AI tutor was a great help** when I got stuck.',
|
||||
avatarUrl: 'https://github.com/ziishaned.png',
|
||||
},
|
||||
{
|
||||
name: 'Adnan Ahmed',
|
||||
role: 'Engineering Manager',
|
||||
rating: 5,
|
||||
text: 'Having the integrated IDE made a huge difference. Being able to immediately practice what I learned was **invaluable**.',
|
||||
avatarUrl: 'https://github.com/idnan.png',
|
||||
},
|
||||
{
|
||||
name: 'Kalvin Chakma',
|
||||
role: 'Jr. Software Engineer',
|
||||
rating: 5,
|
||||
text: "Best SQL course I've taken. The progression from basic to advanced concepts is **well thought out**, and the challenges are **excellent**.",
|
||||
avatarUrl: 'https://github.com/kalvin-chakma.png',
|
||||
},
|
||||
{
|
||||
name: 'Faisal Ahsan',
|
||||
role: 'Software Engineer',
|
||||
rating: 5,
|
||||
text: 'The course and the learning experience was great. What I really liked was the **no-fluff explanations** and practical examples.',
|
||||
avatarUrl: 'https://github.com/faisalahsan.png',
|
||||
},
|
||||
];
|
||||
|
||||
return (
|
||||
<div className="relative max-w-5xl">
|
||||
<div
|
||||
className={cn('rounded-2xl pb-0 pt-24', {
|
||||
'pb-8': isExpanded,
|
||||
})}
|
||||
>
|
||||
<div
|
||||
className={cn(
|
||||
'relative grid grid-cols-1 gap-4 md:grid-cols-2 lg:grid-cols-3',
|
||||
isExpanded ? '' : 'max-h-[400px] overflow-hidden',
|
||||
)}
|
||||
>
|
||||
{reviews.map((review, index) => (
|
||||
<div
|
||||
key={index}
|
||||
className="review-testimonial flex-shrink-0 break-inside-avoid-column rounded-xl bg-zinc-800/30 p-6 backdrop-blur [&_strong]:font-normal [&_strong]:text-yellow-300/70"
|
||||
>
|
||||
<div className="flex items-center gap-4">
|
||||
{review.avatarUrl && (
|
||||
<img
|
||||
src={review.avatarUrl}
|
||||
alt={review.name}
|
||||
className="h-12 w-12 rounded-full object-cover"
|
||||
/>
|
||||
)}
|
||||
{!review.avatarUrl && (
|
||||
<div className="flex h-12 w-12 items-center justify-center rounded-full bg-zinc-800">
|
||||
<User2Icon className="h-6 w-6 text-zinc-400" />
|
||||
</div>
|
||||
)}
|
||||
<div>
|
||||
<h3 className="font-semibold text-zinc-100">{review.name}</h3>
|
||||
<p className="text-sm text-zinc-400">{review.role}</p>
|
||||
</div>
|
||||
</div>
|
||||
<div className="mt-2 flex">
|
||||
{Array.from({ length: review.rating }).map((_, i) => (
|
||||
<StarIcon
|
||||
key={i}
|
||||
className="h-4 w-4 fill-yellow-500 text-yellow-500"
|
||||
/>
|
||||
))}
|
||||
</div>
|
||||
<p
|
||||
className="mt-4 text-zinc-300"
|
||||
dangerouslySetInnerHTML={{
|
||||
__html: markdownToHtml(review.text),
|
||||
}}
|
||||
/>
|
||||
</div>
|
||||
))}
|
||||
|
||||
<div
|
||||
className={cn(
|
||||
'absolute bottom-0 left-0 right-0 h-40 bg-gradient-to-t from-[#121212] via-[#121212]/80 to-transparent',
|
||||
isExpanded ? 'opacity-0' : 'opacity-100',
|
||||
)}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div
|
||||
className={cn('absolute left-1/2 top-full -translate-x-1/2', {
|
||||
'-translate-y-1/2': !isExpanded,
|
||||
})}
|
||||
>
|
||||
<button
|
||||
onClick={() => setIsExpanded(!isExpanded)}
|
||||
className="flex items-center gap-2 rounded-full bg-zinc-800 px-6 py-2 text-sm font-medium text-zinc-300 transition-all hover:bg-zinc-700 hover:text-zinc-100"
|
||||
>
|
||||
{isExpanded ? 'Show Less' : 'Show More Reviews'}
|
||||
<ChevronDownIcon
|
||||
className={`h-4 w-4 transition-transform ${
|
||||
isExpanded ? 'rotate-180' : ''
|
||||
}`}
|
||||
/>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
@@ -14,6 +14,7 @@ import {
|
||||
LayersIcon,
|
||||
TableIcon,
|
||||
WrenchIcon,
|
||||
StarIcon,
|
||||
} from 'lucide-react';
|
||||
import { ChapterRow } from './ChapterRow';
|
||||
import { CourseFeature } from './CourseFeature';
|
||||
@@ -27,6 +28,7 @@ import { AccountButton } from './AccountButton';
|
||||
import { RoadmapLogoIcon } from '../ReactIcons/RoadmapLogo';
|
||||
import { PlatformDemo } from './PlatformDemo';
|
||||
import { AuthorQuoteMessage } from './AuthorQuoteMessage';
|
||||
import { ReviewsSection } from './ReviewsSection';
|
||||
type ChapterData = {
|
||||
icon: React.ReactNode;
|
||||
title: string;
|
||||
@@ -254,8 +256,9 @@ export function SQLCoursePage() {
|
||||
</a>
|
||||
<AccountButton />
|
||||
</div>
|
||||
<div className="relative mt-7 max-w-3xl text-left md:mt-20 md:text-center">
|
||||
<div className="relative mt-7 max-w-4xl text-left md:mt-20 md:text-center">
|
||||
<Spotlight className="left-[-170px] top-[-200px]" fill="#EAB308" />
|
||||
|
||||
<div className="inline-block rounded-full bg-yellow-500/10 px-4 py-1.5 text-base text-yellow-500 md:px-6 md:py-2 md:text-lg">
|
||||
<span className="hidden sm:block">
|
||||
Complete Course to Master Practical SQL
|
||||
@@ -299,6 +302,8 @@ export function SQLCoursePage() {
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<ReviewsSection />
|
||||
|
||||
<AuthorQuoteMessage />
|
||||
|
||||
<PlatformDemo />
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
import '../FrameRenderer/FrameRenderer.css';
|
||||
import '../EditorRoadmap/EditorRoadmapRenderer.css';
|
||||
import { useEffect, useRef, useState } from 'react';
|
||||
import { wireframeJSONToSVG } from 'roadmap-renderer';
|
||||
import { Spinner } from '../ReactIcons/Spinner';
|
||||
import '../FrameRenderer/FrameRenderer.css';
|
||||
import { useOutsideClick } from '../../hooks/use-outside-click';
|
||||
import { useKeydown } from '../../hooks/use-keydown';
|
||||
import type { TeamMember } from './TeamProgressPage';
|
||||
@@ -59,6 +60,7 @@ export function MemberProgressModal(props: ProgressMapProps) {
|
||||
useState<MemberProgressResponse>();
|
||||
const [isLoading, setIsLoading] = useState(true);
|
||||
const toast = useToast();
|
||||
const [renderer, setRenderer] = useState<PageType['renderer']>('balsamiq');
|
||||
|
||||
let resourceJsonUrl = import.meta.env.DEV
|
||||
? 'http://localhost:3000'
|
||||
@@ -98,6 +100,7 @@ export function MemberProgressModal(props: ProgressMapProps) {
|
||||
}
|
||||
|
||||
const renderer = page.renderer || 'balsamiq';
|
||||
setRenderer(renderer);
|
||||
|
||||
const res = await fetch(jsonUrl, {});
|
||||
const json = await res.json();
|
||||
@@ -275,7 +278,7 @@ export function MemberProgressModal(props: ProgressMapProps) {
|
||||
return (
|
||||
<div className="fixed left-0 right-0 top-0 z-[100] h-full items-center justify-center overflow-y-auto overflow-x-hidden overscroll-contain bg-black/50">
|
||||
<div
|
||||
id={'customized-roadmap'}
|
||||
id={renderer === 'editor' ? undefined : 'customized-roadmap'}
|
||||
className="relative mx-auto h-full w-full max-w-4xl p-4 md:h-auto"
|
||||
>
|
||||
<div
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -4,6 +4,6 @@ Machine learning is a field of artificial intelligence that uses statistical tec
|
||||
|
||||
Learn more from the following resources:
|
||||
|
||||
- [@article@Advantages and Disadvantages of AI](https://towardsdatascience.com/advantages-and-disadvantages-of-artificial-intelligence-182a5ef6588c)
|
||||
- [@article@Reinforcement Learning 101](https://towardsdatascience.com/reinforcement-learning-101-e24b50e1d292)
|
||||
- [@article@Understanding AUC-ROC Curve](https://towardsdatascience.com/understanding-auc-roc-curve-68b2303cc9c5)
|
||||
- [@article@Advantages and Disadvantages of AI](https://medium.com/@laners.org/advantages-and-disadvantages-of-artificial-intelligence-cd6e42819b20)
|
||||
- [@article@Reinforcement Learning 101](https://medium.com/towards-data-science/reinforcement-learning-101-e24b50e1d292)
|
||||
- [@article@Understanding AUC-ROC Curve](https://medium.com/towards-data-science/understanding-auc-roc-curve-68b2303cc9c5)
|
||||
|
||||
4177
src/data/roadmaps/cloudflare/cloudflare.json
Normal file
4177
src/data/roadmaps/cloudflare/cloudflare.json
Normal file
File diff suppressed because it is too large
Load Diff
64
src/data/roadmaps/cloudflare/cloudflare.md
Normal file
64
src/data/roadmaps/cloudflare/cloudflare.md
Normal file
@@ -0,0 +1,64 @@
|
||||
---
|
||||
jsonUrl: '/jsons/roadmaps/cloudflare.json'
|
||||
pdfUrl: '/pdfs/roadmaps/cloudflare.pdf'
|
||||
order: 21
|
||||
briefTitle: 'Cloudflare'
|
||||
briefDescription: 'Learn to deploy your applications on Cloudflare'
|
||||
title: 'Cloudflare'
|
||||
description: 'Learn to deploy your applications on Cloudflare'
|
||||
isNew: true
|
||||
hasTopics: true
|
||||
renderer: editor
|
||||
dimensions:
|
||||
width: 968
|
||||
height: 2700
|
||||
schema:
|
||||
headline: 'Cloudflare Roadmap'
|
||||
description: 'Learn how to use Cloudflare with this interactive step by step guide in 2025. We also have resources and short descriptions attached to the roadmap items so you can get everything you want to learn in one place.'
|
||||
imageUrl: 'https://roadmap.sh/roadmaps/cloudflare.png'
|
||||
datePublished: '2025-02-12'
|
||||
dateModified: '2025-02-12'
|
||||
seo:
|
||||
title: 'Cloudflare Roadmap - roadmap.sh'
|
||||
description: 'Step by step guide to learn Cloudflare in 2025. We also have resources and short descriptions attached to the roadmap items so you can get everything you want to learn in one place.'
|
||||
keywords:
|
||||
- 'cloudflare tutorial'
|
||||
- 'step by step guide for cloudflare'
|
||||
- 'cloudflare for beginners'
|
||||
- 'how to learn cloudflare'
|
||||
- 'use cloudflare in production'
|
||||
- 'cloudflare roadmap 2024'
|
||||
- 'guide to learning cloudflare'
|
||||
- 'cloudflare roadmap'
|
||||
- 'cloudflare learning path'
|
||||
- 'cloudflare learning roadmap'
|
||||
- 'container roadmap'
|
||||
- 'cloudflare'
|
||||
- 'cloudflare learning guide'
|
||||
- 'cloudflare skills'
|
||||
- 'cloudflare for development'
|
||||
- 'cloudflare for development skills'
|
||||
- 'cloudflare for development skills test'
|
||||
- 'cloudflare learning guide'
|
||||
- 'become a cloudflare expert'
|
||||
- 'cloudflare career path'
|
||||
- 'learn cloudflare for development'
|
||||
- 'what is cloudflare'
|
||||
- 'cloudflare quiz'
|
||||
- 'cloudflare interview questions'
|
||||
relatedRoadmaps:
|
||||
- 'devops'
|
||||
- 'backend'
|
||||
- 'full-stack'
|
||||
- 'javascript'
|
||||
- 'nodejs'
|
||||
- 'aws'
|
||||
- 'linux'
|
||||
sitemap:
|
||||
priority: 1
|
||||
changefreq: 'monthly'
|
||||
tags:
|
||||
- 'roadmap'
|
||||
- 'main-sitemap'
|
||||
- 'skill-roadmap'
|
||||
---
|
||||
@@ -0,0 +1 @@
|
||||
# AI Gateway
|
||||
@@ -0,0 +1 @@
|
||||
# AI Model Integration
|
||||
@@ -0,0 +1 @@
|
||||
# AI-powered Search
|
||||
@@ -0,0 +1 @@
|
||||
# Any Frontend Framework
|
||||
@@ -0,0 +1 @@
|
||||
# Asset Management
|
||||
@@ -0,0 +1 @@
|
||||
# Background Jobs
|
||||
@@ -0,0 +1 @@
|
||||
# Basic Command-line Knowledge
|
||||
@@ -0,0 +1 @@
|
||||
# Bindings
|
||||
@@ -0,0 +1 @@
|
||||
# Bot Management
|
||||
@@ -0,0 +1 @@
|
||||
# Browser Rendering
|
||||
@@ -0,0 +1 @@
|
||||
# Bucket Lifecycle
|
||||
@@ -0,0 +1 @@
|
||||
# Bucket Operations
|
||||
@@ -0,0 +1 @@
|
||||
# Bulk Operations
|
||||
@@ -0,0 +1 @@
|
||||
# Cache API
|
||||
@@ -0,0 +1 @@
|
||||
# Caching Patterns
|
||||
@@ -0,0 +1 @@
|
||||
# Caching Strategies
|
||||
@@ -0,0 +1 @@
|
||||
# Calls
|
||||
@@ -0,0 +1 @@
|
||||
# CI/CD Pipelines
|
||||
@@ -0,0 +1 @@
|
||||
# Coordination
|
||||
@@ -0,0 +1 @@
|
||||
# D1
|
||||
@@ -0,0 +1 @@
|
||||
# Dead Letter Queues
|
||||
@@ -0,0 +1 @@
|
||||
# Debugging Techniques
|
||||
@@ -0,0 +1 @@
|
||||
# Development Tools
|
||||
@@ -0,0 +1 @@
|
||||
# DevTools Integration
|
||||
@@ -0,0 +1 @@
|
||||
# DevTools
|
||||
@@ -0,0 +1 @@
|
||||
# Drizzle
|
||||
@@ -0,0 +1 @@
|
||||
# Durable Objects
|
||||
@@ -0,0 +1 @@
|
||||
# Edge Computing Fundamentals
|
||||
@@ -0,0 +1 @@
|
||||
# Edge SSL/TLS
|
||||
@@ -0,0 +1 @@
|
||||
# Email Workers
|
||||
@@ -0,0 +1 @@
|
||||
# Event-driven Architectures
|
||||
@@ -0,0 +1 @@
|
||||
# External API Integration
|
||||
@@ -0,0 +1 @@
|
||||
# Fetch API and Runtime APIs
|
||||
@@ -0,0 +1 @@
|
||||
# Filtering
|
||||
@@ -0,0 +1 @@
|
||||
# Git Basics
|
||||
@@ -0,0 +1,13 @@
|
||||
# Hono
|
||||
|
||||
Hono is a small, simple and ultrafast web framework built on web standards. It works on any JavaScript runtime: Cloudflare Workers, Fastly Compute, Deno, Bun, Vercel, Netlify, AWS Lambda, Lambda@Edge, and Node.js. Hono is more known for supporting a lot more than the basics.
|
||||
|
||||
## Use-cases
|
||||
Hono is a simple web application framework similar to the well known javascript framework Express, without a frontend. But it runs on CDN Edges and allows you to construct larger applications when combined with middleware.
|
||||
|
||||
Visit the following resources to learn more:
|
||||
- [@official@Official Documentation](https://hono.dev/docs/)
|
||||
- [@article@Hono.js: A Small Framework with Big Potential](https://medium.com/@appvintechnologies/hono-js-a-small-framework-with-big-potential-15a093fc5c07)
|
||||
- [@article@Quick Start with Hono: Simple Setup Guide](https://dev.to/koshirok096/quick-start-with-hono-simple-setup-guide-bite-sized-article-lhe)
|
||||
- [@opensource@Hono JS Examples](https://github.com/honojs/examples)
|
||||
- [@video@Learn with me](https://www.youtube.com/watch?v=gY-TK33G6kQ)
|
||||
@@ -0,0 +1 @@
|
||||
# HTML Rewriting
|
||||
@@ -0,0 +1 @@
|
||||
# HTTP and Web Protocols
|
||||
@@ -0,0 +1 @@
|
||||
# Image Processing
|
||||
@@ -0,0 +1 @@
|
||||
# Images
|
||||
@@ -0,0 +1 @@
|
||||
# Integration & Workflows
|
||||
@@ -0,0 +1 @@
|
||||
# Inter Worker Communication
|
||||
@@ -0,0 +1 @@
|
||||
# Isolates Architecture
|
||||
@@ -0,0 +1,19 @@
|
||||
# Itty Router
|
||||
|
||||
Itty Router is a lightweight router with the motto "less is more" that supports Cloudflare workers and pages. While other libraries may suffer from feature creep/bloat to please a wider audience, Itty Router painfully consider every single byte added to itty. Our router options range from ~450 bytes to ~970 bytes for a batteries-included version with built-in defaults, error handling, formatting, etc. On top of that, the following concepts aim to keep YOUR code tiny (and readable) as well.
|
||||
|
||||
## Simple Projects ideas
|
||||
Itty Router is a lightweight router system that supports typescript. You can create easy and good routers for Cloudflare workers or pages.
|
||||
With a simple project like a URL shortener, you can use Itty Router and Cloudflare KV.
|
||||
|
||||
Other project ideas can be found:
|
||||
- Webhook Relay
|
||||
- Transform webhook data or API data towards another API so you can transform the data as you like.
|
||||
- Micro URL Monitoring
|
||||
- Monitor any URL and give back responses on the specific endpoint.
|
||||
- Single-Use Download Links (Watch out for costs from Cloudflare!)
|
||||
- Generate links that expire after one download, ideal for file sharing.
|
||||
|
||||
Visit the following resources to learn more:
|
||||
- [@official@Official Documentation](https://itty.dev/itty-router/)
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
# JavaScript Fundamentals
|
||||
@@ -0,0 +1 @@
|
||||
# Key-value Operations
|
||||
@@ -0,0 +1 @@
|
||||
# Large File Handling
|
||||
@@ -0,0 +1 @@
|
||||
# Live streaming
|
||||
@@ -0,0 +1 @@
|
||||
# Logging and Monitoring
|
||||
@@ -0,0 +1 @@
|
||||
# Message Processing
|
||||
@@ -0,0 +1 @@
|
||||
# Metadata Handling
|
||||
@@ -0,0 +1 @@
|
||||
# Middleware Patterns
|
||||
@@ -0,0 +1 @@
|
||||
# Migrations
|
||||
@@ -0,0 +1 @@
|
||||
# Miniflare
|
||||
@@ -0,0 +1 @@
|
||||
# Miniflare
|
||||
@@ -0,0 +1 @@
|
||||
# Monitoring Tools
|
||||
@@ -0,0 +1 @@
|
||||
# Node.js and NPM
|
||||
@@ -0,0 +1 @@
|
||||
# Object Storage
|
||||
@@ -0,0 +1 @@
|
||||
# Pages Functions
|
||||
@@ -0,0 +1 @@
|
||||
# Persistence
|
||||
@@ -0,0 +1 @@
|
||||
# Prisma
|
||||
@@ -0,0 +1 @@
|
||||
# Processing
|
||||
@@ -0,0 +1 @@
|
||||
# Query Optimization
|
||||
@@ -0,0 +1 @@
|
||||
# Queues
|
||||
@@ -0,0 +1 @@
|
||||
# R2 Storage
|
||||
@@ -0,0 +1 @@
|
||||
# Rate Limiting
|
||||
@@ -0,0 +1 @@
|
||||
# Rate Limiting
|
||||
@@ -0,0 +1 @@
|
||||
# Request/Response Handling
|
||||
@@ -0,0 +1 @@
|
||||
# Routing
|
||||
@@ -0,0 +1 @@
|
||||
# Schema Management
|
||||
@@ -0,0 +1 @@
|
||||
# Security & Performance
|
||||
@@ -0,0 +1 @@
|
||||
# Service Bindings
|
||||
@@ -0,0 +1 @@
|
||||
# Service Bindings
|
||||
@@ -0,0 +1 @@
|
||||
# Similarity Search
|
||||
@@ -0,0 +1 @@
|
||||
# Speech Rcognition
|
||||
@@ -0,0 +1 @@
|
||||
# State Management
|
||||
@@ -0,0 +1 @@
|
||||
# Stream
|
||||
@@ -0,0 +1 @@
|
||||
# Testing Frameworks
|
||||
@@ -0,0 +1 @@
|
||||
# Text Generation
|
||||
@@ -0,0 +1 @@
|
||||
# Transactional Operations
|
||||
@@ -0,0 +1 @@
|
||||
# Tunnels
|
||||
@@ -0,0 +1 @@
|
||||
# TypeScript Fundamentals
|
||||
@@ -0,0 +1 @@
|
||||
# Understand Serverless Architecture
|
||||
@@ -0,0 +1 @@
|
||||
# Vector Embeddings
|
||||
@@ -0,0 +1 @@
|
||||
# Vectorize
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user