Compare commits
130 Commits
chore/guid
...
feat/mobil
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
362281427d | ||
|
|
c3e3d52832 | ||
|
|
c8ca880b08 | ||
|
|
968ff0eda7 | ||
|
|
ffe4902339 | ||
|
|
2da022394c | ||
|
|
775ccef13f | ||
|
|
61c0cf6ac8 | ||
|
|
02bab42058 | ||
|
|
dbb5959bf5 | ||
|
|
73fe2abd7d | ||
|
|
06a0fc2222 | ||
|
|
be085f8b57 | ||
|
|
080e843a04 | ||
|
|
0eacaefa34 | ||
|
|
60479d71ef | ||
|
|
25a3bd57e6 | ||
|
|
37c5834511 | ||
|
|
f4fa9881af | ||
|
|
fc77e37828 | ||
|
|
307bd209bd | ||
|
|
d2fa463a1e | ||
|
|
0b1b5cb8e7 | ||
|
|
d55bfd4b49 | ||
|
|
ff9097e4f5 | ||
|
|
e815985e4a | ||
|
|
d6ba67a4ae | ||
|
|
f60bf6cde6 | ||
|
|
c65af9f60a | ||
|
|
22cde0cac6 | ||
|
|
162b7bdb84 | ||
|
|
a84a7bdb73 | ||
|
|
524f50b864 | ||
|
|
e9018ef178 | ||
|
|
ed23bcb8c2 | ||
|
|
ebe21f46ee | ||
|
|
85f2987532 | ||
|
|
2586443fbe | ||
|
|
e5f9e76801 | ||
|
|
ab18daa5af | ||
|
|
5a79cffc84 | ||
|
|
2975d79da7 | ||
|
|
7fccbe5066 | ||
|
|
6c66e7fe9b | ||
|
|
e8d2f4aff0 | ||
|
|
dc4ab4a494 | ||
|
|
c11e39b12a | ||
|
|
51d541fae0 | ||
|
|
966b1f5f8b | ||
|
|
c6feb67d67 | ||
|
|
5c094331c9 | ||
|
|
b6586c6fa2 | ||
|
|
d1f863eeac | ||
|
|
23ab77b426 | ||
|
|
0c9eab2c41 | ||
|
|
1dae64f865 | ||
|
|
c2edaa810a | ||
|
|
24eace0f73 | ||
|
|
3c06b122e6 | ||
|
|
2fdb647413 | ||
|
|
3ca9f81298 | ||
|
|
56c4630e0d | ||
|
|
36af3ddcf1 | ||
|
|
0e7afe3c99 | ||
|
|
b605fd6337 | ||
|
|
ba1e5a58b5 | ||
|
|
dd12cf1c99 | ||
|
|
44854cc5fb | ||
|
|
b1e60f1614 | ||
|
|
168ad05afe | ||
|
|
bb0419bf8a | ||
|
|
2d18cefd55 | ||
|
|
931e1b4a31 | ||
|
|
e2075529ac | ||
|
|
8dbe1468ed | ||
|
|
bb13bf38a8 | ||
|
|
80dfd5b206 | ||
|
|
a89c2d454f | ||
|
|
d1cf7cca99 | ||
|
|
9c32f9d469 | ||
|
|
cef4c29f10 | ||
|
|
679e29d12d | ||
|
|
4e569df2a3 | ||
|
|
40c7ea1b43 | ||
|
|
f9f38101f9 | ||
|
|
c4c28944ee | ||
|
|
ffb1cb5059 | ||
|
|
580e764097 | ||
|
|
111a97bb55 | ||
|
|
5d85495d72 | ||
|
|
ed2a251de4 | ||
|
|
449e8f12e4 | ||
|
|
a15b13cedd | ||
|
|
609683db2f | ||
|
|
3e21d05767 | ||
|
|
82edfba6e9 | ||
|
|
65d7a737ac | ||
|
|
2e0a69ad72 | ||
|
|
485ffcf755 | ||
|
|
12ae7de3c5 | ||
|
|
9316d4027f | ||
|
|
5a63432412 | ||
|
|
ffecb5ae1a | ||
|
|
7a51c1af6c | ||
|
|
6970cccc85 | ||
|
|
78940d44a9 | ||
|
|
6f11403a41 | ||
|
|
214799b0c2 | ||
|
|
b5f564cba4 | ||
|
|
df53280ee9 | ||
|
|
487a6a222b | ||
|
|
7933e222ee | ||
|
|
e7b8c033fb | ||
|
|
d893d0fe5d | ||
|
|
1c8571e484 | ||
|
|
3b43ed33c1 | ||
|
|
8a276d8e04 | ||
|
|
36a9e987b5 | ||
|
|
402104665e | ||
|
|
9ec3c1fb9d | ||
|
|
179cefe4da | ||
|
|
93c1ea0496 | ||
|
|
cb7c13fd1b | ||
|
|
704657cb36 | ||
|
|
eba3a78c70 | ||
|
|
d6cf9eb66d | ||
|
|
885e95399e | ||
|
|
d70582411e | ||
|
|
07277708eb | ||
|
|
87280b4c9e |
@@ -3,6 +3,6 @@
|
||||
"enabled": false
|
||||
},
|
||||
"_variables": {
|
||||
"lastUpdateCheck": 1755042938009
|
||||
"lastUpdateCheck": 1757411878192
|
||||
}
|
||||
}
|
||||
@@ -7,4 +7,8 @@ PUBLIC_STRIPE_INDIVIDUAL_MONTHLY_PRICE_ID=
|
||||
PUBLIC_STRIPE_INDIVIDUAL_YEARLY_PRICE_ID=
|
||||
|
||||
PUBLIC_STRIPE_INDIVIDUAL_MONTHLY_PRICE_AMOUNT=10
|
||||
PUBLIC_STRIPE_INDIVIDUAL_YEARLY_PRICE_AMOUNT=100
|
||||
PUBLIC_STRIPE_INDIVIDUAL_YEARLY_PRICE_AMOUNT=100
|
||||
|
||||
ROADMAP_API_KEY=
|
||||
|
||||
PUBLIC_MOBILE_APP_SCHEMA=mobileroadmap://
|
||||
@@ -1,35 +0,0 @@
|
||||
name: "🙏 Submit a Project Idea"
|
||||
description: Help us add project ideas to roadmaps.
|
||||
labels: [project contribution]
|
||||
assignees: []
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
Thanks for taking the time to submit a project idea! Please fill out the information below and we'll get back to you as soon as we can.
|
||||
- type: input
|
||||
id: roadmap-title
|
||||
attributes:
|
||||
label: What Roadmap is this project for?
|
||||
placeholder: e.g. Backend Roadmap
|
||||
validations:
|
||||
required: true
|
||||
- type: dropdown
|
||||
id: project-difficulty
|
||||
attributes:
|
||||
label: Project Difficulty
|
||||
options:
|
||||
- Beginner
|
||||
- Intermediate
|
||||
- Advanced
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: roadmap-description
|
||||
attributes:
|
||||
label: Add Project Details
|
||||
description: Please write a detailed description of the project in 3rd person e.g. "You are required to build a..."
|
||||
placeholder: |
|
||||
e.g. You are required to build a RESTful API...
|
||||
validations:
|
||||
required: true
|
||||
66
.github/workflows/sync-content-to-repo.yml
vendored
Normal file
@@ -0,0 +1,66 @@
|
||||
name: Sync Content to Repo
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
roadmap_slug:
|
||||
description: "The ID of the roadmap to sync"
|
||||
required: true
|
||||
default: "__default__"
|
||||
|
||||
jobs:
|
||||
sync-content:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Setup pnpm@v9
|
||||
uses: pnpm/action-setup@v4
|
||||
with:
|
||||
version: 9
|
||||
run_install: false
|
||||
|
||||
- name: Setup Node.js Version 20 (LTS)
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: 20
|
||||
cache: 'pnpm'
|
||||
|
||||
- name: Install Dependencies and Sync Content
|
||||
run: |
|
||||
echo "Installing Dependencies"
|
||||
pnpm install
|
||||
echo "Syncing Content to Repo"
|
||||
npm run sync:content-to-repo -- --roadmap-slug=${{ inputs.roadmap_slug }} --secret=${{ secrets.GH_SYNC_SECRET }}
|
||||
|
||||
- name: Check for changes
|
||||
id: verify-changed-files
|
||||
run: |
|
||||
if [ -n "$(git status --porcelain)" ]; then
|
||||
echo "changed=true" >> $GITHUB_OUTPUT
|
||||
else
|
||||
echo "changed=false" >> $GITHUB_OUTPUT
|
||||
fi
|
||||
|
||||
- name: Create PR
|
||||
if: steps.verify-changed-files.outputs.changed == 'true'
|
||||
uses: peter-evans/create-pull-request@v7
|
||||
with:
|
||||
delete-branch: false
|
||||
branch: "chore/sync-content-to-repo-${{ inputs.roadmap_slug }}"
|
||||
base: "master"
|
||||
labels: |
|
||||
automated pr
|
||||
reviewers: jcanalesluna,kamranahmedse
|
||||
commit-message: "chore: sync content to repo"
|
||||
title: "chore: sync content to repository - ${{ inputs.roadmap_slug }}"
|
||||
body: |
|
||||
## Sync Content to Repo
|
||||
|
||||
> [!IMPORTANT]
|
||||
> This PR Syncs the Content to the Repo for the Roadmap: ${{ inputs.roadmap_slug }}
|
||||
>
|
||||
> Commit: ${{ github.sha }}
|
||||
> Workflow Path: ${{ github.workflow_ref }}
|
||||
|
||||
**Please Review the Changes and Merge the PR if everything is fine.**
|
||||
67
.github/workflows/sync-repo-to-database.yml
vendored
Normal file
@@ -0,0 +1,67 @@
|
||||
name: Sync on Roadmap Changes
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
paths:
|
||||
- 'src/data/roadmaps/**'
|
||||
|
||||
jobs:
|
||||
sync-on-changes:
|
||||
runs-on: ubuntu-latest
|
||||
if: github.actor != 'github-actions[bot]' && github.actor != 'dependabot[bot]'
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 2 # Fetch previous commit to compare changes
|
||||
|
||||
- name: Setup pnpm@v9
|
||||
uses: pnpm/action-setup@v4
|
||||
with:
|
||||
version: 9
|
||||
run_install: false
|
||||
|
||||
- name: Setup Node.js Version 20 (LTS)
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: 20
|
||||
cache: 'pnpm'
|
||||
|
||||
- name: Get changed files
|
||||
id: changed-files
|
||||
run: |
|
||||
echo "Getting changed files in /src/data/roadmaps/"
|
||||
|
||||
# Get changed files between HEAD and previous commit
|
||||
CHANGED_FILES=$(git diff --name-only HEAD~1 HEAD -- src/data/roadmaps/)
|
||||
|
||||
if [ -z "$CHANGED_FILES" ]; then
|
||||
echo "No changes found in roadmaps directory"
|
||||
echo "has_changes=false" >> $GITHUB_OUTPUT
|
||||
exit 0
|
||||
fi
|
||||
|
||||
echo "Changed files:"
|
||||
echo "$CHANGED_FILES"
|
||||
|
||||
# Convert to space-separated list for the script
|
||||
CHANGED_FILES_LIST=$(echo "$CHANGED_FILES" | tr '\n' ',')
|
||||
|
||||
echo "has_changes=true" >> $GITHUB_OUTPUT
|
||||
echo "changed_files=$CHANGED_FILES_LIST" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: Install Dependencies
|
||||
if: steps.changed-files.outputs.has_changes == 'true'
|
||||
run: |
|
||||
echo "Installing Dependencies"
|
||||
pnpm install
|
||||
|
||||
- name: Run sync script with changed files
|
||||
if: steps.changed-files.outputs.has_changes == 'true'
|
||||
run: |
|
||||
echo "Running sync script for changed roadmap files"
|
||||
echo "Changed files: ${{ steps.changed-files.outputs.changed_files }}"
|
||||
|
||||
# Run your script with the changed file paths
|
||||
npm run sync:repo-to-database -- --files="${{ steps.changed-files.outputs.changed_files }}" --secret=${{ secrets.GH_SYNC_SECRET }}
|
||||
@@ -6,8 +6,10 @@ First of all, thank you for considering to contribute. Please look at the detail
|
||||
- [Existing Roadmaps](#existing-roadmaps)
|
||||
- [Adding Projects](#adding-projects)
|
||||
- [Adding Content](#adding-content)
|
||||
- [How To Structure Content](#how-to-structure-content)
|
||||
- [Guidelines](#guidelines)
|
||||
- [Good vs. Not So Good Contributions](#good-vs-not-so-good-contributions)
|
||||
- [Local Development](#local-development)
|
||||
|
||||
## New Roadmaps
|
||||
|
||||
@@ -53,6 +55,7 @@ Find [the content directory inside the relevant roadmap](https://github.com/kamr
|
||||
|
||||
- Content must be in English.
|
||||
- Maximum of 8 links per topic.
|
||||
- **No GeeksforGeeks links** — Links to geeksforgeeks.org are not accepted.
|
||||
- Follow the below style guide for content.
|
||||
|
||||
Please note that we are intentionally keeping the content under the topic popup concise. You MUST always aim to explain the topic simply in a **single paragraph** or so and provide external resources where users can learn more about the topic.
|
||||
|
||||
@@ -29,6 +29,10 @@
|
||||
"compress:images": "tsx ./scripts/compress-images.ts",
|
||||
"generate:roadmap-content-json": "tsx ./scripts/editor-roadmap-content-json.ts",
|
||||
"migrate:editor-roadmaps": "tsx ./scripts/migrate-editor-roadmap.ts",
|
||||
"sync:content-to-repo": "tsx ./scripts/sync-content-to-repo.ts",
|
||||
"sync:repo-to-database": "tsx ./scripts/sync-repo-to-database.ts",
|
||||
"migrate:content-repo-to-database": "tsx ./scripts/migrate-content-repo-to-database.ts",
|
||||
"official:roadmap-assets": "tsx ./scripts/official-roadmap-assets.ts",
|
||||
"test:e2e": "playwright test"
|
||||
},
|
||||
"dependencies": {
|
||||
|
||||
2
pnpm-lock.yaml
generated
@@ -9897,4 +9897,4 @@ snapshots:
|
||||
react: 19.1.0
|
||||
use-sync-external-store: 1.5.0(react@19.1.0)
|
||||
|
||||
zwitch@2.0.4: {}
|
||||
zwitch@2.0.4: {}
|
||||
|
Before Width: | Height: | Size: 351 KiB |
|
Before Width: | Height: | Size: 420 KiB |
|
Before Width: | Height: | Size: 36 KiB |
|
Before Width: | Height: | Size: 34 KiB |
|
Before Width: | Height: | Size: 36 KiB |
|
Before Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 126 KiB |
|
Before Width: | Height: | Size: 431 KiB |
|
Before Width: | Height: | Size: 235 KiB |
|
Before Width: | Height: | Size: 205 KiB |
|
Before Width: | Height: | Size: 242 KiB |
|
Before Width: | Height: | Size: 572 KiB |
|
Before Width: | Height: | Size: 283 KiB |
|
Before Width: | Height: | Size: 437 KiB |
|
Before Width: | Height: | Size: 799 KiB |
|
Before Width: | Height: | Size: 233 KiB |
|
Before Width: | Height: | Size: 1.0 MiB |
|
Before Width: | Height: | Size: 756 KiB |
|
Before Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 7.7 KiB |
|
Before Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 142 KiB |
|
Before Width: | Height: | Size: 1.4 MiB |
|
Before Width: | Height: | Size: 685 KiB |
|
Before Width: | Height: | Size: 128 KiB |
|
Before Width: | Height: | Size: 92 KiB |
|
Before Width: | Height: | Size: 835 KiB |
|
Before Width: | Height: | Size: 602 KiB |
|
Before Width: | Height: | Size: 22 KiB |
|
Before Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 25 KiB |
|
Before Width: | Height: | Size: 24 KiB |
|
Before Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 44 KiB |
|
Before Width: | Height: | Size: 26 KiB |
|
Before Width: | Height: | Size: 345 KiB |
|
Before Width: | Height: | Size: 516 KiB |