Code Monkey home page Code Monkey logo

web3-curriculum's Introduction

Web3 Curriculum

Nathan Flickinger, a freeCodeCamp alum who founded his own successful Web3 company, has donated $1M to freeCodeCamp, and asked that we use some of these funds to develop a carbon-neutral Web3 curriculum where you can learn by building more than a dozen projects.

This free curriculum will teach the fundamentals of smart contracts and distributed application development.

This will be a stand-alone curriculum that you can choose to tackle whenever you feel ready. The prerequisites will involve learning full stack web development through the first 7 freeCodeCamp certifications. (Though as with all aspects of freeCodeCamp, you're welcome to skip around.) Our goal is to help people learn these skills so they can get one of the thousands of open jobs that require these technologies, or start entrepreneurial projects of their own.

Nathan's Story

Nathan Flickinger was a college dropout. After a period of homelessness, he vowed to get his life together. It started with using his CompTIA certification he had earned in high school to get a minimum wage job in tech support.

From there, Nathan decided to teach himself to code. After several months of study on freeCodeCamp, he was able to land his first software engineering job.

He became obsessed with Web3 development, and eventually took the plunge and created his own startup. He helped write smart contract code for several Web3 projects. Most notably, KaijuKingz, a monster-inspired collection of cute lizards, each with quirky features. Instead of coffee, they drink radioactive sludge.

People from the KaijuKingz community buy and trade these artistic works through a system called Non-fungible Tokens โ€“ essentially, deeds of ownership.

Instead of being stored in a centralized database, these deeds are backed up in computers around the world through a distributed database.

Early on, Nathan decided that if his project was successful, he wanted to donate a large amount of money to freeCodeCamp to help other people to learn how to harness technology to realize their career potential.

And today, he and KaijuKingz have done that. They have donated a million dollars to our nonprofit, for us to use toward our mission of creating free learning resources for people around the world.

We are extremely grateful for Nathan and his colleagues at KaijuKingz, and their willingness to support free, open source education. You can read more about Nathan and his coding journey here.

web3-curriculum's People

Contributors

dvinubius avatar gikf avatar mot01 avatar mustafausama avatar scissorsneedfoodtoo avatar shaunshamilton avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

web3-curriculum's Issues

[FEAT] Adjust Tooling for Multiple Projects

  • Dynamically hide learn- folders based on which project is selected.
  • Push/pop content to / when working on project
  • Discuss a decent way to persist progress locally
    • Probably will just add state to projects.json and move away from .env state

[BUG]: Dev Container does not build from .devcontainer/devcontainer.json

Issue/Experience

Following the directions on https://web3.freecodecamp.org/web3#instructions does not result in the dev container being built using the JSON document located in .devcontainer/devcontainer.json.

Opening the web3-curriculum directory in VS Code using code . from bash and then running Dev Containers: Rebuild and Reopen in Container results in the folllowing options:

add_config_to_workspace

Selecting 'Add configuration to workspace' then shows a second set of options:

from_dockerfile

Selecting 'From Dockerfile' then prompts to install a number of packages which I skipped. Then the following alert pops up:

overwrite_devcontainer_json

The issue here is that Dev Containers is detecting an existing configuration but is unable to read the config stored in .devcontainer/devcontainer.json for some reason. It is therefore prompting to overwrite it with a generic config that does not find the Dockerfile or set the correct context, or install the FreeCodeCamp - Courses extension in the container.

I have managed to work around this issue by doing the following:

  • Moved .devcontainer/devcontainer.json up to the root directory and renamed to .devcontainer.json (as outlined in the VS Code official Dev Containers documentation - https://code.visualstudio.com/docs/devcontainers/create-dev-container)
  • Deleted the now empty .devcontainer directory
  • Edited the following fields in .devcontainer.json
    • "dockerFile": "../Dockerfile" -> "dockerFile": "./Dockerfile"
    • "context": ".." -> "context": "."

These changes read the Dockerfile from, and set the context to, the root directory, where .devcontainer.json now lives.

Environment

Windows 10 - 22H2 (19045.4291)
VS Code - 1.88.1 (User Setup)
Docker Desktop - 4.29.0 (145265)
Dev Containers Extension - 0.354.0

I have also had the same issue on Ubuntu Server 22.04 LTS and this worked to fix that as well.

Supporting GitHub issues

These issues may help to help explain the problem that exists within the Dev Containers extension, they helped me find a solution and eventually get access to the course material:

Output of running node tooling/camper-info.js from the workspace root

N/A

[BUG]: Error 4XX - 5XX Client has disconnected from local server

Issue/Experience

when a course was selected

Error 4XX - 5XX
Client has disconnected from local server

Output of running node tooling/camper-info.js from the workspace root

root@ad75d85957e7:/workspace/web3-curriculum# node tooling/camper-info.js
๐Ÿ”ต INFO: Project: build-a-fundraising-smart-contract
๐Ÿ”ต INFO: Lesson Number: 1
๐Ÿ”ต INFO: Curriculum Version: 0.1.1
๐Ÿ”ต INFO: freeCodeCamp - Courses: [email protected]
๐Ÿ”ต INFO: Commit: abb0cea chore(0.1.1): update freecodecamp-os to 1.6.5 (#63)

๐Ÿ”ต INFO: OS Info:
Architecture: x64
Platform: linux
Release: 5.10.16.3-microsoft-standard-WSL2
Type: Linux

[BUG]: Unable to run any tests

Issue/Experience

I started the course and just in the first lesson where you cd into a folder, none of my tests were passing.

Output of running node tooling/camper-info.js from the workspace root

๐Ÿ”ต INFO:   Project:  learn-digital-ledgers-by-building-a-blockchain
๐Ÿ”ต INFO:   Lesson Number:  1
๐Ÿ”ต INFO:   Curriculum Version:  0.1.3
๐Ÿ”ต INFO:   freeCodeCamp - Courses:  undefined
๐Ÿ”ต INFO:   Commit:  c1ef015 chore: update freecodecamp-os to 1.8.3 (#92)

๐Ÿ”ต INFO:   OS Info: 
    Architecture: x64
    Platform: linux
    Release: 5.15.90.1-microsoft-standard-WSL2
    Type: Linux

Output of freeCodeCamp: Run Course terminal

๐Ÿ”ต INFO:  2023-04-30 12:12:44 Watching for file changes on /workspace/web3-curriculum
๐Ÿ”ด ERROR:  2023-04-30 12:12:48 Test #2: Error: Could not find /workspace/web3-curriculum/.logs/.cwd.log
    at Object.getCWD (file:///workspace/web3-curriculum/node_modules/@freecodecamp/freecodecamp-os/.freeCodeCamp/tooling/test-utils.js:133:11)
    at async eval (eval at <anonymous> (file:///workspace/web3-curriculum/node_modules/@freecodecamp/freecodecamp-os/.freeCodeCamp/tooling/test.js:94:35), <anonymous>:2:17)
    at async file:///workspace/web3-curriculum/node_modules/@freecodecamp/freecodecamp-os/.freeCodeCamp/tooling/test.js:94:29
    at async Promise.allSettled (index 1)
    at async runTests (file:///workspace/web3-curriculum/node_modules/@freecodecamp/freecodecamp-os/.freeCodeCamp/tooling/test.js:122:22)
    at async FSWatcher.<anonymous> (file:///workspace/web3-curriculum/node_modules/@freecodecamp/freecodecamp-os/.freeCodeCamp/tooling/hot-reload.js:51:9)
๐Ÿ”ด ERROR:  2023-04-30 12:13:21 Test #2: Error: Could not find /workspace/web3-curriculum/.logs/.cwd.log
    at Object.getCWD (file:///workspace/web3-curriculum/node_modules/@freecodecamp/freecodecamp-os/.freeCodeCamp/tooling/test-utils.js:133:11)
    at async eval (eval at <anonymous> (file:///workspace/web3-curriculum/node_modules/@freecodecamp/freecodecamp-os/.freeCodeCamp/tooling/test.js:94:35), <anonymous>:2:17)
    at async file:///workspace/web3-curriculum/node_modules/@freecodecamp/freecodecamp-os/.freeCodeCamp/tooling/test.js:94:29
    at async Promise.allSettled (index 1)
    at async runTests (file:///workspace/web3-curriculum/node_modules/@freecodecamp/freecodecamp-os/.freeCodeCamp/tooling/test.js:122:22)
    at async Object.handleRunTests [as run-tests] (file:///workspace/web3-curriculum/node_modules/@freecodecamp/freecodecamp-os/.freeCodeCamp/tooling/server.js:48:3)
๐Ÿ”ด ERROR:  2023-04-30 12:14:59 Test #2: Error: Could not find /workspace/web3-curriculum/.logs/.cwd.log
    at Object.getCWD (file:///workspace/web3-curriculum/node_modules/@freecodecamp/freecodecamp-os/.freeCodeCamp/tooling/test-utils.js:133:11)
    at async eval (eval at <anonymous> (file:///workspace/web3-curriculum/node_modules/@freecodecamp/freecodecamp-os/.freeCodeCamp/tooling/test.js:94:35), <anonymous>:2:17)
    at async file:///workspace/web3-curriculum/node_modules/@freecodecamp/freecodecamp-os/.freeCodeCamp/tooling/test.js:94:29
    at async Promise.allSettled (index 1)
    at async runTests (file:///workspace/web3-curriculum/node_modules/@freecodecamp/freecodecamp-os/.freeCodeCamp/tooling/test.js:122:22)
    at async Object.handleRunTests [as run-tests] (file:///workspace/web3-curriculum/node_modules/@freecodecamp/freecodecamp-os/.freeCodeCamp/tooling/server.js:48:3)

[TODO] More Beta Prep

  • Collapse JSON output in Console
  • Congratulations message (indicator that Camper "won");
  • Markdown in Tests
  • Spacing in Tests
  • Remove list-styling in Tests
  • Loading screen needs work (extension)
  • Simple Browser opens before server is ready
  • In-line codeblock overlaps - add better padding, etc.

Build a Smart Contract in Rust

  • Mention specific file/directory Campers need to work in
  • Add wasm-pack to Dockerfile
  • Add Account, Context structs to User Stories
  • Mention how to use JsValue - how to wrap a Struct in a JsValue
  • Add _blank to external links not possible due to Simple Browser sandbox
  • Remove first test lib::
  • Mention importing needed imports
  • "If you want to see your contract in action..."
    • Deploy contract
    • Run nodes
    • Test contract

[HELP]: Error after starting the course

Hi, I started the container, and the course too, but when I click on any of the courses on the main page, I get the following error on the screen. Restarting the course doesn't solve the problem.

error

[BUG]: Issue with server

Issue/Experience

Output of running node tooling/camper-info.js from the workspace root

I did everything said in instructions steps after I run freeCodeCamp run course when I select any course in freeCodeCamp it shows me "Error 4XX - 5XX
Client has disconnected from local server

To Keep Learning:
First, try refresh this page
Otherwise:
Open the command palette
Select the freeCodeCamp: Shutdown Course command
Open the command palette
Select the freeCodeCamp: Run Course command"

I tried to shutdown and run it again but still the same

[BUG]: Error 4XX - 5XX Client has disconnected from local server

Issue/Experience

I have an error when entering any course. I followed all the steps and even run again from scratch and nothing.
I also checked the docker cache and cleaned.

Output of running node tooling/camper-info.js from the workspace root

root@4bb3d0f8b194:/workspace/web3-curriculum# cd . && NODE_ENV=production node ./.freeCodeCamp/tooling/server.js
๐Ÿ”ต INFO: 2022-10-27 00:03:22 Listening on port 8080
๐Ÿ”ต INFO: 2022-10-27 00:03:24 Watching for file changes on /workspace/web3-curriculum
๐Ÿ”ต INFO: 2022-10-27 00:03:32 Watching for file changes on /workspace/web3-curriculum
file:///workspace/web3-curriculum/.freeCodeCamp/tooling/parser.js:200
const mat = lesson.match(
^

TypeError: Cannot read properties of undefined (reading 'match')
at parseMarker (file:///workspace/web3-curriculum/.freeCodeCamp/tooling/parser.js:200:22)
at getLessonDescription (file:///workspace/web3-curriculum/.freeCodeCamp/tooling/parser.js:62:23)
at runLesson (file:///workspace/web3-curriculum/.freeCodeCamp/tooling/lesson.js:35:23)
at async FSWatcher. (file:///workspace/web3-curriculum/.freeCodeCamp/tooling/hot-reload.js:47:7)

Node.js v18.12.0

[HELP]: Unable to build the Docker file

Project : Web3 Curriculum

Lesson Number 0

Question ERROR [dev_container_auto_added_stage_label 16/19] RUN npm config set 0.5s

Code and Screenshots

New to Docker and dont know how to fix this
image

[HELP]: related to corrections in my code.

Project

build-a-video-game-marketplace-blockchain

Lesson Number

open project(single lesson)

Question

  1. โœ— Running node buy-item.js should add a transaction at the end of the transactions.json array with the correct buyerAddress, sellerAddress, price, itemBought, and signature properties. Note: You may need to pass the balance check test right below this (test 8) for this to pass
  2. โœ— Running node buy-item.js should not add a transaction if that address doesn't have enough funds to buy the item
  3. โœ— Running node sell-item.js should add a transaction at the end of the transactions.json array with the correct buyerAddress, sellerAddress, price, itemSold, and signature properties. Note: You may need to pass the item check test right below this (test 10) for this to pass
  4. โœ“ Running node sell-item.js should not add a transaction if that address doesn't have that item to sell

Code and Screenshots

sell-item.js


import EC from 'elliptic';
// Add your code below
import { writeFileSync, readFileSync } from 'fs';
import sha256 from 'crypto-js/sha256.js';
import {
  getAddressItems,
  getTransactions,
  getItemPrice,
  writeTransactions,
  getWalletAddressFromName,
} from './blockchain-helpers.js';

const ec = new EC.ec('p192');

const sellerPrivateKey = process.argv[2];
const itemSold = process.argv[3];



const price = getItemPrice(itemSold);

const transactions = getTransactions();

const walletFile = readFileSync('./wallets.json');
const wallets = JSON.parse(walletFile);
const keys = Object.keys(wallets);

function getTransaction(privateKey) {
  for (const key of keys) {
    const person = wallets[key];

    if (privateKey === person.privateKey) {
      const fromKeyPair = ec.keyFromPrivate(sellerPrivateKey, 'hex');
      const hash = sha256(price + key + itemSold).toString();
      const signature = fromKeyPair.sign(hash).toDER('hex');

      const newTransaction = {
        buyerAddress: 'null',
        sellerAddress: person.publicKey,
        itemSold,
        signature,
      };

      return newTransaction;
    }
  }

  return null; // Return null if no matching private key is found
}



function getaddress(privateKey) {
  for (const key of keys) {
    const person = wallets[key];

    if (privateKey === person.privateKey) {
      
      //console.log(key.publicKey);
      return key;
    }
  }
}

const newTransaction = getTransaction(sellerPrivateKey);

if (newTransaction !== null) {
  const nameOfAddress = getaddress(sellerPrivateKey);
  const address = getWalletAddressFromName(nameOfAddress);
  const items = getAddressItems(address);
  if (items.hasOwnProperty(itemSold)) {
    const value = items[itemSold];
    if (value > 0) {
      transactions.push(newTransaction);
      writeTransactions(transactions);
    }
    else {
      console.log('it does not have that item.')
    }
    }
} else {
  console.log('No matching private key found.');
}

image

buy-item.js

import { writeFileSync, readFileSync } from 'fs';
import sha256 from 'crypto-js/sha256.js';
import {
  getAddressBalance,
  getTransactions,
  getItemPrice,
  writeTransactions,
  getWalletAddressFromName,
} from './blockchain-helpers.js';

import EC from 'elliptic';
const ec = new EC.ec('p192');

const buyerPrivateKey = process.argv[2];
const itemBought = process.argv[3];

const price = getItemPrice(itemBought);

const transactions = getTransactions();

const walletFile = readFileSync('./wallets.json');
const wallets = JSON.parse(walletFile);
const keys = Object.keys(wallets);

function getTransaction(privateKey) {
  for (const key of keys) {
    const person = wallets[key];

    if (privateKey === person.privateKey) {
      const fromKeyPair = ec.keyFromPrivate(buyerPrivateKey, 'hex');
      const hash = sha256(price + key + itemBought).toString();
      const signature = fromKeyPair.sign(hash).toDER('hex');

      const newTransaction = {
        buyerAddress: person.publicKey,
        sellerAddress: 'null',
        itemBought,
        signature,
      };

      return newTransaction;
    }
  }

  return null; // Return null if no matching private key is found
}



function getaddress(privateKey) {
  for (const key of keys) {
    const person = wallets[key];

    if (privateKey === person.privateKey) {
      
      //console.log(key.publicKey);
      return key;
    }
  }
}

const newTransaction = getTransaction(buyerPrivateKey);

if (newTransaction !== null) {
  const nameOfAddress = getaddress(buyerPrivateKey);
  const address = getWalletAddressFromName(nameOfAddress);
  const accountBalance = getAddressBalance(address);
  
  if (accountBalance >= price) {
    transactions.push(newTransaction);
    writeTransactions(transactions);
    
  }
  else {
    console.log("You don't have enough accountBalance.")
  }
} else {
  console.log('No matching private key found.');
}

image

my logic
with buying and selling is correct as per the given rules

  1. buy's only when the account balance is more than the price of the buying item.
  2. sells only when the account contains that item.
  3. writing correct public address to the transaction.json.
  4. one thing wrong in my code is when selling the item, the selling price should be less than the 5 coins.

i want to know while buying and selling the items, how to append the balance to the wallet address.

[TODO] Prep for Beta Release

  • Reset UI Console and tests when changing project
  • Refresh UI Console when running tests again
  • Await client build before starting server
  • Ensure Camper input does not break (error out) development server
  • Indicate to Camper if development server errors out - tell Camper to freeCodeCamp: Start

[BUG]: Can't run "freeCodeCamp: Run Course" in VS Code after building remote container

Issue/Experience

After following the steps enumerated here: https://www.freecodecamp.org/news/web3-curriculum-open-beta/
i get stuck when having to cmd + shift + p -> freeCodeCamp: Run Course

vscode says "No matching commands"

i don't really understand how to deal with this, heard that deleting the container + cache could be a good idea but I did this multiple times first deleting it through the terminal with "rm -rf web3-curriculum.git" once in the directory + deleting the docker container and image.

Then, the second time, I just tried deleting the web3-curriculum manually but still nothing changed.

I don't get if I'm retarded and can't follow 5 easy steps or if there's something wrong with the vscode extension.

Output of running Remote Container: Rebuild Container and Open in Container

Remote Container Output
99 ms] Remote-Containers 0.245.2 in VS Code 1.70.2 (e4503b30fc78200f846c62cf8091b76ff5547662).
[99 ms] Start: Resolving Remote
[120 ms] Setting up container for folder or workspace: /Users/HKT/web3-curriculum
[137 ms] Start: Check Docker is running
[137 ms] Start: Run: docker version --format {{.Server.APIVersion}}
[228 ms] Server API version: 1.41
[229 ms] Start: Run: docker volume ls -q
[328 ms] Start: Run: docker ps -q -a --filter label=vsch.local.folder=/Users/HKT/web3-curriculum --filter label=vsch.quality=stable
[411 ms] Start: Run: /private/var/folders/xr/m9fl4yv91hz2h4cwb7nr2fp00000gq/T/AppTranslocation/6EC603B7-9D03-419F-97A9-346351EFF0FF/d/Visual Studio Code.app/Contents/Frameworks/Code Helper.app/Contents/MacOS/Code Helper /Users/HKT/.vscode/extensions/ms-vscode-remote.remote-containers-0.245.2/dist/spec-node/devContainersSpecCLI.js up --user-data-folder /Users/HKT/Library/Application Support/Code/User/globalStorage/ms-vscode-remote.remote-containers/data --workspace-folder /Users/HKT/web3-curriculum --workspace-mount-consistency cached --id-label devcontainer.local_folder=/Users/HKT/web3-curriculum --log-level debug --log-format json --config /Users/HKT/web3-curriculum/.devcontainer/devcontainer.json --default-user-env-probe loginInteractiveShell --remove-existing-container --mount type=volume,source=vscode,target=/vscode,external=true --skip-post-create --update-remote-user-uid-default on --mount-workspace-git-root true
[602 ms] remote-containers 0.245.2.
[602 ms] Start: Run: docker buildx version
[920 ms] Start: Resolving Remote
[922 ms] Start: Run: git rev-parse --show-cdup
[937 ms] Start: Run: docker ps -q -a --filter label=devcontainer.local_folder=/Users/HKT/web3-curriculum
[1021 ms] local container features stored at: /Users/HKT/.vscode/extensions/ms-vscode-remote.remote-containers-0.245.2/dist/node_modules/vscode-dev-containers/container-features
[1023 ms] Start: Run: tar --no-same-owner -x -f -
[1042 ms] Start: Run: docker buildx build --load --build-arg BUILDKIT_INLINE_CACHE=1 -f /Users/HKT/web3-curriculum/Dockerfile -t vsc-web3-curriculum-b3982ca25c4f01c7dd4ee663f0f32ccf /Users/HKT/web3-curriculum
[+] Building 34.2s (26/26) FINISHED                                             
 => [internal] load build definition from Dockerfile                       0.0s
 => => transferring dockerfile: 1.33kB                                     0.0s
 => [internal] load .dockerignore                                          0.0s
 => => transferring context: 2B                                            0.0s
 => [internal] load metadata for docker.io/library/ubuntu:20.04            1.5s
 => [auth] library/ubuntu:pull token for registry-1.docker.io              0.0s
 => [ 1/19] FROM docker.io/library/ubuntu:20.04@sha256:35ab2bf57814e9ff49  0.0s
 => [internal] load build context                                          0.2s
 => => transferring context: 8.67MB                                        0.2s
 => CACHED [ 2/19] RUN apt-get update && apt-get install -y sudo           0.0s
 => CACHED [ 3/19] RUN yes | unminimize                                    0.0s
 => CACHED [ 4/19] RUN ln -snf /usr/share/zoneinfo/America/New_York /etc/  0.0s
 => CACHED [ 5/19] RUN adduser --disabled-password   --gecos '' camper     0.0s
 => CACHED [ 6/19] RUN adduser camper sudo                                 0.0s
 => CACHED [ 7/19] RUN echo '%sudo ALL=(ALL) NOPASSWD:ALL' >>   /etc/sudo  0.0s
 => CACHED [ 8/19] RUN sudo apt-get install -y curl git bash-completion m  0.0s
 => CACHED [ 9/19] RUN curl -fsSL https://deb.nodesource.com/setup_18.x |  0.0s
 => CACHED [10/19] RUN sudo apt-get install -y nodejs                      0.0s
 => CACHED [11/19] RUN sudo apt-get install -y build-essential             0.0s
 => CACHED [12/19] RUN curl https://sh.rustup.rs -sSf | sh -s -- -y        0.0s
 => CACHED [13/19] RUN curl https://rustwasm.github.io/wasm-pack/installe  0.0s
 => CACHED [14/19] WORKDIR /workspace/web3-curriculum                      0.0s
 => CACHED [15/19] RUN mkdir ~/.npm-global                                 0.0s
 => CACHED [16/19] RUN npm config set prefix '~/.npm-global'               0.0s
 => [17/19] COPY . .                                                       0.1s
 => [18/19] WORKDIR /workspace/web3-curriculum                             0.0s
 => [19/19] RUN cd /workspace/web3-curriculum && npm install              30.4s
 => exporting to image                                                     0.0s
 => => exporting layers                                                    0.0s
 => => writing image sha256:eebb6e4ebd47f3272c10b9a032a45884a3e2f1350fb7d  0.0s
 => => naming to docker.io/library/vsc-web3-curriculum-b3982ca25c4f01c7dd  0.0s
 => exporting cache                                                        0.0s
 => => preparing build cache for export                                    0.0s
[36114 ms] Start: Run: docker events --format {{json .}} --filter event=start
[36115 ms] Start: Starting container
[36115 ms] Start: Run: docker run --sig-proxy=false -a STDOUT -a STDERR --mount type=bind,source=/Users/HKT/web3-curriculum,target=/workspaces/web3-curriculum,consistency=cached --mount type=volume,src=vscode,dst=/vscode -l devcontainer.local_folder=/Users/HKT/web3-curriculum --entrypoint /bin/sh vsc-web3-curriculum-b3982ca25c4f01c7dd4ee663f0f32ccf -c echo Container started
Container started
[36843 ms] Start: Run: docker ps -q -a --filter label=devcontainer.local_folder=/Users/HKT/web3-curriculum
[36959 ms] Start: Run: docker inspect --type container bace7b7fd31d
[37066 ms] Start: Inspecting container
[37066 ms] Start: Run: docker inspect --type container bace7b7fd31d18db909f3e15d6ee900d49cffa6c41ed08f1748cebfebef2bef9
[37168 ms] Start: Run in container: /bin/sh
[37170 ms] Start: Run in container: uname -m
[37338 ms] x86_64
[37338 ms] 
[37338 ms] Start: Run in container: (cat /etc/os-release || cat /usr/lib/os-release) 2>/dev/null
[37342 ms] NAME="Ubuntu"
VERSION="20.04.5 LTS (Focal Fossa)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 20.04.5 LTS"
VERSION_ID="20.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=focal
UBUNTU_CODENAME=focal
[37342 ms] 
[37342 ms] Start: Run in container: cat /etc/passwd
[37345 ms] Start: Run in container: test -f '/var/devcontainer/.patchEtcEnvironmentMarker'
[37346 ms] 
[37346 ms] 
[37346 ms] Exit code 1
[37346 ms] Start: Run in container: test ! -f '/var/devcontainer/.patchEtcEnvironmentMarker' && set -o noclobber && mkdir -p '/var/devcontainer' && { > '/var/devcontainer/.patchEtcEnvironmentMarker' ; } 2> /dev/null
[37350 ms] 
[37350 ms] 
[37350 ms] Start: Run in container: cat >> /etc/environment <<'etcEnvrionmentEOF'
[37353 ms] 
[37353 ms] 
[37353 ms] Start: Run in container: test -f '/var/devcontainer/.patchEtcProfileMarker'
[37355 ms] 
[37355 ms] 
[37355 ms] Exit code 1
[37355 ms] Start: Run in container: test ! -f '/var/devcontainer/.patchEtcProfileMarker' && set -o noclobber && mkdir -p '/var/devcontainer' && { > '/var/devcontainer/.patchEtcProfileMarker' ; } 2> /dev/null
[37357 ms] 
[37357 ms] 
[37357 ms] Start: Run in container: sed -i -E 's/((^|\s)PATH=)([^\$]*)$/\1${PATH:-\3}/g' /etc/profile || true
[37362 ms] 
[37362 ms] 
[37370 ms] Start: Run: docker inspect --type container bace7b7fd31d18db909f3e15d6ee900d49cffa6c41ed08f1748cebfebef2bef9
[37499 ms] Start: Run: /private/var/folders/xr/m9fl4yv91hz2h4cwb7nr2fp00000gq/T/AppTranslocation/6EC603B7-9D03-419F-97A9-346351EFF0FF/d/Visual Studio Code.app/Contents/Frameworks/Code Helper.app/Contents/MacOS/Code Helper /Users/HKT/.vscode/extensions/ms-vscode-remote.remote-containers-0.245.2/dist/spec-node/devContainersSpecCLI.js read-configuration --workspace-folder /Users/HKT/web3-curriculum --log-level debug --log-format json --config /Users/HKT/web3-curriculum/.devcontainer/devcontainer.json --mount-workspace-git-root true
[37717 ms] remote-containers 0.245.2.
[37717 ms] Start: Run: git rev-parse --show-cdup
[37742 ms] Start: Inspecting container
[37742 ms] Start: Run: docker inspect --type container bace7b7fd31d18db909f3e15d6ee900d49cffa6c41ed08f1748cebfebef2bef9
[37839 ms] Start: Run in container: /bin/sh
[37840 ms] Start: Run in container: uname -m
[38015 ms] x86_64
[38015 ms] 
[38015 ms] Start: Run in container: (cat /etc/os-release || cat /usr/lib/os-release) 2>/dev/null
[38018 ms] NAME="Ubuntu"
VERSION="20.04.5 LTS (Focal Fossa)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 20.04.5 LTS"
VERSION_ID="20.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=focal
UBUNTU_CODENAME=focal
[38018 ms] 
[38019 ms] Start: Run in container: cat /etc/passwd
[38022 ms] Start: Updating configuration state
[38064 ms] Start: Setup shutdown monitor
[38065 ms] Forking shutdown monitor: /Users/HKT/.vscode/extensions/ms-vscode-remote.remote-containers-0.245.2/dist/shutdown/shutdownMonitorProcess /var/folders/xr/m9fl4yv91hz2h4cwb7nr2fp00000gq/T/vscode-remote-containers-f5e8c5d2e2a58353c3e7457afa3a2410ac079b1c.sock singleContainer Debug /Users/HKT/Library/Application Support/Code/logs/20221003T221937/exthost4/ms-vscode-remote.remote-containers 1664829659752
[38067 ms] Start: Run in container: test -d /root/.vscode-server
[38070 ms] 
[38070 ms] 
[38070 ms] Exit code 1
[38071 ms] Start: Run in container: test -d /root/.vscode-remote
[38074 ms] 
[38074 ms] 
[38074 ms] Exit code 1
[38075 ms] Start: Run in container: test ! -f '/root/.vscode-server/data/Machine/.writeMachineSettingsMarker' && set -o noclobber && mkdir -p '/root/.vscode-server/data/Machine' && { > '/root/.vscode-server/data/Machine/.writeMachineSettingsMarker' ; } 2> /dev/null
[38080 ms] 
[38080 ms] 
[38080 ms] Start: Run: /private/var/folders/xr/m9fl4yv91hz2h4cwb7nr2fp00000gq/T/AppTranslocation/6EC603B7-9D03-419F-97A9-346351EFF0FF/d/Visual Studio Code.app/Contents/Frameworks/Code Helper.app/Contents/MacOS/Code Helper /Users/HKT/.vscode/extensions/ms-vscode-remote.remote-containers-0.245.2/dist/spec-node/devContainersSpecCLI.js read-configuration --workspace-folder /Users/HKT/web3-curriculum --log-level debug --log-format json --config /Users/HKT/web3-curriculum/.devcontainer/devcontainer.json --include-features-configuration --mount-workspace-git-root true
[38314 ms] remote-containers 0.245.2.
[38314 ms] Start: Run: git rev-parse --show-cdup
[38335 ms] Start: Run in container: cat /root/.vscode-server/data/Machine/settings.json
[38339 ms] 
[38339 ms] cat: /root/.vscode-server/data/Machine/settings.json: No such file or directory
[38340 ms] Exit code 1
[38340 ms] Start: Run in container: test -d /root/.vscode-server/bin/e4503b30fc78200f846c62cf8091b76ff5547662
[38343 ms] 
[38343 ms] 
[38343 ms] Exit code 1
[38343 ms] Start: Run in container: test -d /vscode/vscode-server/bin/linux-x64/e4503b30fc78200f846c62cf8091b76ff5547662
[38345 ms] 
[38345 ms] 
[38346 ms] Start: Run in container: mkdir -p '/root/.vscode-server/bin' && ln -snf '/vscode/vscode-server/bin/linux-x64/e4503b30fc78200f846c62cf8091b76ff5547662' '/root/.vscode-server/bin/e4503b30fc78200f846c62cf8091b76ff5547662'
[38352 ms] 
[38352 ms] 
[38352 ms] Start: Run in container: touch '/vscode/vscode-server/bin/linux-x64/e4503b30fc78200f846c62cf8091b76ff5547662'
[38352 ms] Start: Launching Remote-Containers helper.
[38353 ms] ssh-agent: SSH_AUTH_SOCK in container (/tmp/vscode-ssh-auth-3b32b104a4cd1917826393fb5d6c7f19d2bcb59a.sock) forwarded to local host (/private/tmp/com.apple.launchd.h0fjKaNz9x/Listeners).
[38354 ms] Start: Run: gpgconf --list-dir agent-extra-socket
[38355 ms] Start: Run in container: /bin/sh
[38357 ms] userEnvProbe: loginInteractiveShell (default)
[38357 ms] Start: Run in container: echo ~
[38357 ms] userEnvProbe shell: /bin/bash
[38358 ms] 
[38359 ms] 
[38359 ms] Start: Run in container: command -v git >/dev/null 2>&1 && git config --system --replace-all credential.helper '!f() { /root/.vscode-server/bin/e4503b30fc78200f846c62cf8091b76ff5547662/node /tmp/vscode-remote-containers-3b32b104a4cd1917826393fb5d6c7f19d2bcb59a.js $*; }; f' || true
[38367 ms] 
[38367 ms] 
[38368 ms] Start: Run in container: for pid in `cd /proc && ls -d [0-9]*`; do { echo $pid ; readlink /proc/$pid/cwd ; readlink /proc/$pid/ns/mnt ; cat /proc/$pid/stat | tr "
[38422 ms] Start: Run in container: cat '/root/.vscode-server/data/Machine/.connection-token-e4503b30fc78200f846c62cf8091b76ff5547662' 2>/dev/null || (umask 377 && echo '4a84da0b-2b29-409c-b751-4b7775294c29' >'/root/.vscode-server/data/Machine/.connection-token-e4503b30fc78200f846c62cf8091b76ff5547662-45098707-9672-4660-bf71-753f423837a0' && mv -n '/root/.vscode-server/data/Machine/.connection-token-e4503b30fc78200f846c62cf8091b76ff5547662-45098707-9672-4660-bf71-753f423837a0' '/root/.vscode-server/data/Machine/.connection-token-e4503b30fc78200f846c62cf8091b76ff5547662' && rm -f '/root/.vscode-server/data/Machine/.connection-token-e4503b30fc78200f846c62cf8091b76ff5547662-45098707-9672-4660-bf71-753f423837a0' && cat '/root/.vscode-server/data/Machine/.connection-token-e4503b30fc78200f846c62cf8091b76ff5547662')
[38433 ms] 4a84da0b-2b29-409c-b751-4b7775294c29
[38433 ms] 
[38433 ms] Start: Starting VS Code Server
[38434 ms] Start: Preparing Extensions
[38434 ms] Start: Run in container: test ! -f '/root/.vscode-server/data/Machine/.installExtensionsMarker' && set -o noclobber && mkdir -p '/root/.vscode-server/data/Machine' && { > '/root/.vscode-server/data/Machine/.installExtensionsMarker' ; } 2> /dev/null
[38438 ms] 
[38438 ms] 
[38441 ms] Extensions cache, install extensions: dbaeumer.vscode-eslint, [email protected], freeCodeCamp.freecodecamp-dark-vscode-theme
[38441 ms] Start: Run in container: test -d /root/.vscode-server/extensionsCache && ls /root/.vscode-server/extensionsCache || true
[38444 ms] 
[38445 ms] 
[38445 ms] Start: Run in container: test -d /vscode/vscode-server/extensionsCache && ls /vscode/vscode-server/extensionsCache || true
[38450 ms] dbaeumer.vscode-eslint-2.2.6
freecodecamp.freecodecamp-dark-vscode-theme-1.0.0
[38450 ms] 
[38451 ms] Extensions cache, link in container: dbaeumer.vscode-eslint-2.2.6, freecodecamp.freecodecamp-dark-vscode-theme-1.0.0
[38451 ms] Start: Run in container: mkdir -p '/root/.vscode-server/extensionsCache' && ln -s '/vscode/vscode-server/extensionsCache'/* '/root/.vscode-server/extensionsCache' || true
[38456 ms] 
[38457 ms] 
[38457 ms] Start: Run in container: cd /vscode/vscode-server/extensionsCache && touch 'dbaeumer.vscode-eslint-2.2.6' 'freecodecamp.freecodecamp-dark-vscode-theme-1.0.0'
[38457 ms] Start: Run in container: /root/.vscode-server/bin/e4503b30fc78200f846c62cf8091b76ff5547662/bin/code-server --log debug --force-disable-user-env --server-data-dir /root/.vscode-server --use-host-proxy --telemetry-level all --accept-server-license-terms --host 127.0.0.1 --port 0 --connection-token-file /root/.vscode-server/data/Machine/.connection-token-e4503b30fc78200f846c62cf8091b76ff5547662 --extensions-download-dir /root/.vscode-server/extensionsCache --install-extension dbaeumer.vscode-eslint --install-extension [email protected] --install-extension freeCodeCamp.freecodecamp-dark-vscode-theme --start-server --disable-websocket-compression
[38463 ms] 
[38463 ms] 
[38577 ms] /root
[38577 ms] 
[38577 ms] Start: Run in container: cat <<'EOF-/tmp/vscode-remote-containers-3b32b104a4cd1917826393fb5d6c7f19d2bcb59a.js' >/tmp/vscode-remote-containers-3b32b104a4cd1917826393fb5d6c7f19d2bcb59a.js
[38580 ms] 
[38580 ms] 
[38581 ms] Start: Run in container: cat <<'EOF-/tmp/vscode-remote-containers-server-3b32b104a4cd1917826393fb5d6c7f19d2bcb59a.js' >/tmp/vscode-remote-containers-server-3b32b104a4cd1917826393fb5d6c7f19d2bcb59a.js_1664829698333
[38601 ms] 
[38601 ms] 
[38730 ms] *
* Visual Studio Code Server
*
* By using the software, you agree to
* the Visual Studio Code Server License Terms (https://aka.ms/vscode-server-license) and
* the Microsoft Privacy Statement (https://privacy.microsoft.com/en-US/privacystatement).
*
[38738 ms] Server bound to 127.0.0.1:33791 (IPv4)
Extension host agent listening on 33791

[38739 ms] Start: Run in container: echo 33791 >'/root/.vscode-server/data/Machine/.devport-e4503b30fc78200f846c62cf8091b76ff5547662'
[38741 ms] 
[38741 ms] 
[38741 ms] Port forwarding for container port 33791 starts listening on local port.
[38742 ms] Port forwarding local port 33791 to container port 33791
[38742 ms] Start: Run in container: command -v git >/dev/null 2>&1 && git config --global --replace-all credential.helper '!f() { /root/.vscode-server/bin/e4503b30fc78200f846c62cf8091b76ff5547662/node /tmp/vscode-remote-containers-3b32b104a4cd1917826393fb5d6c7f19d2bcb59a.js $*; }; f' || true
[38747 ms] 
[38747 ms] 
[38756 ms] userEnvProbe PATHs:
Probe:     '/root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'
Container: '/root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'
[38769 ms] Port forwarding connection from 54112 > 33791 > 33791 in the container.
[38769 ms] Start: Run in container: /root/.vscode-server/bin/e4503b30fc78200f846c62cf8091b76ff5547662/node -e 
[38996 ms] Port forwarding 54112 > 33791 > 33791 stderr: Connection established
[39043 ms] Installing extensions...
[39044 ms] [16:41:38] Extension host agent started.
[39062 ms] Port forwarding connection from 54113 > 33791 > 33791 in the container.
[39063 ms] Start: Run in container: /root/.vscode-server/bin/e4503b30fc78200f846c62cf8091b76ff5547662/node -e 
[39202 ms] [16:41:38] [127.0.0.1][6035a815][ManagementConnection] New connection established.
[39203 ms] [16:41:38] ComputeTargetPlatform: linux-x64
[39315 ms] Port forwarding 54113 > 33791 > 33791 stderr: Connection established
[39456 ms] [16:41:39] [127.0.0.1][6d9adf7b][ExtensionHostConnection] New connection established.
[39487 ms] [16:41:39] [127.0.0.1][6d9adf7b][ExtensionHostConnection] <244> Launched Extension Host Process.
[40055 ms] Installing extension 'dbaeumer.vscode-eslint'...
[40058 ms] [16:41:39] Getting Manifest... dbaeumer.vscode-eslint
[40086 ms] Installing extension 'freecodecamp.freecodecamp-courses' v1.6.0...
[40094 ms] Installing extension 'freecodecamp.freecodecamp-dark-vscode-theme'...
[40094 ms] [16:41:39] Getting Manifest... freecodecamp.freecodecamp-dark-vscode-theme
[40169 ms] [16:41:39] Installing extension: dbaeumer.vscode-eslint
[40215 ms] [16:41:39] Installing extension: freecodecamp.freecodecamp-dark-vscode-theme
[40606 ms] [16:41:40] Downloaded extension: dbaeumer.vscode-eslint /root/.vscode-server/extensionsCache/dbaeumer.vscode-eslint-2.2.6
[40631 ms] [16:41:40] Downloaded extension: freecodecamp.freecodecamp-dark-vscode-theme /root/.vscode-server/extensionsCache/freecodecamp.freecodecamp-dark-vscode-theme-1.0.0
[40706 ms] [16:41:40] Extracted extension to /root/.vscode-server/extensions/.fb848642-5087-4a09-8365-41f37b2ef218: freecodecamp.freecodecamp-dark-vscode-theme
[40716 ms] [16:41:40] Renamed to /root/.vscode-server/extensions/freecodecamp.freecodecamp-dark-vscode-theme-1.0.0
[40726 ms] [16:41:40] Extracting completed. freecodecamp.freecodecamp-dark-vscode-theme
[40727 ms] [16:41:40] Extension installed successfully: freecodecamp.freecodecamp-dark-vscode-theme
[40729 ms] Extension 'freecodecamp.freecodecamp-dark-vscode-theme' v1.0.0 was successfully installed.
[40739 ms] [16:41:40] Extracted extension to /root/.vscode-server/extensions/.a6cf0290-207b-496a-927c-e2cc595e8098: dbaeumer.vscode-eslint
[40752 ms] [16:41:40] Renamed to /root/.vscode-server/extensions/dbaeumer.vscode-eslint-2.2.6
[40757 ms] [16:41:40] Extracting completed. dbaeumer.vscode-eslint
[40761 ms] [16:41:40] Extension installed successfully: dbaeumer.vscode-eslint
[40766 ms] Extension 'dbaeumer.vscode-eslint' v2.2.6 was successfully installed.

[BUG]: Test 8 in "build a video game marketplace" never passes.

Issue/Experience

In the "build a video game marketplace" tutorial, test 8 never passes. It looks like the test is running in a temporary folder of test7 not test8.

Output of running node tooling/camper-info.js from the workspace root

๐Ÿ”ต INFO: Project: build-a-video-game-marketplace-blockchain
๐Ÿ”ต INFO: Lesson Number: 1
๐Ÿ”ต INFO: Curriculum Version: 0.1.2
๐Ÿ”ต INFO: freeCodeCamp - Courses: [email protected]
๐Ÿ”ต INFO: Commit: fe49142 fix: final adjustments before release (#85)

๐Ÿ”ต INFO: OS Info:
Architecture: x64
Platform: linux
Release: 5.15.79.1-microsoft-standard-WSL2
Type: Linux

[REVIEW] Build a Web3 Client-Side Package for Your dApp

  • Mention to work within the build-a-web3-client-side-package-for-your-dapp
  • client does not exist in fixture/client
  • Change npm run test to node fixture/provider.js
  • Look into second test failing
  • "...including the JSON stringyfied version of..." is unclear cannot think of a nice way to put this
  • Fetches hang, when the method is unfinished
  • Add // <num> to tests
  • Returns do not always specify res.result

[REVIEW] Build a Smart Contract in Rust

The build-a-smart-contract-in-rust project could do with a section/bonus/requirement for Campers to:

  • "If you want to see your contract in action..."
  • Deploy contract
  • Run nodes
  • Test contract

[BUG]: Command Palette not recognizing 'freeCodeCamp: Run Course'

Issue/Experience

I did all the instructions you mentioned to set up my environment for Web3, but it was not displaying on the command palette "freeCodeCamp: Run Course".

I was able to fix it by downloading the extension of 'freeCodeCamp - Courses' in my VS Code. It would be nice if you mention this hint if people get stuck like I was.

[learn-proof-of-work-consensus-by-building-a-block-mining-algorithm]: review feedback

ISSUES

  • 4: Extra sentence in description?
  • 7: TypeError: __helpers.babeliser is not a function
  • 8: "... into a 256-bit hash ..."
  • 12: Lesson glitched, and tests failed - probably nothing to do here - manually running tests passed.
    • I mention in the case you have weird timeouts that might be causing this
  • 64: "... and see if it matches ..."
  • 64: I used previousHash, but test expects previousBlock.hash
  • 74: Why the first property?
  • 105: ugly regex test. I did if (address === fromAddress)

SUGGESTIONS

  1. A few errors in the console due to Cannot read properties of undefined - OPTIONAL CHAINING

Flow is excellent! You are a master teacher, Tom ๐Ÿ˜ฎ
Thank you for using "object literal" ๐Ÿ˜

"This is fun"

Canaries Release Task List

  1. QA the five projects, checked means they're ready:
  • Build a Video Game Marketplace Blockchain
  • Build a Fundraising Smart Contract
  • Build a Peer-to-Peer Network
  • Build a Web3 Client-Side Package for Your dApp
  • Build a Smart Contract in Rust
  • Fix any significant ShaunOS issues. I'm not sure there are any that really need fixing - seems to be working good.
  1. Write explanation on how to run them. Not sure if we just want to post in discord or maybe make a forum post to link to
  • Write it
  • Post it

[CHORE] Remove acornParse

Remove acornParse from the repo and replace with babeliser.

There is likely a number of steps in up to the first three projects that use acornParse. Those tests will need to be updated to use babeliser.

[REVIEW] Build a Video Game Marketplace Blockchain

Review Notes

  • Should mention the need to work entirely within the build-a-video-game-marketplace-blockchain directory - #38
  • test 7 should not mention hash property - #38
  • test 9 should not mention hash property - #38
  • Last test is incorrect - see video - better with #21
  • Please use specific assertions - not just your own assertion message. Use assert.equal, assert.isAbove, assert.isEmpty, etc. - fixed with #21

[DEVX] Can't use comments at end of test

If you have a test that looks like this:

```js
assert(false);
// comment
```

Stuff breaks, pretty sure. Not a big deal now that I know - had me pretty confused for a bit.

[UI] Console doesn't get updated

  • run the tests so they fail
  • open the console, see errors, don't close/hide it
  • make it so different tests fail - or none fail?
  • run the tests again
  • console doesn't get updated until you click tests and then go back to the console

[TESTS] Validate some things

Not urgent or necessary, just making an issue with some thoughts...

We could run the markdown files through some sort of validator to make sure they all have the correct format
We could make sure all the md filenames are included in the config/projects.json
Make sure the repo has a folder name that matches the dashedName?
Make sure they're in .vscode/settings.json?

something's wrong when opening and running the course[HELP]:

Question

something's wrong when opening and running the course:
freeCodeCamp Open Course:connection found. Please check your internet connection
freeCodeCamp Run Course:Unable to find a freecodecamp.conf.json file in workspace.

Code and Screenshots

image

Peer to Peer Helpers

Please can we change the clone-node.js script to work:
a) clone-node.js accepts a number of nodes to clone (e.g. node clone-node.js 2 - create 2 more nodes)
b) Nodes should be startable from the root (e.g. node node-1/index.js)
c) Maybe even a node start-all-nodes.js script?
d) The clone-node.js script should delete all nodes and reclone

After playing a bit, I made some of these changes myself, because I got so sick and tired of cloning, deleting, cding, starting...

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.