mirror of
https://github.com/Raghu-Ch/angular-challenges.git
synced 2026-02-10 12:53:03 -05:00
feat(docs): writing getting started and answering a challenge
This commit is contained in:
@@ -16,6 +16,11 @@ export default defineConfig({
|
||||
linkedin: 'https://www.linkedin.com/in/thomas-laforge-2b05a945/',
|
||||
twitter: 'https://twitter.com/laforge_toma',
|
||||
},
|
||||
customCss: [
|
||||
'@fontsource/ibm-plex-serif/400.css',
|
||||
'@fontsource/ibm-plex-serif/600.css',
|
||||
'./src/styles/custom-css.css',
|
||||
],
|
||||
sidebar: [
|
||||
{
|
||||
label: 'Guides',
|
||||
@@ -23,315 +28,316 @@ export default defineConfig({
|
||||
},
|
||||
{
|
||||
label: 'Challenges',
|
||||
items: [
|
||||
{
|
||||
label: 'Angular',
|
||||
items: [
|
||||
{
|
||||
label: 'Projection',
|
||||
link: '/challenges/angular/projection',
|
||||
badge: {
|
||||
text: 'E',
|
||||
variant: 'success',
|
||||
},
|
||||
},
|
||||
{
|
||||
label: 'Directive enhancement',
|
||||
link: '/challenges/angular/directive-enhancement',
|
||||
badge: {
|
||||
text: 'M',
|
||||
variant: 'caution',
|
||||
},
|
||||
},
|
||||
{
|
||||
label: 'ContextOutlet Typing',
|
||||
link: '/challenges/angular/context-outlet-typing',
|
||||
badge: {
|
||||
text: 'H',
|
||||
variant: 'danger',
|
||||
},
|
||||
},
|
||||
{
|
||||
label: 'CRUD',
|
||||
link: '/challenges/angular/crud',
|
||||
badge: {
|
||||
text: 'E',
|
||||
variant: 'success',
|
||||
},
|
||||
},
|
||||
{
|
||||
label: 'Permissions',
|
||||
link: '/challenges/angular/permissions',
|
||||
badge: {
|
||||
text: 'M',
|
||||
variant: 'caution',
|
||||
},
|
||||
},
|
||||
{
|
||||
label: 'Simple Pure Pipe',
|
||||
link: '/challenges/angular/pipe-pure',
|
||||
badge: {
|
||||
text: 'E',
|
||||
variant: 'success',
|
||||
},
|
||||
},
|
||||
{
|
||||
label: 'WrapFn Pipe',
|
||||
link: '/challenges/angular/pipe-wrapFn',
|
||||
badge: {
|
||||
text: 'M',
|
||||
variant: 'caution',
|
||||
},
|
||||
},
|
||||
{
|
||||
label: 'Utility Pipe',
|
||||
link: '/challenges/angular/pipe-utility',
|
||||
badge: {
|
||||
text: 'H',
|
||||
variant: 'danger',
|
||||
},
|
||||
},
|
||||
{
|
||||
label: 'Change Dectection - scroll',
|
||||
link: '/challenges/angular/scroll-cd',
|
||||
badge: {
|
||||
text: 'M',
|
||||
variant: 'caution',
|
||||
},
|
||||
},
|
||||
{
|
||||
label: 'Styling',
|
||||
link: '/challenges/angular/styling',
|
||||
badge: {
|
||||
text: 'M',
|
||||
variant: 'caution',
|
||||
},
|
||||
},
|
||||
{
|
||||
label: 'Dependancy Injection',
|
||||
link: '/challenges/angular/di',
|
||||
badge: {
|
||||
text: 'H',
|
||||
variant: 'danger',
|
||||
},
|
||||
},
|
||||
{
|
||||
label: 'Anchor Scrolling',
|
||||
link: '/challenges/angular/anchor-scrolling',
|
||||
badge: {
|
||||
text: 'E',
|
||||
variant: 'success',
|
||||
},
|
||||
},
|
||||
{
|
||||
label: 'Router Input',
|
||||
link: '/challenges/angular/router-input',
|
||||
badge: {
|
||||
text: 'E',
|
||||
variant: 'success',
|
||||
},
|
||||
},
|
||||
{
|
||||
label: 'Interop Rxjs Signal',
|
||||
link: '/challenges/angular/interop-rxjs-signal',
|
||||
badge: {
|
||||
text: 'H',
|
||||
variant: 'danger',
|
||||
},
|
||||
},
|
||||
{
|
||||
label: 'Module to Standalone',
|
||||
link: '/challenges/angular/modaule-to-standalone',
|
||||
badge: {
|
||||
text: 'E',
|
||||
variant: 'success',
|
||||
},
|
||||
},
|
||||
{
|
||||
label: 'Bug - Change Detection',
|
||||
link: '/challenges/angular/bug-cd',
|
||||
badge: {
|
||||
text: 'M',
|
||||
variant: 'caution',
|
||||
},
|
||||
},
|
||||
{
|
||||
label: "Component's Decoupling",
|
||||
link: '/challenges/angular/decoupling',
|
||||
badge: {
|
||||
text: 'M',
|
||||
variant: 'caution',
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
label: 'Angular - Performance',
|
||||
items: [
|
||||
{
|
||||
label: 'Default vs OnPush',
|
||||
link: '/challenges/angular-performance/default-onpush',
|
||||
badge: {
|
||||
text: 'E',
|
||||
variant: 'success',
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
label: 'Testing',
|
||||
items: [
|
||||
{
|
||||
label: 'Router',
|
||||
link: '/challenges/testing/router',
|
||||
badge: {
|
||||
text: 'M',
|
||||
variant: 'caution',
|
||||
},
|
||||
},
|
||||
{
|
||||
label: 'Nested Component',
|
||||
link: '/challenges/testing/nested-comp',
|
||||
badge: {
|
||||
text: 'M',
|
||||
variant: 'caution',
|
||||
},
|
||||
},
|
||||
{
|
||||
label: 'Input Output',
|
||||
link: '/challenges/testing/input-output',
|
||||
badge: {
|
||||
text: 'M',
|
||||
variant: 'caution',
|
||||
},
|
||||
},
|
||||
{
|
||||
label: 'Modal',
|
||||
link: '/challenges/testing/modal',
|
||||
badge: {
|
||||
text: 'M',
|
||||
variant: 'caution',
|
||||
},
|
||||
},
|
||||
{
|
||||
label: 'harness',
|
||||
link: '/challenges/testing/harness',
|
||||
badge: {
|
||||
text: 'E',
|
||||
variant: 'success',
|
||||
},
|
||||
},
|
||||
{
|
||||
label: 'Harness Creation',
|
||||
link: '/challenges/testing/harness-creation',
|
||||
badge: {
|
||||
text: 'M',
|
||||
variant: 'caution',
|
||||
},
|
||||
},
|
||||
{
|
||||
label: 'Checkbox',
|
||||
link: '/challenges/testing/checkbox',
|
||||
badge: {
|
||||
text: 'E',
|
||||
variant: 'success',
|
||||
},
|
||||
},
|
||||
{
|
||||
label: 'Reallife Application',
|
||||
link: '/challenges/testing/real-application',
|
||||
badge: {
|
||||
text: 'H',
|
||||
variant: 'danger',
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
label: 'RxJs',
|
||||
items: [
|
||||
{
|
||||
label: 'Bug - Chaining Operators',
|
||||
link: '/challenges/rxjs/bug-chaining-operator',
|
||||
badge: {
|
||||
text: 'M',
|
||||
variant: 'caution',
|
||||
},
|
||||
},
|
||||
{
|
||||
label: 'Race Condition',
|
||||
link: '/challenges/rxjs/race-condition',
|
||||
badge: {
|
||||
text: 'E',
|
||||
variant: 'success',
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
label: 'Nx',
|
||||
items: [
|
||||
{
|
||||
label: 'Extending Library Generator',
|
||||
link: '/challenges/nx/generator-lib-ext',
|
||||
badge: {
|
||||
text: 'H',
|
||||
variant: 'danger',
|
||||
},
|
||||
},
|
||||
{
|
||||
label: 'Component Generator',
|
||||
link: '/challenges/nx/generator-comp',
|
||||
badge: {
|
||||
text: 'M',
|
||||
variant: 'caution',
|
||||
},
|
||||
},
|
||||
{
|
||||
label: 'Custom Eslint Rule',
|
||||
link: '/challenges/nx/forbid-enum-rule',
|
||||
badge: {
|
||||
text: 'E',
|
||||
variant: 'success',
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
label: 'NgRx',
|
||||
items: [
|
||||
{
|
||||
label: 'Effect vs Selector',
|
||||
link: '/challenges/ngrx/effect-selector',
|
||||
badge: {
|
||||
text: 'M',
|
||||
variant: 'caution',
|
||||
},
|
||||
},
|
||||
{
|
||||
label: 'Power of Effects',
|
||||
link: '/challenges/ngrx/power-effect',
|
||||
badge: {
|
||||
text: 'H',
|
||||
variant: 'danger',
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
label: 'Typescript',
|
||||
items: [
|
||||
{
|
||||
label: 'Function Overload',
|
||||
link: '/challenges/typescript/overload-fn',
|
||||
badge: {
|
||||
text: 'M',
|
||||
variant: 'caution',
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
autogenerate: { directory: 'challenges' },
|
||||
// items: [
|
||||
// {
|
||||
// label: 'Angular',
|
||||
// items: [
|
||||
// {
|
||||
// label: 'Projection',
|
||||
// link: '/challenges/angular/projection',
|
||||
// badge: {
|
||||
// text: 'E',
|
||||
// variant: 'success',
|
||||
// },
|
||||
// },
|
||||
// {
|
||||
// label: 'Directive enhancement',
|
||||
// link: '/challenges/angular/directive-enhancement',
|
||||
// badge: {
|
||||
// text: 'M',
|
||||
// variant: 'caution',
|
||||
// },
|
||||
// },
|
||||
// {
|
||||
// label: 'ContextOutlet Typing',
|
||||
// link: '/challenges/angular/context-outlet-typing',
|
||||
// badge: {
|
||||
// text: 'H',
|
||||
// variant: 'danger',
|
||||
// },
|
||||
// },
|
||||
// {
|
||||
// label: 'CRUD',
|
||||
// link: '/challenges/angular/crud',
|
||||
// badge: {
|
||||
// text: 'E',
|
||||
// variant: 'success',
|
||||
// },
|
||||
// },
|
||||
// {
|
||||
// label: 'Permissions',
|
||||
// link: '/challenges/angular/permissions',
|
||||
// badge: {
|
||||
// text: 'M',
|
||||
// variant: 'caution',
|
||||
// },
|
||||
// },
|
||||
// {
|
||||
// label: 'Simple Pure Pipe',
|
||||
// link: '/challenges/angular/pipe-pure',
|
||||
// badge: {
|
||||
// text: 'E',
|
||||
// variant: 'success',
|
||||
// },
|
||||
// },
|
||||
// {
|
||||
// label: 'WrapFn Pipe',
|
||||
// link: '/challenges/angular/pipe-wrapFn',
|
||||
// badge: {
|
||||
// text: 'M',
|
||||
// variant: 'caution',
|
||||
// },
|
||||
// },
|
||||
// {
|
||||
// label: 'Utility Pipe',
|
||||
// link: '/challenges/angular/pipe-utility',
|
||||
// badge: {
|
||||
// text: 'H',
|
||||
// variant: 'danger',
|
||||
// },
|
||||
// },
|
||||
// {
|
||||
// label: 'Change Dectection - scroll',
|
||||
// link: '/challenges/angular/scroll-cd',
|
||||
// badge: {
|
||||
// text: 'M',
|
||||
// variant: 'caution',
|
||||
// },
|
||||
// },
|
||||
// {
|
||||
// label: 'Styling',
|
||||
// link: '/challenges/angular/styling',
|
||||
// badge: {
|
||||
// text: 'M',
|
||||
// variant: 'caution',
|
||||
// },
|
||||
// },
|
||||
// {
|
||||
// label: 'Dependancy Injection',
|
||||
// link: '/challenges/angular/di',
|
||||
// badge: {
|
||||
// text: 'H',
|
||||
// variant: 'danger',
|
||||
// },
|
||||
// },
|
||||
// {
|
||||
// label: 'Anchor Scrolling',
|
||||
// link: '/challenges/angular/anchor-scrolling',
|
||||
// badge: {
|
||||
// text: 'E',
|
||||
// variant: 'success',
|
||||
// },
|
||||
// },
|
||||
// {
|
||||
// label: 'Router Input',
|
||||
// link: '/challenges/angular/router-input',
|
||||
// badge: {
|
||||
// text: 'E',
|
||||
// variant: 'success',
|
||||
// },
|
||||
// },
|
||||
// {
|
||||
// label: 'Interop Rxjs Signal',
|
||||
// link: '/challenges/angular/interop-rxjs-signal',
|
||||
// badge: {
|
||||
// text: 'H',
|
||||
// variant: 'danger',
|
||||
// },
|
||||
// },
|
||||
// {
|
||||
// label: 'Module to Standalone',
|
||||
// link: '/challenges/angular/modaule-to-standalone',
|
||||
// badge: {
|
||||
// text: 'E',
|
||||
// variant: 'success',
|
||||
// },
|
||||
// },
|
||||
// {
|
||||
// label: 'Bug - Change Detection',
|
||||
// link: '/challenges/angular/bug-cd',
|
||||
// badge: {
|
||||
// text: 'M',
|
||||
// variant: 'caution',
|
||||
// },
|
||||
// },
|
||||
// {
|
||||
// label: "Component's Decoupling",
|
||||
// link: '/challenges/angular/decoupling',
|
||||
// badge: {
|
||||
// text: 'M',
|
||||
// variant: 'caution',
|
||||
// },
|
||||
// },
|
||||
// ],
|
||||
// },
|
||||
// {
|
||||
// label: 'Angular - Performance',
|
||||
// items: [
|
||||
// {
|
||||
// label: 'Default vs OnPush',
|
||||
// link: '/challenges/angular-performance/default-onpush',
|
||||
// badge: {
|
||||
// text: 'E',
|
||||
// variant: 'success',
|
||||
// },
|
||||
// },
|
||||
// ],
|
||||
// },
|
||||
// {
|
||||
// label: 'Testing',
|
||||
// items: [
|
||||
// {
|
||||
// label: 'Router',
|
||||
// link: '/challenges/testing/router',
|
||||
// badge: {
|
||||
// text: 'M',
|
||||
// variant: 'caution',
|
||||
// },
|
||||
// },
|
||||
// {
|
||||
// label: 'Nested Component',
|
||||
// link: '/challenges/testing/nested-comp',
|
||||
// badge: {
|
||||
// text: 'M',
|
||||
// variant: 'caution',
|
||||
// },
|
||||
// },
|
||||
// {
|
||||
// label: 'Input Output',
|
||||
// link: '/challenges/testing/input-output',
|
||||
// badge: {
|
||||
// text: 'M',
|
||||
// variant: 'caution',
|
||||
// },
|
||||
// },
|
||||
// {
|
||||
// label: 'Modal',
|
||||
// link: '/challenges/testing/modal',
|
||||
// badge: {
|
||||
// text: 'M',
|
||||
// variant: 'caution',
|
||||
// },
|
||||
// },
|
||||
// {
|
||||
// label: 'harness',
|
||||
// link: '/challenges/testing/harness',
|
||||
// badge: {
|
||||
// text: 'E',
|
||||
// variant: 'success',
|
||||
// },
|
||||
// },
|
||||
// {
|
||||
// label: 'Harness Creation',
|
||||
// link: '/challenges/testing/harness-creation',
|
||||
// badge: {
|
||||
// text: 'M',
|
||||
// variant: 'caution',
|
||||
// },
|
||||
// },
|
||||
// {
|
||||
// label: 'Checkbox',
|
||||
// link: '/challenges/testing/checkbox',
|
||||
// badge: {
|
||||
// text: 'E',
|
||||
// variant: 'success',
|
||||
// },
|
||||
// },
|
||||
// {
|
||||
// label: 'Reallife Application',
|
||||
// link: '/challenges/testing/real-application',
|
||||
// badge: {
|
||||
// text: 'H',
|
||||
// variant: 'danger',
|
||||
// },
|
||||
// },
|
||||
// ],
|
||||
// },
|
||||
// {
|
||||
// label: 'RxJs',
|
||||
// items: [
|
||||
// {
|
||||
// label: 'Bug - Chaining Operators',
|
||||
// link: '/challenges/rxjs/bug-chaining-operator',
|
||||
// badge: {
|
||||
// text: 'M',
|
||||
// variant: 'caution',
|
||||
// },
|
||||
// },
|
||||
// {
|
||||
// label: 'Race Condition',
|
||||
// link: '/challenges/rxjs/race-condition',
|
||||
// badge: {
|
||||
// text: 'E',
|
||||
// variant: 'success',
|
||||
// },
|
||||
// },
|
||||
// ],
|
||||
// },
|
||||
// {
|
||||
// label: 'Nx',
|
||||
// items: [
|
||||
// {
|
||||
// label: 'Extending Library Generator',
|
||||
// link: '/challenges/nx/generator-lib-ext',
|
||||
// badge: {
|
||||
// text: 'H',
|
||||
// variant: 'danger',
|
||||
// },
|
||||
// },
|
||||
// {
|
||||
// label: 'Component Generator',
|
||||
// link: '/challenges/nx/generator-comp',
|
||||
// badge: {
|
||||
// text: 'M',
|
||||
// variant: 'caution',
|
||||
// },
|
||||
// },
|
||||
// {
|
||||
// label: 'Custom Eslint Rule',
|
||||
// link: '/challenges/nx/forbid-enum-rule',
|
||||
// badge: {
|
||||
// text: 'E',
|
||||
// variant: 'success',
|
||||
// },
|
||||
// },
|
||||
// ],
|
||||
// },
|
||||
// {
|
||||
// label: 'NgRx',
|
||||
// items: [
|
||||
// {
|
||||
// label: 'Effect vs Selector',
|
||||
// link: '/challenges/ngrx/effect-selector',
|
||||
// badge: {
|
||||
// text: 'M',
|
||||
// variant: 'caution',
|
||||
// },
|
||||
// },
|
||||
// {
|
||||
// label: 'Power of Effects',
|
||||
// link: '/challenges/ngrx/power-effect',
|
||||
// badge: {
|
||||
// text: 'H',
|
||||
// variant: 'danger',
|
||||
// },
|
||||
// },
|
||||
// ],
|
||||
// },
|
||||
// {
|
||||
// label: 'Typescript',
|
||||
// items: [
|
||||
// {
|
||||
// label: 'Function Overload',
|
||||
// link: '/challenges/typescript/overload-fn',
|
||||
// badge: {
|
||||
// text: 'M',
|
||||
// variant: 'caution',
|
||||
// },
|
||||
// },
|
||||
// ],
|
||||
// },
|
||||
// ],
|
||||
},
|
||||
],
|
||||
}),
|
||||
|
||||
6
docs/package-lock.json
generated
6
docs/package-lock.json
generated
@@ -9,6 +9,7 @@
|
||||
"version": "0.0.1",
|
||||
"dependencies": {
|
||||
"@astrojs/starlight": "^0.10.0",
|
||||
"@fontsource/ibm-plex-serif": "^5.0.8",
|
||||
"astro": "^3.0.6",
|
||||
"sharp": "^0.32.5"
|
||||
}
|
||||
@@ -814,6 +815,11 @@
|
||||
"node": ">=12"
|
||||
}
|
||||
},
|
||||
"node_modules/@fontsource/ibm-plex-serif": {
|
||||
"version": "5.0.8",
|
||||
"resolved": "https://registry.npmjs.org/@fontsource/ibm-plex-serif/-/ibm-plex-serif-5.0.8.tgz",
|
||||
"integrity": "sha512-KUp1E9Wzf2Umhr2SbpcF9HwgFJmuxvKAARmpl7GDDkIG30R1PMFJWxfSfQ7oX/oVBtomGq5RUTaMMUeE0ngEgw=="
|
||||
},
|
||||
"node_modules/@jridgewell/gen-mapping": {
|
||||
"version": "0.3.3",
|
||||
"resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz",
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@astrojs/starlight": "^0.10.0",
|
||||
"@fontsource/ibm-plex-serif": "^5.0.8",
|
||||
"astro": "^3.0.6",
|
||||
"sharp": "^0.32.5"
|
||||
}
|
||||
|
||||
BIN
docs/src/assets/header-github.png
Normal file
BIN
docs/src/assets/header-github.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 10 KiB |
@@ -1,4 +1,4 @@
|
||||
---
|
||||
title: Submit your answer
|
||||
title: TODO in progress
|
||||
description: Guide to submit an answer
|
||||
---
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
---
|
||||
title: Submit your answer
|
||||
title: TODO in progress
|
||||
description: Guide to submit an answer
|
||||
---
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
---
|
||||
title: Submit your answer
|
||||
title: TODO in progress
|
||||
description: Guide to submit an answer
|
||||
---
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
---
|
||||
title: Submit your answer
|
||||
title: TODO in progress
|
||||
description: Guide to submit an answer
|
||||
---
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
---
|
||||
title: Submit your answer
|
||||
title: TODO in progress
|
||||
description: Guide to submit an answer
|
||||
---
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
---
|
||||
title: Submit your answer
|
||||
title: TODO in progress
|
||||
description: Guide to submit an answer
|
||||
---
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
---
|
||||
title: Submit your answer
|
||||
title: TODO in progress
|
||||
description: Guide to submit an answer
|
||||
---
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
---
|
||||
title: Submit your answer
|
||||
title: 🟠 Directive Enhancement
|
||||
description: Guide to submit an answer
|
||||
---
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
---
|
||||
title: Submit your answer
|
||||
title: TODO in progress
|
||||
description: Guide to submit an answer
|
||||
---
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
---
|
||||
title: Submit your answer
|
||||
title: TODO in progress
|
||||
description: Guide to submit an answer
|
||||
---
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
---
|
||||
title: Submit your answer
|
||||
title: TODO in progress
|
||||
description: Guide to submit an answer
|
||||
---
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
---
|
||||
title: Submit your answer
|
||||
title: TODO in progress
|
||||
description: Guide to submit an answer
|
||||
---
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
---
|
||||
title: Submit your answer
|
||||
title: TODO in progress
|
||||
description: Guide to submit an answer
|
||||
---
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
---
|
||||
title: Submit your answer
|
||||
title: TODO in progress
|
||||
description: Guide to submit an answer
|
||||
---
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
---
|
||||
title: Projection
|
||||
title: 🟢 Projection
|
||||
description: angular-challenge-1/projection
|
||||
---
|
||||
|
||||
#1 - <span class="sl-badge success astro-vohx2lp7">Easy</span>
|
||||
> Challenge #1
|
||||
|
||||
## Statement
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
---
|
||||
title: Submit your answer
|
||||
title: TODO in progress
|
||||
description: Guide to submit an answer
|
||||
---
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
---
|
||||
title: Submit your answer
|
||||
title: TODO in progress
|
||||
description: Guide to submit an answer
|
||||
---
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
---
|
||||
title: Submit your answer
|
||||
title: TODO in progress
|
||||
description: Guide to submit an answer
|
||||
---
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
---
|
||||
title: Submit your answer
|
||||
title: TODO in progress
|
||||
description: Guide to submit an answer
|
||||
---
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
---
|
||||
title: Submit your answer
|
||||
title: TODO in progress
|
||||
description: Guide to submit an answer
|
||||
---
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
---
|
||||
title: Submit your answer
|
||||
title: TODO in progress
|
||||
description: Guide to submit an answer
|
||||
---
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
---
|
||||
title: Submit your answer
|
||||
title: TODO in progress
|
||||
description: Guide to submit an answer
|
||||
---
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
---
|
||||
title: Submit your answer
|
||||
title: TODO in progress
|
||||
description: Guide to submit an answer
|
||||
---
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
---
|
||||
title: Submit your answer
|
||||
title: TODO in progress
|
||||
description: Guide to submit an answer
|
||||
---
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
---
|
||||
title: Submit your answer
|
||||
title: TODO in progress
|
||||
description: Guide to submit an answer
|
||||
---
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
---
|
||||
title: Submit your answer
|
||||
title: TODO in progress
|
||||
description: Guide to submit an answer
|
||||
---
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
---
|
||||
title: Submit your answer
|
||||
title: TODO in progress
|
||||
description: Guide to submit an answer
|
||||
---
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
---
|
||||
title: Submit your answer
|
||||
title: TODO in progress
|
||||
description: Guide to submit an answer
|
||||
---
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
---
|
||||
title: Submit your answer
|
||||
title: TODO in progress
|
||||
description: Guide to submit an answer
|
||||
---
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
---
|
||||
title: Submit your answer
|
||||
title: TODO in progress
|
||||
description: Guide to submit an answer
|
||||
---
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
---
|
||||
title: Submit your answer
|
||||
title: TODO in progress
|
||||
description: Guide to submit an answer
|
||||
---
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
---
|
||||
title: Submit your answer
|
||||
title: TODO in progress
|
||||
description: Guide to submit an answer
|
||||
---
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
---
|
||||
title: Submit your answer
|
||||
title: TODO in progress
|
||||
description: Guide to submit an answer
|
||||
---
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
---
|
||||
title: Submit your answer
|
||||
title: TODO in progress
|
||||
description: Guide to submit an answer
|
||||
---
|
||||
|
||||
@@ -3,9 +3,50 @@ title: Getting Started
|
||||
description: A guide on how to get started with Angular Challenges.
|
||||
---
|
||||
|
||||
Guides lead a user through a specific task they want to accomplish, often with a sequence of steps.
|
||||
Writing a good guide requires thinking about what your users are trying to do.
|
||||
To get started with **Angular Challenges**, follow the step:
|
||||
|
||||
## Further reading
|
||||
## Create a Github account
|
||||
|
||||
- Read [about how-to guides](https://diataxis.fr/how-to-guides/) in the Diátaxis framework
|
||||
If you want to submit an answer, you will need your own Github account. Moreover it's always good to have one and it's free.
|
||||
|
||||
## Folk the github project
|
||||
|
||||
Go to [Angular Challenges Repository](https://github.com/tomalaforge/angular-challenges) and click on the **Fork** button in the header. This will create a copy of this repository inside your own Github page.
|
||||
|
||||
## Clone the repository on your own machine
|
||||
|
||||
Find a directory on your local computer, and clone this repository. Open a terminal, go to the choosen directory and tape this:
|
||||
|
||||
```bash
|
||||
git clone https://github.com/[YOUR_GITHUB_NAME]/angular-challenges.git
|
||||
```
|
||||
|
||||
:::note
|
||||
Your can find the url to clone on the button labeled <span class="code-btn"><> Code</span> on your **OWN INSTANCE** of the Angular Challenge repository.
|
||||
|
||||

|
||||
|
||||
:::
|
||||
|
||||
## Open the project inside your favourite IDE
|
||||
|
||||
Open your project inside any IDE of your choice.
|
||||
|
||||
## Install all dependancies
|
||||
|
||||
```bash
|
||||
npm install
|
||||
```
|
||||
|
||||
## Choose a challenge
|
||||
|
||||
Your project is now up and running. The only thing left to do is to choose a challenge 🚀
|
||||
|
||||
Each challenge is composed by:
|
||||
|
||||
- **NAME**: indicating what the challenge is about
|
||||
- **NUMBER**: order of creation. The number doesn't have any particular meaning but helps to reference it inside Github Pull Request Section.
|
||||
- **BADGE**: helps to visualize the degree of difficulty. It's totally subjectif 😅
|
||||
- 🟢 easy
|
||||
- 🟠 medium
|
||||
- 🔴 difficult
|
||||
|
||||
37
docs/src/content/docs/guides/resolve-challenge.md
Normal file
37
docs/src/content/docs/guides/resolve-challenge.md
Normal file
@@ -0,0 +1,37 @@
|
||||
---
|
||||
title: Resolve a Challenge
|
||||
description: Guide to resolve a challenge
|
||||
---
|
||||
|
||||
In this guide, you will learn how to resolve a challenge and submit an answer to the main Github repository.
|
||||
|
||||
## Presentation
|
||||
|
||||
This repository is powered by [Nx](https://nx.dev/getting-started/intro). **Nx** is a monorepository allowing to store multiple application inside the same workspace. That's said, each challenges is a separate application. If you open the `apps` directory, you will found multiple directory all related to one challenge. Each directory is a complete standalone `Nx` application. To run and start with one, open your terminal and run
|
||||
|
||||
```bash
|
||||
npx nx serve <APPLICATION_NAME>
|
||||
```
|
||||
|
||||
:::note
|
||||
If you are not sure of your APPLICATION_NAME, open the README.md file. The `serve` command is written inside with a link to the documentation challenge.
|
||||
:::
|
||||
|
||||
:::note
|
||||
If `nx` is installed globally on your device, you can avoid using `npx`.
|
||||
|
||||
If you want to install `nx` globally, run
|
||||
|
||||
```bash
|
||||
npm i -g nx
|
||||
```
|
||||
|
||||
:::
|
||||
|
||||
## Create a git branch
|
||||
|
||||
Before starting implementing your own solution to resolve a challenge, create a git branch to save your work.
|
||||
|
||||
```bash
|
||||
git checkout -b <BRANCH_NAME>
|
||||
```
|
||||
@@ -1,4 +0,0 @@
|
||||
---
|
||||
title: Submit your answer
|
||||
description: Guide to submit an answer
|
||||
---
|
||||
@@ -3,7 +3,7 @@ title: Welcome to Angular Challenges
|
||||
description: Get started by resolving those challenges and becoming a better Angular FrontEnd engineer.
|
||||
template: splash
|
||||
hero:
|
||||
tagline: Congrats on setting up a new Starlight project!
|
||||
tagline: Start now and become an Angular Expert!
|
||||
image:
|
||||
file: ../../assets/angular-challenge.webp
|
||||
actions:
|
||||
@@ -11,26 +11,31 @@ hero:
|
||||
link: /guides/getting-started/
|
||||
icon: right-arrow
|
||||
variant: primary
|
||||
- text: Read the Starlight docs
|
||||
link: https://starlight.astro.build
|
||||
icon: external
|
||||
- text: Start your first challenge immediatly
|
||||
link: /challenges/angular/projection/
|
||||
icon: rocket
|
||||
---
|
||||
|
||||
import { Card, CardGrid } from '@astrojs/starlight/components';
|
||||
|
||||
## Next steps
|
||||
|
||||
<CardGrid stagger>
|
||||
<Card title="Update content" icon="pencil">
|
||||
Edit `src/content/docs/index.mdx` to see this page change.
|
||||
<CardGrid>
|
||||
<Card title="More than 30 challenges">
|
||||
This repository gather more than 30 challenges about Angular, Nx, Ngrx,
|
||||
Rxjs, Ngrx about real life issues or specific feature to level up your game.
|
||||
</Card>
|
||||
<Card title="Add new content" icon="add-document">
|
||||
Add Markdown or MDX files to `src/content/docs` to create new pages.
|
||||
<Card title="Become an OSS maintainer">
|
||||
One goal of this repository is to break the barrier to OSS. By answering
|
||||
challenges, you will learn how to start contributing to any other Open
|
||||
Source Project.
|
||||
</Card>
|
||||
<Card title="Configure your site" icon="setting">
|
||||
Edit your `sidebar` and other config in `astro.config.mjs`.
|
||||
<Card title="Learn alongside other">
|
||||
It's always hard to learn and practise a new framework. This set of
|
||||
challenges will give your real use cases to practise what you have been
|
||||
learning and anybody can comment or help you out. Learning alone is great,
|
||||
but learning alongside other is way better.
|
||||
</Card>
|
||||
<Card title="Read the docs" icon="open-book">
|
||||
Learn more in [the Starlight Docs](https://starlight.astro.build/).
|
||||
<Card title="Contribute">
|
||||
You have an issue, an interesing bug, an idea. Don't waste any time and
|
||||
create your own challenges.
|
||||
</Card>
|
||||
</CardGrid>
|
||||
|
||||
19
docs/src/styles/custom-css.css
Normal file
19
docs/src/styles/custom-css.css
Normal file
@@ -0,0 +1,19 @@
|
||||
:root {
|
||||
--sl-color-black: #1b1b1d;
|
||||
--sl-color-gray-6: #242526;
|
||||
--sl-color-accent-high: #f10023;
|
||||
--sl-icon-color: #fff;
|
||||
--sl-color-text-invert: #fff;
|
||||
--primary-color: var(--sl-color-bg-nav) !important;
|
||||
/* --sl-color-text-invert: #212121; */
|
||||
--cardBgColor: #242526;
|
||||
/* --sl-font: 'IBM Plex Serif', serif; */
|
||||
}
|
||||
|
||||
.code-btn {
|
||||
border: 2px solid rgba(240, 246, 252, 0.1);
|
||||
border-radius: 6px;
|
||||
padding: 2px 8px;
|
||||
background-color: rgb(35, 134, 54);
|
||||
color: white;
|
||||
}
|
||||
Reference in New Issue
Block a user