feat: split rdbms into individual blocks and two challengeTypes (#44978)

* feat: split english rdbms into individual blocks

fix: stuff

fix: remove from partiallyComplete array on submit

fix: add suggestion

Update client/i18n/locales/english/translations.json

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>

Update client/i18n/locales/english/intro.json

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>

Update client/i18n/locales/english/intro.json

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>

Update client/i18n/locales/english/intro.json

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>

Update client/src/templates/Challenges/codeally/show.tsx

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>

Update client/src/templates/Challenges/codeally/show.tsx

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>

Update client/src/templates/Challenges/codeally/show.tsx

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>

Update client/src/templates/Challenges/codeally/show.tsx

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>

Update client/src/templates/Challenges/codeally/show.tsx

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>

Update client/src/templates/Challenges/codeally/show.tsx

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>

Update client/src/templates/Challenges/codeally/show.tsx

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>

Update client/src/templates/Challenges/codeally/show.tsx

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>

* fix: prettier

* fix: style suggestion

* Apply suggestions from code review

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
This commit is contained in:
Tom
2022-02-11 09:39:27 -06:00
committed by GitHub
parent 226a8248b7
commit 57cf47dad4
267 changed files with 3832 additions and 2229 deletions

View File

@ -995,6 +995,25 @@ export default function initializeUser(User) {
});
};
User.prototype.getPartiallyCompletedChallenges$ =
function getPartiallyCompletedChallenges$() {
if (
Array.isArray(this.partiallyCompletedChallenges) &&
this.partiallyCompletedChallenges.length
) {
return Observable.of(this.partiallyCompletedChallenges);
}
const id = this.getId();
const filter = {
where: { id },
fields: { partiallyCompletedChallenges: true }
};
return this.constructor.findOne$(filter).map(user => {
this.partiallyCompletedChallenges = user.partiallyCompletedChallenges;
return user.partiallyCompletedChallenges;
});
};
User.getMessages = messages => Promise.resolve(messages);
User.remoteMethod('getMessages', {

View File

@ -236,6 +236,15 @@
],
"default": []
},
"partiallyCompletedChallenges": {
"type": [
{
"completedDate": "number",
"id": "string"
}
],
"default": []
},
"portfolio": {
"type": "array",
"default": []

View File

@ -20,3 +20,6 @@ export const fixCompletedChallengeItem = obj =>
'files',
'isManuallyApproved'
]);
export const fixPartiallyCompletedChallengeItem = obj =>
pick(obj, ['id', 'completedDate']);

View File

@ -13,7 +13,10 @@ import isNumeric from 'validator/lib/isNumeric';
import isURL from 'validator/lib/isURL';
import { environment, deploymentEnv } from '../../../../config/env.json';
import { fixCompletedChallengeItem } from '../../common/utils';
import {
fixCompletedChallengeItem,
fixPartiallyCompletedChallengeItem
} from '../../common/utils';
import { getChallenges } from '../utils/get-curriculum';
import { ifNoUserSend } from '../utils/middleware';
import {
@ -134,6 +137,10 @@ export function buildUserUpdate(
)
};
updateData.$pull = {
partiallyCompletedChallenges: { id: challengeId }
};
if (
timezone &&
timezone !== 'UTC' &&
@ -283,6 +290,27 @@ function projectCompleted(req, res, next) {
});
}
// CodeRoad cert project
if (completedChallenge.challengeType === 13) {
const { partiallyCompletedChallenges = [], completedChallenges = [] } =
user;
const isPartiallyCompleted = partiallyCompletedChallenges.some(
challenge => challenge.id === completedChallenge.id
);
const isCompleted = completedChallenges.some(
challenge => challenge.id === completedChallenge.id
);
if (!isPartiallyCompleted && !isCompleted) {
return res.status(403).json({
type: 'error',
message: 'You have to complete the project before you can submit a URL.'
});
}
}
return user
.getCompletedChallenges$()
.flatMap(() => {
@ -345,6 +373,10 @@ function backendChallengeCompleted(req, res, next) {
.subscribe(() => {}, next);
}
const codeRoadChallenges = getChallenges().filter(
({ challengeType }) => challengeType === 12 || challengeType === 13
);
function createCoderoadChallengeCompleted(app) {
/* Example request coming from CodeRoad:
* req.body: { tutorialId: 'freeCodeCamp/learn-bash-by-building-a-boilerplate:v1.0.0' }
@ -374,18 +406,14 @@ function createCoderoadChallengeCompleted(app) {
return res.send('Tutorial not hosted on freeCodeCamp GitHub account');
}
const codeRoadChallenges = getChallenges().filter(
challenge => challenge.challengeType === 12
);
// validate tutorial name is in codeRoadChallenges object
const tutorialInfo = codeRoadChallenges.find(tutorial =>
tutorial.url?.includes(tutorialRepoName)
const challenge = codeRoadChallenges.find(challenge =>
challenge.url?.includes(tutorialRepoName)
);
if (!tutorialInfo) return res.send('Tutorial name is not valid');
if (!challenge) return res.send('Tutorial name is not valid');
const tutorialMongoId = tutorialInfo?.id;
const { id: challengeId, challengeType } = challenge;
try {
// check if webhook token is in database
@ -406,12 +434,43 @@ function createCoderoadChallengeCompleted(app) {
// submit challenge
const completedDate = Date.now();
const { completedChallenges = [], partiallyCompletedChallenges = [] } =
user;
const userUpdateInfo = buildUserUpdate(user, tutorialMongoId, {
id: tutorialMongoId,
completedDate
});
let userUpdateInfo = {};
const isCompleted = completedChallenges.some(
challenge => challenge.id === challengeId
);
// if CodeRoad cert project and not in completedChallenges,
// add to partiallyCompletedChallenges
if (challengeType === 13 && !isCompleted) {
const finalChallenge = {
id: challengeId,
completedDate
};
userUpdateInfo.updateData = {};
userUpdateInfo.updateData.$set = {
partiallyCompletedChallenges: uniqBy(
[
finalChallenge,
...partiallyCompletedChallenges.map(
fixPartiallyCompletedChallengeItem
)
],
'id'
)
};
// else, add to or update completedChallenges
} else {
userUpdateInfo = buildUserUpdate(user, challengeId, {
id: challengeId,
completedDate
});
}
const updatedUser = await user.updateAttributes(
userUpdateInfo?.updateData
);

View File

@ -4,7 +4,10 @@ import { body } from 'express-validator';
import { pick } from 'lodash';
import { Observable } from 'rx';
import { fixCompletedChallengeItem } from '../../common/utils';
import {
fixCompletedChallengeItem,
fixPartiallyCompletedChallengeItem
} from '../../common/utils';
import { removeCookies } from '../utils/getSetAccessToken';
import { ifNoUser401, ifNoUserRedirectHome } from '../utils/middleware';
import {
@ -99,11 +102,18 @@ function createReadSessionUser(app) {
queryUser &&
Observable.forkJoin(
queryUser.getCompletedChallenges$(),
queryUser.getPartiallyCompletedChallenges$(),
queryUser.getPoints$(),
Donation.getCurrentActiveDonationCount$(),
(completedChallenges, progressTimestamps, activeDonations) => ({
(
completedChallenges,
partiallyCompletedChallenges,
progressTimestamps,
activeDonations
) => ({
activeDonations,
completedChallenges,
partiallyCompletedChallenges,
progress: getProgress(progressTimestamps, queryUser.timezone)
})
);
@ -111,16 +121,26 @@ function createReadSessionUser(app) {
() => !queryUser,
Observable.of({ user: {}, result: '' }),
Observable.defer(() => source)
.map(({ activeDonations, completedChallenges, progress }) => ({
user: {
...queryUser.toJSON(),
...progress,
completedChallenges: completedChallenges.map(
fixCompletedChallengeItem
)
},
sessionMeta: { activeDonations }
}))
.map(
({
activeDonations,
completedChallenges,
partiallyCompletedChallenges,
progress
}) => ({
user: {
...queryUser.toJSON(),
...progress,
completedChallenges: completedChallenges.map(
fixCompletedChallengeItem
),
partiallyCompletedChallenges: partiallyCompletedChallenges.map(
fixPartiallyCompletedChallengeItem
)
},
sessionMeta: { activeDonations }
})
)
.map(({ user, sessionMeta }) => ({
user: {
[user.username]: {

View File

@ -32,6 +32,7 @@ export const publicUserProps = [
'linkedin',
'location',
'name',
'partiallyCompletedChallenges',
'points',
'portfolio',
'profileUI',

View File

@ -428,15 +428,107 @@
"relational-databases": {
"title": "關係型數據庫",
"intro": [
"對於這些課程,你將使用真正的開發者工具和軟件,包括 VS CodePostgreSQL Linux / Unix 命令行,來完成交互式教程和構建項目。"
"For these courses, you will use real developer tools and software including VS Code, PostgreSQL, and the Linux / Unix command line to complete interactive tutorials and build projects.",
"These courses start off with basic Bash commands. Using the terminal, you will learn everything from navigating and manipulating a file system, scripting in Bash, all the way to advanced usage.",
"Next, you will learn how to create and work with relational databases using PostgreSQL, a database management system, and SQL, the language of these databases.",
"Finally, you will learn Git, the version control system, an essential tool of every developer."
],
"blocks": {
"learn-relational-databases": {
"title": "學習關係型數據庫",
"build-a-celestial-bodies-database-project": {
"title": "Celestial Bodies Database",
"intro": [
"這些課程從基本的 Bash 命令開始。使用終端你將學習從導航和操作一個文件系統、Bash 腳本到高級應用的所有內容。",
"接下來,你將學習如何使用數據庫管理系統 PostgreSQL 和數據庫語言 SQL 來創建和使用關係數據庫。",
"最後,你將學習版本控制系統 Git 和代碼庫託管服務 GitHub——每個開發者的兩個基本工具。"
"This is one of the required projects to earn your certification.",
"For this project, you will build a database of celestial bodies using PostgreSQL."
]
},
"build-a-number-guessing-game-project": {
"title": "Number Guessing Game",
"intro": [
"This is one of the required projects to earn your certification.",
"For this project, you will use Bash scripting, PostgreSQL, and Git to create a number guessing game that runs in the terminal and saves user information."
]
},
"build-a-periodic-table-database-project": {
"title": "Periodic Table Database",
"intro": [
"This is one of the required projects to earn your certification.",
"For this project, you will create Bash a script to get information about chemical elements from a periodic table database."
]
},
"build-a-salon-appointment-scheduler-project": {
"title": "Salon Appointment Scheduler",
"intro": [
"This is one of the required projects to earn your certification.",
"For this project, you will create an interactive Bash program that uses PostgreSQL to track the customers and appointments for your salon."
]
},
"build-a-world-cup-database-project": {
"title": "World Cup Database",
"intro": [
"This is one of the required projects to earn your certification.",
"For this project, you will create a Bash script that enters information from World Cup games into PostgreSQL, then query the database for useful statistics."
]
},
"learn-advanced-bash-by-building-a-kitty-ipsum-translator": {
"title": "Learn Advanced Bash by Building a Kitty Ipsum Translator",
"intro": [
"There's more to Bash commands than you might think.",
"In this 140 lesson course, you will learn some more complex commands, and the details of how commands work."
]
},
"learn-bash-and-sql-by-building-a-bike-rental-shop": {
"title": "Learn Bash and SQL by Building a Bike Rental Shop",
"intro": [
"In this 210 lesson course, you will build an interactive Bash program that stores rental information for your bike rental shop using PostgreSQL."
]
},
"learn-bash-by-building-a-boilerplate": {
"title": "Learn Bash by Building a Boilerplate",
"intro": [
"The terminal allows you to send text commands to your computer that can manipulate the file system, run programs, automate tasks, and much more.",
"In this 170 lesson course, you will learn basic commands by creating a website boilerplate using only the command line."
]
},
"learn-bash-scripting-by-building-five-programs": {
"title": "Learn Bash Scripting by Building Five Programs",
"intro": [
"Bash scripts combine terminal commands and logic into programs that can execute or automate tasks, and much more.",
"In this 220 lesson course, you will learn more terminal commands and how to use them within Bash scripts by creating five small programs."
]
},
"learn-git-by-building-an-sql-reference-object": {
"title": "Learn Git by Building and SQL Reference Object",
"intro": [
"Git is a version control system that keep track of all the changes you make to your codebase",
"In this 240 lesson course, you will learn how Git keeps track of your code by creating an object containing commonly used SQL commands."
]
},
"learn-nano-by-building-a-castle": {
"title": "Learn Nano by Building a Castle",
"intro": [
"Nano is a program that allow you to edit files right in the terminal.",
"In this 40 lesson course, you will learn how to edit files in the terminal with Nano while building a castle."
]
},
"learn-relational-databases-by-building-a-mario-database": {
"title": "Learn Relational Databases by Building a Mario Database",
"intro": [
"Relational Databases organize data into tables that are linked together through relationships.",
"In this 165 lesson course, you will learn the basics of relational databases by creating a PostgreSQL database filled with video game characters."
]
},
"learn-sql-by-building-a-student-database-part-1": {
"title": "Learn SQL by Building a Student Database: Part 1",
"intro": [
"SQL, or Structured Query Language, is the language for communicating with Relational Databases.",
"In this 140 lesson course, you will create a Bash script that uses SQL to enter information about your computer science students into PostgreSQL."
]
},
"learn-sql-by-building-a-student-database-part-2": {
"title": "Learn SQL by Building a Student Database: Part 2",
"intro": [
"SQL Join commands are used to combine information from multiple tables in a Relational Database",
"In this 140 lesson course, you will complete your student database while diving deeper into SQL commands."
]
}
}

View File

@ -428,15 +428,107 @@
"relational-databases": {
"title": "关系型数据库",
"intro": [
"对于这些课程,你将使用真正的开发者工具和软件,包括 VS CodePostgreSQL Linux / Unix 命令行,来完成交互式教程和构建项目。"
"For these courses, you will use real developer tools and software including VS Code, PostgreSQL, and the Linux / Unix command line to complete interactive tutorials and build projects.",
"These courses start off with basic Bash commands. Using the terminal, you will learn everything from navigating and manipulating a file system, scripting in Bash, all the way to advanced usage.",
"Next, you will learn how to create and work with relational databases using PostgreSQL, a database management system, and SQL, the language of these databases.",
"Finally, you will learn Git, the version control system, an essential tool of every developer."
],
"blocks": {
"learn-relational-databases": {
"title": "学习关系型数据库",
"build-a-celestial-bodies-database-project": {
"title": "Celestial Bodies Database",
"intro": [
"这些课程从基本的 Bash 命令开始。使用终端你将学习从导航和操作一个文件系统、Bash 脚本到高级应用的所有内容。",
"接下来,你将学习如何使用数据库管理系统 PostgreSQL 和数据库语言 SQL 来创建和使用关系数据库。",
"最后,你将学习版本控制系统 Git 和代码库托管服务 GitHub——每个开发者的两个基本工具。"
"This is one of the required projects to earn your certification.",
"For this project, you will build a database of celestial bodies using PostgreSQL."
]
},
"build-a-number-guessing-game-project": {
"title": "Number Guessing Game",
"intro": [
"This is one of the required projects to earn your certification.",
"For this project, you will use Bash scripting, PostgreSQL, and Git to create a number guessing game that runs in the terminal and saves user information."
]
},
"build-a-periodic-table-database-project": {
"title": "Periodic Table Database",
"intro": [
"This is one of the required projects to earn your certification.",
"For this project, you will create Bash a script to get information about chemical elements from a periodic table database."
]
},
"build-a-salon-appointment-scheduler-project": {
"title": "Salon Appointment Scheduler",
"intro": [
"This is one of the required projects to earn your certification.",
"For this project, you will create an interactive Bash program that uses PostgreSQL to track the customers and appointments for your salon."
]
},
"build-a-world-cup-database-project": {
"title": "World Cup Database",
"intro": [
"This is one of the required projects to earn your certification.",
"For this project, you will create a Bash script that enters information from World Cup games into PostgreSQL, then query the database for useful statistics."
]
},
"learn-advanced-bash-by-building-a-kitty-ipsum-translator": {
"title": "Learn Advanced Bash by Building a Kitty Ipsum Translator",
"intro": [
"There's more to Bash commands than you might think.",
"In this 140 lesson course, you will learn some more complex commands, and the details of how commands work."
]
},
"learn-bash-and-sql-by-building-a-bike-rental-shop": {
"title": "Learn Bash and SQL by Building a Bike Rental Shop",
"intro": [
"In this 210 lesson course, you will build an interactive Bash program that stores rental information for your bike rental shop using PostgreSQL."
]
},
"learn-bash-by-building-a-boilerplate": {
"title": "Learn Bash by Building a Boilerplate",
"intro": [
"The terminal allows you to send text commands to your computer that can manipulate the file system, run programs, automate tasks, and much more.",
"In this 170 lesson course, you will learn basic commands by creating a website boilerplate using only the command line."
]
},
"learn-bash-scripting-by-building-five-programs": {
"title": "Learn Bash Scripting by Building Five Programs",
"intro": [
"Bash scripts combine terminal commands and logic into programs that can execute or automate tasks, and much more.",
"In this 220 lesson course, you will learn more terminal commands and how to use them within Bash scripts by creating five small programs."
]
},
"learn-git-by-building-an-sql-reference-object": {
"title": "Learn Git by Building and SQL Reference Object",
"intro": [
"Git is a version control system that keep track of all the changes you make to your codebase",
"In this 240 lesson course, you will learn how Git keeps track of your code by creating an object containing commonly used SQL commands."
]
},
"learn-nano-by-building-a-castle": {
"title": "Learn Nano by Building a Castle",
"intro": [
"Nano is a program that allow you to edit files right in the terminal.",
"In this 40 lesson course, you will learn how to edit files in the terminal with Nano while building a castle."
]
},
"learn-relational-databases-by-building-a-mario-database": {
"title": "Learn Relational Databases by Building a Mario Database",
"intro": [
"Relational Databases organize data into tables that are linked together through relationships.",
"In this 165 lesson course, you will learn the basics of relational databases by creating a PostgreSQL database filled with video game characters."
]
},
"learn-sql-by-building-a-student-database-part-1": {
"title": "Learn SQL by Building a Student Database: Part 1",
"intro": [
"SQL, or Structured Query Language, is the language for communicating with Relational Databases.",
"In this 140 lesson course, you will create a Bash script that uses SQL to enter information about your computer science students into PostgreSQL."
]
},
"learn-sql-by-building-a-student-database-part-2": {
"title": "Learn SQL by Building a Student Database: Part 2",
"intro": [
"SQL Join commands are used to combine information from multiple tables in a Relational Database",
"In this 140 lesson course, you will complete your student database while diving deeper into SQL commands."
]
}
}

View File

@ -413,15 +413,107 @@
"relational-databases": {
"title": "Relational Databases",
"intro": [
"For these courses, you will use real developer tools and software including VS Code, PostgreSQL, and the Linux / Unix command line to complete interactive tutorials and build projects."
"For these courses, you will use real developer tools and software including VS Code, PostgreSQL, and the Linux / Unix command line to complete interactive tutorials and build projects.",
"These courses start off with basic Bash commands. Using the terminal, you will learn everything from navigating and manipulating a file system, scripting in Bash, all the way to advanced usage.",
"Next, you will learn how to create and work with relational databases using PostgreSQL, a database management system, and SQL, the language of these databases.",
"Finally, you will learn Git, the version control system, an essential tool of every developer."
],
"blocks": {
"learn-relational-databases": {
"title": "Learn Relational Databases",
"build-a-celestial-bodies-database-project": {
"title": "Celestial Bodies Database",
"intro": [
"These courses start off with basic Bash commands. Using the terminal, you will learn everything from navigating and manipulating a file system, scripting in Bash, all the way to advanced usage.",
"Next, you will learn how to create and work with relational databases using PostgreSQL, a database management system, and SQL, the language of these databases.",
"Finally, you will learn Git, the version control system, and GitHub, a code repository hosting service - two essential tools of every developer."
"This is one of the required projects to earn your certification.",
"For this project, you will build a database of celestial bodies using PostgreSQL."
]
},
"build-a-number-guessing-game-project": {
"title": "Number Guessing Game",
"intro": [
"This is one of the required projects to earn your certification.",
"For this project, you will use Bash scripting, PostgreSQL, and Git to create a number guessing game that runs in the terminal and saves user information."
]
},
"build-a-periodic-table-database-project": {
"title": "Periodic Table Database",
"intro": [
"This is one of the required projects to earn your certification.",
"For this project, you will create Bash a script to get information about chemical elements from a periodic table database."
]
},
"build-a-salon-appointment-scheduler-project": {
"title": "Salon Appointment Scheduler",
"intro": [
"This is one of the required projects to earn your certification.",
"For this project, you will create an interactive Bash program that uses PostgreSQL to track the customers and appointments for your salon."
]
},
"build-a-world-cup-database-project": {
"title": "World Cup Database",
"intro": [
"This is one of the required projects to earn your certification.",
"For this project, you will create a Bash script that enters information from World Cup games into PostgreSQL, then query the database for useful statistics."
]
},
"learn-advanced-bash-by-building-a-kitty-ipsum-translator": {
"title": "Learn Advanced Bash by Building a Kitty Ipsum Translator",
"intro": [
"There's more to Bash commands than you might think.",
"In this 140 lesson course, you will learn some more complex commands, and the details of how commands work."
]
},
"learn-bash-and-sql-by-building-a-bike-rental-shop": {
"title": "Learn Bash and SQL by Building a Bike Rental Shop",
"intro": [
"In this 210 lesson course, you will build an interactive Bash program that stores rental information for your bike rental shop using PostgreSQL."
]
},
"learn-bash-by-building-a-boilerplate": {
"title": "Learn Bash by Building a Boilerplate",
"intro": [
"The terminal allows you to send text commands to your computer that can manipulate the file system, run programs, automate tasks, and much more.",
"In this 170 lesson course, you will learn basic commands by creating a website boilerplate using only the command line."
]
},
"learn-bash-scripting-by-building-five-programs": {
"title": "Learn Bash Scripting by Building Five Programs",
"intro": [
"Bash scripts combine terminal commands and logic into programs that can execute or automate tasks, and much more.",
"In this 220 lesson course, you will learn more terminal commands and how to use them within Bash scripts by creating five small programs."
]
},
"learn-git-by-building-an-sql-reference-object": {
"title": "Learn Git by Building and SQL Reference Object",
"intro": [
"Git is a version control system that keeps track of all the changes you make to your codebase.",
"In this 240 lesson course, you will learn how Git keeps track of your code by creating an object containing commonly used SQL commands."
]
},
"learn-nano-by-building-a-castle": {
"title": "Learn Nano by Building a Castle",
"intro": [
"Nano is a program that allows you to edit files right in the terminal.",
"In this 40 lesson course, you will learn how to edit files in the terminal with Nano while building a castle."
]
},
"learn-relational-databases-by-building-a-mario-database": {
"title": "Learn Relational Databases by Building a Mario Database",
"intro": [
"Relational databases organize data into tables that are linked together through relationships.",
"In this 165 lesson course, you will learn the basics of relational databases by creating a PostgreSQL database filled with video game characters."
]
},
"learn-sql-by-building-a-student-database-part-1": {
"title": "Learn SQL by Building a Student Database: Part 1",
"intro": [
"SQL, or Structured Query Language, is the language for communicating with relational databases.",
"In this 140 lesson course, you will create a Bash script that uses SQL to enter information about your computer science students into PostgreSQL."
]
},
"learn-sql-by-building-a-student-database-part-2": {
"title": "Learn SQL by Building a Student Database: Part 2",
"intro": [
"SQL join commands are used to combine information from multiple tables in a relational database",
"In this 140 lesson course, you will complete your student database while diving deeper into SQL commands."
]
}
}

View File

@ -64,7 +64,9 @@
"go-to-next": "Go to next challenge",
"ask-later": "Ask me later",
"start-coding": "Start coding!",
"go-to-settings": "Go to settings to claim your certification"
"go-to-settings": "Go to settings to claim your certification",
"click-start-course": "Click here to start the course",
"click-start-project": "Click here to start the project"
},
"landing": {
"big-heading-1": "Learn to code — for free.",
@ -294,7 +296,13 @@
},
"help-translate": "We are still translating the following certifications.",
"help-translate-link": "Help us translate.",
"project-preview-title": "Here's a preview of what you will build"
"project-preview-title": "Here's a preview of what you will build",
"github-required": "A <0>GitHub</0> account is required to run the project. You will need to create one if you haven't already.",
"step-1": "Step 1: Complete the project",
"step-2": "Step 2: Submit your code",
"submit-public-url": "When you have completed the project, save all the required files into a public repository and submit the URL to it below.",
"complete-both-steps": "Complete both steps below to finish the challenge.",
"runs-in-vm": "The project runs in a virtual machine, complete the user stories described in there and get all the tests to pass to finish step 1."
},
"donate": {
"title": "Support our nonprofit",
@ -512,7 +520,8 @@
"create-token-err": "An error occurred trying to create a token",
"delete-token-err": "An error occurred trying to delete your token",
"token-created": "You have successfully created a new token.",
"token-deleted": "Your token has been deleted."
"token-deleted": "Your token has been deleted.",
"complete-project-first": "You must complete the project first."
},
"validation": {
"max-characters": "There is a maximum limit of 288 characters, you have {{charsLeft}} left",

View File

@ -428,15 +428,107 @@
"relational-databases": {
"title": "Bases de Datos Relacionales",
"intro": [
"Para estos cursos, utilizarás herramientas y software de desarrollador reales, incluyendo VS Code, PostgreSQL y la línea de comandos de Linux / Unix para completar tutoriales interactivos y crear proyectos."
"For these courses, you will use real developer tools and software including VS Code, PostgreSQL, and the Linux / Unix command line to complete interactive tutorials and build projects.",
"These courses start off with basic Bash commands. Using the terminal, you will learn everything from navigating and manipulating a file system, scripting in Bash, all the way to advanced usage.",
"Next, you will learn how to create and work with relational databases using PostgreSQL, a database management system, and SQL, the language of these databases.",
"Finally, you will learn Git, the version control system, an essential tool of every developer."
],
"blocks": {
"learn-relational-databases": {
"title": "Aprender Bases de Datos Relacionales",
"build-a-celestial-bodies-database-project": {
"title": "Celestial Bodies Database",
"intro": [
"Estos cursos comienzan con comandos básicos de Bash. Usando el terminal, aprenderás todo, desde navegar y manipular un sistema de archivos, crear scripts en Bash, hasta el uso avanzado.",
"A continuación, aprenderás como crear y trabajar con bases de datos relacionales utilizando PostgreSQL, un sistema de administración de bases de datos, y SQL, el lenguaje de estas bases de datos.",
"Finalmente, aprenderás Git, el sistema de control de versiones, y GitHub, un servicio de alojamiento de repositorios de código, dos herramientas esenciales de todo desarrollador."
"This is one of the required projects to earn your certification.",
"For this project, you will build a database of celestial bodies using PostgreSQL."
]
},
"build-a-number-guessing-game-project": {
"title": "Number Guessing Game",
"intro": [
"This is one of the required projects to earn your certification.",
"For this project, you will use Bash scripting, PostgreSQL, and Git to create a number guessing game that runs in the terminal and saves user information."
]
},
"build-a-periodic-table-database-project": {
"title": "Periodic Table Database",
"intro": [
"This is one of the required projects to earn your certification.",
"For this project, you will create Bash a script to get information about chemical elements from a periodic table database."
]
},
"build-a-salon-appointment-scheduler-project": {
"title": "Salon Appointment Scheduler",
"intro": [
"This is one of the required projects to earn your certification.",
"For this project, you will create an interactive Bash program that uses PostgreSQL to track the customers and appointments for your salon."
]
},
"build-a-world-cup-database-project": {
"title": "World Cup Database",
"intro": [
"This is one of the required projects to earn your certification.",
"For this project, you will create a Bash script that enters information from World Cup games into PostgreSQL, then query the database for useful statistics."
]
},
"learn-advanced-bash-by-building-a-kitty-ipsum-translator": {
"title": "Learn Advanced Bash by Building a Kitty Ipsum Translator",
"intro": [
"There's more to Bash commands than you might think.",
"In this 140 lesson course, you will learn some more complex commands, and the details of how commands work."
]
},
"learn-bash-and-sql-by-building-a-bike-rental-shop": {
"title": "Learn Bash and SQL by Building a Bike Rental Shop",
"intro": [
"In this 210 lesson course, you will build an interactive Bash program that stores rental information for your bike rental shop using PostgreSQL."
]
},
"learn-bash-by-building-a-boilerplate": {
"title": "Learn Bash by Building a Boilerplate",
"intro": [
"The terminal allows you to send text commands to your computer that can manipulate the file system, run programs, automate tasks, and much more.",
"In this 170 lesson course, you will learn basic commands by creating a website boilerplate using only the command line."
]
},
"learn-bash-scripting-by-building-five-programs": {
"title": "Learn Bash Scripting by Building Five Programs",
"intro": [
"Bash scripts combine terminal commands and logic into programs that can execute or automate tasks, and much more.",
"In this 220 lesson course, you will learn more terminal commands and how to use them within Bash scripts by creating five small programs."
]
},
"learn-git-by-building-an-sql-reference-object": {
"title": "Learn Git by Building and SQL Reference Object",
"intro": [
"Git is a version control system that keep track of all the changes you make to your codebase",
"In this 240 lesson course, you will learn how Git keeps track of your code by creating an object containing commonly used SQL commands."
]
},
"learn-nano-by-building-a-castle": {
"title": "Learn Nano by Building a Castle",
"intro": [
"Nano is a program that allow you to edit files right in the terminal.",
"In this 40 lesson course, you will learn how to edit files in the terminal with Nano while building a castle."
]
},
"learn-relational-databases-by-building-a-mario-database": {
"title": "Learn Relational Databases by Building a Mario Database",
"intro": [
"Relational Databases organize data into tables that are linked together through relationships.",
"In this 165 lesson course, you will learn the basics of relational databases by creating a PostgreSQL database filled with video game characters."
]
},
"learn-sql-by-building-a-student-database-part-1": {
"title": "Learn SQL by Building a Student Database: Part 1",
"intro": [
"SQL, or Structured Query Language, is the language for communicating with Relational Databases.",
"In this 140 lesson course, you will create a Bash script that uses SQL to enter information about your computer science students into PostgreSQL."
]
},
"learn-sql-by-building-a-student-database-part-2": {
"title": "Learn SQL by Building a Student Database: Part 2",
"intro": [
"SQL Join commands are used to combine information from multiple tables in a Relational Database",
"In this 140 lesson course, you will complete your student database while diving deeper into SQL commands."
]
}
}

View File

@ -428,15 +428,107 @@
"relational-databases": {
"title": "Database relazionali",
"intro": [
"Per questi corsi, utilizzerai strumenti e software per veri sviluppatori tra cui VS Code, PostgreSQL, e la riga di comando Linux / Unix per completare i tutorial interattivi e costruire progetti."
"For these courses, you will use real developer tools and software including VS Code, PostgreSQL, and the Linux / Unix command line to complete interactive tutorials and build projects.",
"These courses start off with basic Bash commands. Using the terminal, you will learn everything from navigating and manipulating a file system, scripting in Bash, all the way to advanced usage.",
"Next, you will learn how to create and work with relational databases using PostgreSQL, a database management system, and SQL, the language of these databases.",
"Finally, you will learn Git, the version control system, an essential tool of every developer."
],
"blocks": {
"learn-relational-databases": {
"title": "Conosci i Database Relazionali",
"build-a-celestial-bodies-database-project": {
"title": "Celestial Bodies Database",
"intro": [
"Questi corsi iniziano con i comandi Bash di base. Utilizzando il terminale, imparerai tutto dal navigare e manipolare un sistema di archiviazione, scripting in Bash, fino ad un utilizzo avanzato.",
"Successivamente, imparerai come creare e lavorare con i database relazionali utilizzando PostgreSQL, un sistema di gestione dei database e SQL, la lingua di questi database.",
"Infine, imparerai Git, il sistema di controllo delle versioni, e GitHub, un servizio di hosting di repository di codice - due strumenti essenziali di ogni sviluppatore."
"This is one of the required projects to earn your certification.",
"For this project, you will build a database of celestial bodies using PostgreSQL."
]
},
"build-a-number-guessing-game-project": {
"title": "Number Guessing Game",
"intro": [
"This is one of the required projects to earn your certification.",
"For this project, you will use Bash scripting, PostgreSQL, and Git to create a number guessing game that runs in the terminal and saves user information."
]
},
"build-a-periodic-table-database-project": {
"title": "Periodic Table Database",
"intro": [
"This is one of the required projects to earn your certification.",
"For this project, you will create Bash a script to get information about chemical elements from a periodic table database."
]
},
"build-a-salon-appointment-scheduler-project": {
"title": "Salon Appointment Scheduler",
"intro": [
"This is one of the required projects to earn your certification.",
"For this project, you will create an interactive Bash program that uses PostgreSQL to track the customers and appointments for your salon."
]
},
"build-a-world-cup-database-project": {
"title": "World Cup Database",
"intro": [
"This is one of the required projects to earn your certification.",
"For this project, you will create a Bash script that enters information from World Cup games into PostgreSQL, then query the database for useful statistics."
]
},
"learn-advanced-bash-by-building-a-kitty-ipsum-translator": {
"title": "Learn Advanced Bash by Building a Kitty Ipsum Translator",
"intro": [
"There's more to Bash commands than you might think.",
"In this 140 lesson course, you will learn some more complex commands, and the details of how commands work."
]
},
"learn-bash-and-sql-by-building-a-bike-rental-shop": {
"title": "Learn Bash and SQL by Building a Bike Rental Shop",
"intro": [
"In this 210 lesson course, you will build an interactive Bash program that stores rental information for your bike rental shop using PostgreSQL."
]
},
"learn-bash-by-building-a-boilerplate": {
"title": "Learn Bash by Building a Boilerplate",
"intro": [
"The terminal allows you to send text commands to your computer that can manipulate the file system, run programs, automate tasks, and much more.",
"In this 170 lesson course, you will learn basic commands by creating a website boilerplate using only the command line."
]
},
"learn-bash-scripting-by-building-five-programs": {
"title": "Learn Bash Scripting by Building Five Programs",
"intro": [
"Bash scripts combine terminal commands and logic into programs that can execute or automate tasks, and much more.",
"In this 220 lesson course, you will learn more terminal commands and how to use them within Bash scripts by creating five small programs."
]
},
"learn-git-by-building-an-sql-reference-object": {
"title": "Learn Git by Building and SQL Reference Object",
"intro": [
"Git is a version control system that keep track of all the changes you make to your codebase",
"In this 240 lesson course, you will learn how Git keeps track of your code by creating an object containing commonly used SQL commands."
]
},
"learn-nano-by-building-a-castle": {
"title": "Learn Nano by Building a Castle",
"intro": [
"Nano is a program that allow you to edit files right in the terminal.",
"In this 40 lesson course, you will learn how to edit files in the terminal with Nano while building a castle."
]
},
"learn-relational-databases-by-building-a-mario-database": {
"title": "Learn Relational Databases by Building a Mario Database",
"intro": [
"Relational Databases organize data into tables that are linked together through relationships.",
"In this 165 lesson course, you will learn the basics of relational databases by creating a PostgreSQL database filled with video game characters."
]
},
"learn-sql-by-building-a-student-database-part-1": {
"title": "Learn SQL by Building a Student Database: Part 1",
"intro": [
"SQL, or Structured Query Language, is the language for communicating with Relational Databases.",
"In this 140 lesson course, you will create a Bash script that uses SQL to enter information about your computer science students into PostgreSQL."
]
},
"learn-sql-by-building-a-student-database-part-2": {
"title": "Learn SQL by Building a Student Database: Part 2",
"intro": [
"SQL Join commands are used to combine information from multiple tables in a Relational Database",
"In this 140 lesson course, you will complete your student database while diving deeper into SQL commands."
]
}
}

View File

@ -428,15 +428,107 @@
"relational-databases": {
"title": "リレーショナルデータベース",
"intro": [
"このコースでは、VS CodePostgreSQL、そして Linux / Unix コマンドラインを含む本格的な開発者ツールとソフトウェアを使用して、インタラクティブなチュートリアルを完了し、プロジェクトを構築します。"
"For these courses, you will use real developer tools and software including VS Code, PostgreSQL, and the Linux / Unix command line to complete interactive tutorials and build projects.",
"These courses start off with basic Bash commands. Using the terminal, you will learn everything from navigating and manipulating a file system, scripting in Bash, all the way to advanced usage.",
"Next, you will learn how to create and work with relational databases using PostgreSQL, a database management system, and SQL, the language of these databases.",
"Finally, you will learn Git, the version control system, an essential tool of every developer."
],
"blocks": {
"learn-relational-databases": {
"title": "リレーショナルデータベースを学習する",
"build-a-celestial-bodies-database-project": {
"title": "Celestial Bodies Database",
"intro": [
"これらのコースは基本的な Bash コマンドから始まります。ターミナルを使用して、ファイルシステムの移動や操作から、Bash 内でのスクリプト、幅広い高度な使用法まで、すべてを学習します。",
"次に、データベース管理システムである PostgreSQL と、これらデータベースの言語である SQL を使用して関係データベースを作成し取り扱う方法を学習します。",
"最後に、すべての開発者に不可欠な 2 つのツール、バージョン管理システムである Git と、コードリポジトリホスティングサービスである GitHub を学習します。"
"This is one of the required projects to earn your certification.",
"For this project, you will build a database of celestial bodies using PostgreSQL."
]
},
"build-a-number-guessing-game-project": {
"title": "Number Guessing Game",
"intro": [
"This is one of the required projects to earn your certification.",
"For this project, you will use Bash scripting, PostgreSQL, and Git to create a number guessing game that runs in the terminal and saves user information."
]
},
"build-a-periodic-table-database-project": {
"title": "Periodic Table Database",
"intro": [
"This is one of the required projects to earn your certification.",
"For this project, you will create Bash a script to get information about chemical elements from a periodic table database."
]
},
"build-a-salon-appointment-scheduler-project": {
"title": "Salon Appointment Scheduler",
"intro": [
"This is one of the required projects to earn your certification.",
"For this project, you will create an interactive Bash program that uses PostgreSQL to track the customers and appointments for your salon."
]
},
"build-a-world-cup-database-project": {
"title": "World Cup Database",
"intro": [
"This is one of the required projects to earn your certification.",
"For this project, you will create a Bash script that enters information from World Cup games into PostgreSQL, then query the database for useful statistics."
]
},
"learn-advanced-bash-by-building-a-kitty-ipsum-translator": {
"title": "Learn Advanced Bash by Building a Kitty Ipsum Translator",
"intro": [
"There's more to Bash commands than you might think.",
"In this 140 lesson course, you will learn some more complex commands, and the details of how commands work."
]
},
"learn-bash-and-sql-by-building-a-bike-rental-shop": {
"title": "Learn Bash and SQL by Building a Bike Rental Shop",
"intro": [
"In this 210 lesson course, you will build an interactive Bash program that stores rental information for your bike rental shop using PostgreSQL."
]
},
"learn-bash-by-building-a-boilerplate": {
"title": "Learn Bash by Building a Boilerplate",
"intro": [
"The terminal allows you to send text commands to your computer that can manipulate the file system, run programs, automate tasks, and much more.",
"In this 170 lesson course, you will learn basic commands by creating a website boilerplate using only the command line."
]
},
"learn-bash-scripting-by-building-five-programs": {
"title": "Learn Bash Scripting by Building Five Programs",
"intro": [
"Bash scripts combine terminal commands and logic into programs that can execute or automate tasks, and much more.",
"In this 220 lesson course, you will learn more terminal commands and how to use them within Bash scripts by creating five small programs."
]
},
"learn-git-by-building-an-sql-reference-object": {
"title": "Learn Git by Building and SQL Reference Object",
"intro": [
"Git is a version control system that keep track of all the changes you make to your codebase",
"In this 240 lesson course, you will learn how Git keeps track of your code by creating an object containing commonly used SQL commands."
]
},
"learn-nano-by-building-a-castle": {
"title": "Learn Nano by Building a Castle",
"intro": [
"Nano is a program that allow you to edit files right in the terminal.",
"In this 40 lesson course, you will learn how to edit files in the terminal with Nano while building a castle."
]
},
"learn-relational-databases-by-building-a-mario-database": {
"title": "Learn Relational Databases by Building a Mario Database",
"intro": [
"Relational Databases organize data into tables that are linked together through relationships.",
"In this 165 lesson course, you will learn the basics of relational databases by creating a PostgreSQL database filled with video game characters."
]
},
"learn-sql-by-building-a-student-database-part-1": {
"title": "Learn SQL by Building a Student Database: Part 1",
"intro": [
"SQL, or Structured Query Language, is the language for communicating with Relational Databases.",
"In this 140 lesson course, you will create a Bash script that uses SQL to enter information about your computer science students into PostgreSQL."
]
},
"learn-sql-by-building-a-student-database-part-2": {
"title": "Learn SQL by Building a Student Database: Part 2",
"intro": [
"SQL Join commands are used to combine information from multiple tables in a Relational Database",
"In this 140 lesson course, you will complete your student database while diving deeper into SQL commands."
]
}
}

View File

@ -428,15 +428,107 @@
"relational-databases": {
"title": "Bancos de dados relacionais",
"intro": [
"Para estes cursos, você usará ferramentas e software reais de desenvolvedor, incluindo o VS Code, PostgreSQL e a linha de comando do Linux/Unix para completar tutoriais interativos e criar projetos."
"For these courses, you will use real developer tools and software including VS Code, PostgreSQL, and the Linux / Unix command line to complete interactive tutorials and build projects.",
"These courses start off with basic Bash commands. Using the terminal, you will learn everything from navigating and manipulating a file system, scripting in Bash, all the way to advanced usage.",
"Next, you will learn how to create and work with relational databases using PostgreSQL, a database management system, and SQL, the language of these databases.",
"Finally, you will learn Git, the version control system, an essential tool of every developer."
],
"blocks": {
"learn-relational-databases": {
"title": "Aprenda bancos de dados relacionais",
"build-a-celestial-bodies-database-project": {
"title": "Celestial Bodies Database",
"intro": [
"Estes cursos começam com comandos básicos do Bash. Usando o terminal, você aprenderá tudo, de navegar e manipular um sistema de arquivos e fazer scripts no Bash, até usos mais avançados.",
"Depois, você aprenderá a criar e trabalhar com bancos de dados relacionados usando o PostgreSQL, um sistema de gerenciamento de banco de dados, e o SQL, a linguagem destes bancos de dados.",
"Por fim, você aprenderá o Git, um sistema de controle de versão, e o GitHub, um serviço de hospedagem e repositório de código - duas ferramentas essenciais para todo o desenvolvedor."
"This is one of the required projects to earn your certification.",
"For this project, you will build a database of celestial bodies using PostgreSQL."
]
},
"build-a-number-guessing-game-project": {
"title": "Number Guessing Game",
"intro": [
"This is one of the required projects to earn your certification.",
"For this project, you will use Bash scripting, PostgreSQL, and Git to create a number guessing game that runs in the terminal and saves user information."
]
},
"build-a-periodic-table-database-project": {
"title": "Periodic Table Database",
"intro": [
"This is one of the required projects to earn your certification.",
"For this project, you will create Bash a script to get information about chemical elements from a periodic table database."
]
},
"build-a-salon-appointment-scheduler-project": {
"title": "Salon Appointment Scheduler",
"intro": [
"This is one of the required projects to earn your certification.",
"For this project, you will create an interactive Bash program that uses PostgreSQL to track the customers and appointments for your salon."
]
},
"build-a-world-cup-database-project": {
"title": "World Cup Database",
"intro": [
"This is one of the required projects to earn your certification.",
"For this project, you will create a Bash script that enters information from World Cup games into PostgreSQL, then query the database for useful statistics."
]
},
"learn-advanced-bash-by-building-a-kitty-ipsum-translator": {
"title": "Learn Advanced Bash by Building a Kitty Ipsum Translator",
"intro": [
"There's more to Bash commands than you might think.",
"In this 140 lesson course, you will learn some more complex commands, and the details of how commands work."
]
},
"learn-bash-and-sql-by-building-a-bike-rental-shop": {
"title": "Learn Bash and SQL by Building a Bike Rental Shop",
"intro": [
"In this 210 lesson course, you will build an interactive Bash program that stores rental information for your bike rental shop using PostgreSQL."
]
},
"learn-bash-by-building-a-boilerplate": {
"title": "Learn Bash by Building a Boilerplate",
"intro": [
"The terminal allows you to send text commands to your computer that can manipulate the file system, run programs, automate tasks, and much more.",
"In this 170 lesson course, you will learn basic commands by creating a website boilerplate using only the command line."
]
},
"learn-bash-scripting-by-building-five-programs": {
"title": "Learn Bash Scripting by Building Five Programs",
"intro": [
"Bash scripts combine terminal commands and logic into programs that can execute or automate tasks, and much more.",
"In this 220 lesson course, you will learn more terminal commands and how to use them within Bash scripts by creating five small programs."
]
},
"learn-git-by-building-an-sql-reference-object": {
"title": "Learn Git by Building and SQL Reference Object",
"intro": [
"Git is a version control system that keep track of all the changes you make to your codebase",
"In this 240 lesson course, you will learn how Git keeps track of your code by creating an object containing commonly used SQL commands."
]
},
"learn-nano-by-building-a-castle": {
"title": "Learn Nano by Building a Castle",
"intro": [
"Nano is a program that allow you to edit files right in the terminal.",
"In this 40 lesson course, you will learn how to edit files in the terminal with Nano while building a castle."
]
},
"learn-relational-databases-by-building-a-mario-database": {
"title": "Learn Relational Databases by Building a Mario Database",
"intro": [
"Relational Databases organize data into tables that are linked together through relationships.",
"In this 165 lesson course, you will learn the basics of relational databases by creating a PostgreSQL database filled with video game characters."
]
},
"learn-sql-by-building-a-student-database-part-1": {
"title": "Learn SQL by Building a Student Database: Part 1",
"intro": [
"SQL, or Structured Query Language, is the language for communicating with Relational Databases.",
"In this 140 lesson course, you will create a Bash script that uses SQL to enter information about your computer science students into PostgreSQL."
]
},
"learn-sql-by-building-a-student-database-part-2": {
"title": "Learn SQL by Building a Student Database: Part 2",
"intro": [
"SQL Join commands are used to combine information from multiple tables in a Relational Database",
"In this 140 lesson course, you will complete your student database while diving deeper into SQL commands."
]
}
}

View File

@ -428,15 +428,107 @@
"relational-databases": {
"title": "Реляційна база даних",
"intro": [
"Для цих курсів ви будете використовувати реальні інструменти розробника та програмне забезпечення, включаючи VS-код, PostgreSQL, і командний рядок Linux / Unix для завершення інтерактивних уроків і створення проєктів."
"For these courses, you will use real developer tools and software including VS Code, PostgreSQL, and the Linux / Unix command line to complete interactive tutorials and build projects.",
"These courses start off with basic Bash commands. Using the terminal, you will learn everything from navigating and manipulating a file system, scripting in Bash, all the way to advanced usage.",
"Next, you will learn how to create and work with relational databases using PostgreSQL, a database management system, and SQL, the language of these databases.",
"Finally, you will learn Git, the version control system, an essential tool of every developer."
],
"blocks": {
"learn-relational-databases": {
"title": "Вивчення реляційної бази даних",
"build-a-celestial-bodies-database-project": {
"title": "Celestial Bodies Database",
"intro": [
"Ці курси починаються з основних Bash команд. За допомогою терміналу ви навчитеся усього необхідного (від навігації та маніпуляції файловою системою, написання скрипту в Bash до просунутого використання).",
"Далі ви навчитеся створювати та працювати з реляційними базами даних використовуючи PostgreSQL (систему керування базами даних) та SQL (мову цих баз даних).",
"Нарешті, ви вивчите Git (систему контролю версій) та GitHub (службу зберігання коду) — два найважливіші інструменти для кожного розробника."
"This is one of the required projects to earn your certification.",
"For this project, you will build a database of celestial bodies using PostgreSQL."
]
},
"build-a-number-guessing-game-project": {
"title": "Number Guessing Game",
"intro": [
"This is one of the required projects to earn your certification.",
"For this project, you will use Bash scripting, PostgreSQL, and Git to create a number guessing game that runs in the terminal and saves user information."
]
},
"build-a-periodic-table-database-project": {
"title": "Periodic Table Database",
"intro": [
"This is one of the required projects to earn your certification.",
"For this project, you will create Bash a script to get information about chemical elements from a periodic table database."
]
},
"build-a-salon-appointment-scheduler-project": {
"title": "Salon Appointment Scheduler",
"intro": [
"This is one of the required projects to earn your certification.",
"For this project, you will create an interactive Bash program that uses PostgreSQL to track the customers and appointments for your salon."
]
},
"build-a-world-cup-database-project": {
"title": "World Cup Database",
"intro": [
"This is one of the required projects to earn your certification.",
"For this project, you will create a Bash script that enters information from World Cup games into PostgreSQL, then query the database for useful statistics."
]
},
"learn-advanced-bash-by-building-a-kitty-ipsum-translator": {
"title": "Learn Advanced Bash by Building a Kitty Ipsum Translator",
"intro": [
"There's more to Bash commands than you might think.",
"In this 140 lesson course, you will learn some more complex commands, and the details of how commands work."
]
},
"learn-bash-and-sql-by-building-a-bike-rental-shop": {
"title": "Learn Bash and SQL by Building a Bike Rental Shop",
"intro": [
"In this 210 lesson course, you will build an interactive Bash program that stores rental information for your bike rental shop using PostgreSQL."
]
},
"learn-bash-by-building-a-boilerplate": {
"title": "Learn Bash by Building a Boilerplate",
"intro": [
"The terminal allows you to send text commands to your computer that can manipulate the file system, run programs, automate tasks, and much more.",
"In this 170 lesson course, you will learn basic commands by creating a website boilerplate using only the command line."
]
},
"learn-bash-scripting-by-building-five-programs": {
"title": "Learn Bash Scripting by Building Five Programs",
"intro": [
"Bash scripts combine terminal commands and logic into programs that can execute or automate tasks, and much more.",
"In this 220 lesson course, you will learn more terminal commands and how to use them within Bash scripts by creating five small programs."
]
},
"learn-git-by-building-an-sql-reference-object": {
"title": "Learn Git by Building and SQL Reference Object",
"intro": [
"Git is a version control system that keep track of all the changes you make to your codebase",
"In this 240 lesson course, you will learn how Git keeps track of your code by creating an object containing commonly used SQL commands."
]
},
"learn-nano-by-building-a-castle": {
"title": "Learn Nano by Building a Castle",
"intro": [
"Nano is a program that allow you to edit files right in the terminal.",
"In this 40 lesson course, you will learn how to edit files in the terminal with Nano while building a castle."
]
},
"learn-relational-databases-by-building-a-mario-database": {
"title": "Learn Relational Databases by Building a Mario Database",
"intro": [
"Relational Databases organize data into tables that are linked together through relationships.",
"In this 165 lesson course, you will learn the basics of relational databases by creating a PostgreSQL database filled with video game characters."
]
},
"learn-sql-by-building-a-student-database-part-1": {
"title": "Learn SQL by Building a Student Database: Part 1",
"intro": [
"SQL, or Structured Query Language, is the language for communicating with Relational Databases.",
"In this 140 lesson course, you will create a Bash script that uses SQL to enter information about your computer science students into PostgreSQL."
]
},
"learn-sql-by-building-a-student-database-part-2": {
"title": "Learn SQL by Building a Student Database: Part 2",
"intro": [
"SQL Join commands are used to combine information from multiple tables in a Relational Database",
"In this 140 lesson course, you will complete your student database while diving deeper into SQL commands."
]
}
}

View File

@ -5,6 +5,7 @@ export enum FlashMessages {
CertClaimSuccess = 'flash.cert-claim-success',
CertificateMissing = 'flash.certificate-missing',
CertsPrivate = 'flash.certs-private',
CompleteProjectFirst = 'flash.complete-project-first',
CreateTokenErr = 'flash.create-token-err',
DeleteTokenErr = 'flash.delete-token-err',
EmailValid = 'flash.email-valid',

View File

@ -17,7 +17,7 @@ import './webhook-token.css';
type WebhookTokenProps = {
deleteWebhookToken: () => void;
isSuperBlockPage?: boolean;
isChallengePage?: boolean;
postWebhookToken: () => void;
t: TFunction;
webhookToken: string | null;
@ -69,9 +69,9 @@ class WebhookToken extends Component<WebhookTokenProps, WebhookTokenState> {
};
render() {
const { isSuperBlockPage = false, t, webhookToken = null } = this.props;
const { isChallengePage = false, t, webhookToken = null } = this.props;
return isSuperBlockPage ? (
return isChallengePage ? (
<>
{!webhookToken && (
<div className='alert alert-info'>

View File

@ -186,6 +186,8 @@ export const updateCurrentChallengeId = createAction(
export const completedChallengesSelector = state =>
userSelector(state).completedChallenges || [];
export const partiallyCompletedChallengesSelector = state =>
userSelector(state).partiallyCompletedChallenges || [];
export const completionCountSelector = state => state[MainApp].completionCount;
export const currentChallengeIdSelector = state =>
state[MainApp].currentChallengeId;

View File

@ -0,0 +1,15 @@
.ca-description {
font-family: 'Lato', sans-serif;
}
.ca-btn-padding {
padding: 0 15px;
}
.ca-btn-padding button {
font-size: 1.1rem;
}
.ca-btn-margin {
margin-bottom: 5px;
}

View File

@ -1,24 +1,68 @@
/* eslint-disable max-len */
// Package Utilities
import { Grid, Col, Row, Button } from '@freecodecamp/react-bootstrap';
import { graphql } from 'gatsby';
import React, { Component } from 'react';
import Helmet from 'react-helmet';
import { TFunction, Trans, withTranslation } from 'react-i18next';
import { connect } from 'react-redux';
import { bindActionCreators } from 'redux';
import type { Dispatch } from 'redux';
import { createSelector } from 'reselect';
// Local Utilities
import Spacer from '../../../components/helpers/spacer';
import LearnLayout from '../../../components/layouts/learn';
import { webhookTokenSelector } from '../../../redux';
import { ChallengeNode, ChallengeMeta } from '../../../redux/prop-types';
import { updateChallengeMeta, challengeMounted } from '../redux';
// Redux
import ChallengeTitle from '../components/challenge-title';
import PrismFormatted from '../components/prism-formatted';
import { challengeTypes } from '../../../../utils/challenge-types';
import CompletionModal from '../components/completion-modal';
import GreenPass from '../../../assets/icons/green-pass';
import HelpModal from '../components/help-modal';
import Hotkeys from '../components/Hotkeys';
import {
completedChallengesSelector,
isSignedInSelector,
partiallyCompletedChallengesSelector,
webhookTokenSelector
} from '../../../redux';
import {
challengeMounted,
isChallengeCompletedSelector,
updateChallengeMeta,
openModal,
updateSolutionFormValues
} from '../redux';
import { createFlashMessage } from '../../../components/Flash/redux';
import {
ChallengeNode,
ChallengeMeta,
CompletedChallenge
} from '../../../redux/prop-types';
import ProjectToolPanel from '../projects/tool-panel';
import SolutionForm from '../projects/solution-form';
import WebhookToken from '../../../components/settings/webhook-token';
import { FlashMessages } from '../../../components/Flash/redux/flash-messages';
import './codeally.css';
// Redux
const mapStateToProps = createSelector(
completedChallengesSelector,
isChallengeCompletedSelector,
isSignedInSelector,
partiallyCompletedChallengesSelector,
webhookTokenSelector,
(webhookToken: string | null) => ({
(
completedChallenges: CompletedChallenge[],
isChallengeCompleted: boolean,
isSignedIn: boolean,
partiallyCompletedChallenges: CompletedChallenge[],
webhookToken: string | null
) => ({
completedChallenges,
isChallengeCompleted,
isSignedIn,
partiallyCompletedChallenges,
webhookToken
})
);
@ -26,28 +70,53 @@ const mapStateToProps = createSelector(
const mapDispatchToProps = (dispatch: Dispatch) =>
bindActionCreators(
{
challengeMounted,
createFlashMessage,
openCompletionModal: () => openModal('completion'),
updateChallengeMeta,
challengeMounted
updateSolutionFormValues
},
dispatch
);
// Types
interface ShowCodeAllyProps {
challengeMounted: (arg0: string) => void;
completedChallenges: CompletedChallenge[];
createFlashMessage: typeof createFlashMessage;
data: { challengeNode: ChallengeNode };
isChallengeCompleted: boolean;
isSignedIn: boolean;
openCompletionModal: () => void;
pageContext: {
challengeMeta: ChallengeMeta;
};
partiallyCompletedChallenges: CompletedChallenge[];
t: TFunction;
updateChallengeMeta: (arg0: ChallengeMeta) => void;
updateSolutionFormValues: () => void;
webhookToken: string | null;
}
interface ShowCodeAllyState {
showIframe: boolean;
}
// Component
class ShowCodeAlly extends Component<ShowCodeAllyProps> {
class ShowCodeAlly extends Component<ShowCodeAllyProps, ShowCodeAllyState> {
static displayName: string;
private _container: HTMLElement | null = null;
constructor(props: ShowCodeAllyProps) {
super(props);
this.state = {
showIframe: false
};
}
componentDidMount(): void {
const {
updateChallengeMeta,
challengeMounted,
data: {
challengeNode: {
challenge: { challengeType, title }
@ -56,27 +125,96 @@ class ShowCodeAlly extends Component<ShowCodeAllyProps> {
pageContext: { challengeMeta }
} = this.props;
updateChallengeMeta({ ...challengeMeta, title, challengeType });
challengeMounted(challengeMeta.id);
this._container?.focus();
}
showIframe = () => {
this.setState({
showIframe: true
});
};
handleSubmit = ({
showCompletionModal
}: {
showCompletionModal: boolean;
}) => {
const {
completedChallenges,
createFlashMessage,
data: {
challengeNode: {
challenge: { id: challengeId }
}
},
partiallyCompletedChallenges
} = this.props;
const isPartiallyCompleted = partiallyCompletedChallenges.some(
challenge => challenge.id === challengeId
);
const isCompleted = completedChallenges.some(
challenge => challenge.id === challengeId
);
if (!isPartiallyCompleted && !isCompleted) {
createFlashMessage({
type: 'danger',
message: FlashMessages.CompleteProjectFirst
});
} else if (showCompletionModal) {
this.props.openCompletionModal();
}
};
render() {
const {
completedChallenges,
data: {
challengeNode: {
challenge: {
title,
block,
certification,
challengeType,
description,
fields: { blockName },
id: challengeId,
instructions,
notes,
superBlock,
title,
translationPending,
url
}
}
},
isChallengeCompleted,
isSignedIn,
pageContext: {
challengeMeta: { nextChallengePath, prevChallengePath }
},
partiallyCompletedChallenges,
t,
updateSolutionFormValues,
webhookToken = null
} = this.props;
const { showIframe } = this.state;
const envVariables = webhookToken
? `&envVariables=CODEROAD_WEBHOOK_TOKEN=${webhookToken}`
: '';
return (
const isPartiallyCompleted = partiallyCompletedChallenges.some(
challenge => challenge.id === challengeId
);
const isCompleted = completedChallenges.some(
challenge => challenge.id === challengeId
);
return showIframe ? (
<LearnLayout>
<Helmet title={`${blockName}: ${title} | freeCodeCamp.org`} />
<iframe
@ -87,25 +225,162 @@ class ShowCodeAlly extends Component<ShowCodeAllyProps> {
title='Editor'
/>
</LearnLayout>
) : (
<Hotkeys
innerRef={(c: HTMLElement | null) => (this._container = c)}
nextChallengePath={nextChallengePath}
prevChallengePath={prevChallengePath}
>
<LearnLayout>
<Helmet title={`${blockName}: ${title} | freeCodeCamp.org`} />
<Grid>
<Row>
<Col md={8} mdOffset={2} sm={10} smOffset={1} xs={12}>
<Spacer />
<ChallengeTitle
block={block}
isCompleted={isChallengeCompleted}
superBlock={superBlock}
translationPending={translationPending}
>
{title}
</ChallengeTitle>
<Spacer />
{isSignedIn && <WebhookToken isChallengePage={true} />}
<PrismFormatted text={description} />
<Spacer />
<div className='ca-description'>
<Trans i18nKey='learn.github-required'>
<a
href='https://github.com'
rel='noopener noreferrer'
target='_blank'
title={t('learn.github-link')}
>
placeholder
</a>
</Trans>
</div>
<Spacer />
{isSignedIn && challengeType === challengeTypes.codeAllyCert && (
<>
<div className='ca-description'>
{t('learn.complete-both-steps')}
</div>
<hr />
<Spacer />
<b>{t('learn.step-1')}</b>
{(isPartiallyCompleted || isCompleted) && (
<GreenPass
style={{
height: '15px',
width: '15px',
marginLeft: '7px'
}}
/>
)}
<Spacer />
<div className='ca-description'>
{t('learn.runs-in-vm')}
</div>
<Spacer />
<PrismFormatted text={instructions} />
<Spacer />
</>
)}
<div
className={`ca-btn-padding ${
!isSignedIn ||
challengeType === challengeTypes.codeAllyPractice
? 'ca-btn-margin'
: ''
}`}
>
<Button
block={true}
bsStyle='primary'
onClick={this.showIframe}
>
{challengeType === challengeTypes.codeAllyCert
? t('buttons.click-start-project')
: t('buttons.click-start-course')}
</Button>
</div>
{isSignedIn && challengeType === challengeTypes.codeAllyCert && (
<>
<hr />
<Spacer />
<b>{t('learn.step-2')}</b>
{isCompleted && (
<GreenPass
style={{
height: '15px',
width: '15px',
marginLeft: '7px'
}}
/>
)}
<Spacer />
<div className='ca-description'>
{t('learn.submit-public-url')}
</div>
<Spacer />
<PrismFormatted text={notes} />
<Spacer />
<SolutionForm
challengeType={challengeType}
description={description}
onSubmit={this.handleSubmit}
updateSolutionForm={updateSolutionFormValues}
/>
</>
)}
<ProjectToolPanel />
<br />
<Spacer />
</Col>
<CompletionModal
block={block}
blockName={blockName}
certification={certification}
superBlock={superBlock}
/>
<HelpModal />
</Row>
</Grid>
</LearnLayout>
</Hotkeys>
);
}
}
ShowCodeAlly.displayName = 'ShowCodeAlly';
export default connect(mapStateToProps, mapDispatchToProps)(ShowCodeAlly);
export default connect(
mapStateToProps,
mapDispatchToProps
)(withTranslation()(ShowCodeAlly));
// GraphQL
export const query = graphql`
query CodeAllyChallenge($slug: String!) {
challengeNode(challenge: { fields: { slug: { eq: $slug } } }) {
challenge {
title
block
certification
challengeType
url
description
fields {
blockName
}
helpCategory
id
instructions
notes
superBlock
title
translationPending
url
}
}
}

View File

@ -10,9 +10,12 @@
#description p,
#instructions p,
#notes p,
#description ul,
#instructions ul,
#notes ul,
#description ol,
#instructions ol {
#instructions ol,
#notes ol {
font-family: 'Lato', sans-serif;
}

View File

@ -125,7 +125,9 @@ export class Block extends Component<BlockProps> {
const isOtherProject =
challenge.challengeType === 3 ||
challenge.challengeType === 4 ||
challenge.challengeType === 10;
challenge.challengeType === 10 ||
challenge.challengeType === 12 ||
challenge.challengeType === 13;
const isTakeHomeProject = blockDashedName === 'take-home-projects';

View File

@ -15,7 +15,6 @@ import DonateModal from '../../components/Donation/donation-modal';
import Login from '../../components/Header/components/Login';
import Map from '../../components/Map';
import { Spacer } from '../../components/helpers';
import WebhookToken from '../../components/settings/webhook-token';
import {
currentChallengeIdSelector,
userFetchStateSelector,
@ -199,9 +198,6 @@ const SuperBlockIntroductionPage = (props: SuperBlockProp) => {
<Spacer size={2} />
<LegacyLinks superBlock={superBlock} />
<SuperBlockIntro superBlock={superBlock} />
{superBlock === SuperBlocks.RelationalDb && isSignedIn && (
<WebhookToken isSuperBlockPage={true} />
)}
<Spacer size={2} />
<h2 className='text-center big-subheading'>
{t(`intro:misc-text.courses`)}

View File

@ -20,6 +20,7 @@ const toneUrls = {
'https://campfire-mode.freecodecamp.org/cert.mp3',
[FlashMessages.CertificateMissing]: TRY_AGAIN,
[FlashMessages.CertsPrivate]: TRY_AGAIN,
[FlashMessages.CompleteProjectFirst]: TRY_AGAIN,
[FlashMessages.CreateTokenErr]: TRY_AGAIN,
[FlashMessages.DeleteTokenErr]: TRY_AGAIN,
[FlashMessages.EmailValid]: CHAL_COMP,

View File

@ -11,7 +11,8 @@ const quiz = 8;
const invalid = 9;
const pythonProject = 10;
const video = 11;
const codeally = 12;
const codeAllyPractice = 12;
const codeAllyCert = 13;
const multiFileCertProject = 14;
// individual exports
@ -34,7 +35,8 @@ exports.challengeTypes = {
quiz,
invalid,
video,
codeally,
codeAllyPractice,
codeAllyCert,
multiFileCertProject
};
@ -69,7 +71,8 @@ exports.viewTypes = {
[quiz]: 'quiz',
[backend]: 'backend',
[video]: 'video',
[codeally]: 'codeally',
[codeAllyPractice]: 'codeAlly',
[codeAllyCert]: 'codeAlly',
[multiFileCertProject]: 'classic'
};
@ -91,6 +94,7 @@ exports.submitTypes = {
[backend]: 'backend',
[modern]: 'tests',
[video]: 'tests',
[codeAllyCert]: 'project.frontEnd',
[multiFileCertProject]: 'tests'
};

View File

@ -15,7 +15,7 @@ const frontend = path.resolve(
__dirname,
'../../src/templates/Challenges/projects/frontend/Show.tsx'
);
const codeally = path.resolve(
const codeAlly = path.resolve(
__dirname,
'../../src/templates/Challenges/codeally/show.tsx'
);
@ -38,7 +38,7 @@ const views = {
modern: classic,
frontend,
video,
codeally
codeAlly
// quiz: Quiz
};

View File

@ -63,21 +63,20 @@
"functional-programming-spreadsheet": "JavaScript",
"intermediate-javascript-calorie-counter": "JavaScript",
"d3-dashboard": "JavaScript",
"learn-bash-by-building-a-boilerplate": "Relational Databases",
"learn-relational-databases-by-building-a-mario-database": "Relational Databases",
"celestial-bodies-database": "Relational Databases",
"learn-bash-scripting-by-building-five-programs": "Relational Databases",
"learn-bash-and-sql-by-building-a-bike-rental-shop": "Relational Databases",
"salon-appointment-scheduler": "Relational Databases",
"learn-sql-by-building-a-student-database-part-1": "Relational Databases",
"learn-sql-by-building-a-student-database-part-2": "Relational Databases",
"learn-advanced-bash-by-building-a-kitty-ipsum-translator": "Relational Databases",
"world-cup-database": "Relational Databases",
"learn-nano-by-building-a-castle": "Relational Databases",
"learn-git-by-building-an-sql-reference-object": "Relational Databases",
"periodic-table-database": "Relational Databases",
"learn-github-by-building-a-list-of-inspirational-quotes": "Relational Databases",
"number-guessing-game": "Relational Databases",
"learn-bash-by-building-a-boilerplate": "Backend Development",
"learn-relational-databases-by-building-a-mario-database": "Backend Development",
"celestial-bodies-database": "Backend Development",
"learn-bash-scripting-by-building-five-programs": "Backend Development",
"learn-bash-and-sql-by-building-a-bike-rental-shop": "Backend Development",
"salon-appointment-scheduler": "Backend Development",
"learn-sql-by-building-a-student-database-part-1": "Backend Development",
"learn-sql-by-building-a-student-database-part-2": "Backend Development",
"learn-advanced-bash-by-building-a-kitty-ipsum-translator": "Backend Development",
"world-cup-database": "Backend Development",
"learn-nano-by-building-a-castle": "Backend Development",
"learn-git-by-building-an-sql-reference-object": "Backend Development",
"periodic-table-database": "Backend Development",
"number-guessing-game": "Backend Development",
"learn-accessibility-by-building-a-quiz": "HTML-CSS",
"learn-css-colors-by-building-a-set-of-colored-markers": "HTML-CSS",
"learn-html-forms-by-building-a-registration-form": "HTML-CSS",

View File

@ -0,0 +1,14 @@
{
"name": "Build a Celestial Bodies Database Project",
"isUpcomingChange": true,
"order": 2,
"time": "30 hours",
"template": "",
"required": [],
"superBlock": "relational-databases",
"challengeOrder": [
[
"5f1a4ef5d5d6b5ab580fc6ae",
"Build a Celestial Bodies Database"
]
]}

View File

@ -0,0 +1,14 @@
{
"name": "Build a Number Guessing Game Project",
"isUpcomingChange": true,
"order": 13,
"time": "30 hours",
"template": "",
"required": [],
"superBlock": "relational-databases",
"challengeOrder": [
[
"602da04c22201c65d2a019f4",
"Build a Number Guessing Game"
]
]}

View File

@ -0,0 +1,14 @@
{
"name": "Build a Periodic Table Database Project",
"isUpcomingChange": true,
"order": 12,
"time": "30 hours",
"template": "",
"required": [],
"superBlock": "relational-databases",
"challengeOrder": [
[
"602d9ff222201c65d2a019f2",
"Build a Periodic Table Database"
]
]}

View File

@ -0,0 +1,14 @@
{
"name": "Build a Salon Appointment Scheduler Project",
"isUpcomingChange": true,
"order": 9,
"time": "30 hours",
"template": "",
"required": [],
"superBlock": "relational-databases",
"challengeOrder": [
[
"5f87ac112ae598023a42df1a",
"Build a Salon Appointment Scheduler"
]
]}

View File

@ -0,0 +1,14 @@
{
"name": "Build a World Cup Database Project",
"isUpcomingChange": true,
"order": 6,
"time": "30 hours",
"template": "",
"required": [],
"superBlock": "relational-databases",
"challengeOrder": [
[
"5f9771307d4d22b9d2b75a94",
"Build a World Cup Database"
]
]}

View File

@ -0,0 +1,14 @@
{
"name": "Learn Advanced Bash by Building a Kitty Ipsum Translator",
"isUpcomingChange": true,
"order": 7,
"time": "5 hours",
"template": "",
"required": [],
"superBlock": "relational-databases",
"challengeOrder": [
[
"602da0de22201c65d2a019f6",
"Build a Kitty Ipsum Translator"
]
]}

View File

@ -0,0 +1,14 @@
{
"name": "Learn Bash and SQL by Building a Bike Rental Shop",
"isUpcomingChange": true,
"order": 8,
"time": "5 hours",
"template": "",
"required": [],
"superBlock": "relational-databases",
"challengeOrder": [
[
"5f5b969a05380d2179fe6e18",
"Build a Bike Rental Shop"
]
]}

View File

@ -0,0 +1,14 @@
{
"name": "Learn Bash by Building a Boilerplate",
"isUpcomingChange": true,
"order": 0,
"time": "5 hours",
"template": "",
"required": [],
"superBlock": "relational-databases",
"challengeOrder": [
[
"5ea8adfab628f68d805bfc5e",
"Build a Boilerplate"
]
]}

View File

@ -0,0 +1,14 @@
{
"name": "Learn Bash Scripting by Building Five Programs",
"isUpcomingChange": true,
"order": 3,
"time": "5 hours",
"template": "",
"required": [],
"superBlock": "relational-databases",
"challengeOrder": [
[
"5f5904ac738bc2fa9efecf5a",
"Build Five Programs"
]
]}

View File

@ -0,0 +1,14 @@
{
"name": "Learn Git by Building an SQL Reference Object",
"isUpcomingChange": true,
"order": 11,
"time": "5 hours",
"template": "",
"required": [],
"superBlock": "relational-databases",
"challengeOrder": [
[
"5fa323cdaf6a73463d590659",
"Build an SQL Reference Object"
]
]}

View File

@ -0,0 +1,14 @@
{
"name": "Learn Nano by Building a Castle",
"isUpcomingChange": true,
"order": 10,
"time": "5 hours",
"template": "",
"required": [],
"superBlock": "relational-databases",
"challengeOrder": [
[
"5f32db63eb37f7e17323f459",
"Build a Castle"
]
]}

View File

@ -0,0 +1,14 @@
{
"name": "Learn Relational Databases by Building a Mario Database",
"isUpcomingChange": true,
"order": 1,
"time": "5 hours",
"template": "",
"required": [],
"superBlock": "relational-databases",
"challengeOrder": [
[
"5f2c289f164c29556da632fd",
"Build a Mario Database"
]
]}

View File

@ -1,74 +0,0 @@
{
"name": "Learn Relational Databases",
"isUpcomingChange": true,
"dashedName": "learn-relational-databases",
"order": 0,
"time": "",
"template": "",
"required": [],
"superBlock": "relational-databases",
"challengeOrder": [
[
"5ea8adfab628f68d805bfc5e",
"Learn Bash by Building a Boilerplate"
],
[
"5f2c289f164c29556da632fd",
"Learn Relational Databases by Building a Mario Database"
],
[
"5f1a4ef5d5d6b5ab580fc6ae",
"Celestial Bodies Database"
],
[
"5f5904ac738bc2fa9efecf5a",
"Learn Bash Scripting by Building Five Programs"
],
[
"602da0c222201c65d2a019f5",
"Learn SQL by Building a Student Database: Part 1"
],
[
"618590adb0730ca724e37672",
"Learn SQL by Building a Student Database: Part 2"
],
[
"5f9771307d4d22b9d2b75a94",
"World Cup Database"
],
[
"602da0de22201c65d2a019f6",
"Learn Advanced Bash by Building a Kitty Ipsum Translator"
],
[
"5f5b969a05380d2179fe6e18",
"Learn Bash and SQL by Building a Bike Rental Shop"
],
[
"5f87ac112ae598023a42df1a",
"Salon Appointment Scheduler"
],
[
"5f32db63eb37f7e17323f459",
"Learn Nano by Building a Castle"
],
[
"5fa323cdaf6a73463d590659",
"Learn Git by Building an SQL Reference Object"
],
[
"602d9ff222201c65d2a019f2",
"Periodic Table Database"
],
[
"602da04222201c65d2a019f3",
"Learn GitHub by Building a List of Inspirational Quotes"
],
[
"602da04c22201c65d2a019f4",
"Number Guessing Game"
]
],
"helpRoom": "HelpBackend",
"fileName": "13-relational-databases/learn-relational-databases.json"
}

View File

@ -0,0 +1,14 @@
{
"name": "Learn SQL by Building a Student Database: Part 1",
"isUpcomingChange": true,
"order": 4,
"time": "5 hours",
"template": "",
"required": [],
"superBlock": "relational-databases",
"challengeOrder": [
[
"602da0c222201c65d2a019f5",
"Build a Student Database: Part 1"
]
]}

View File

@ -0,0 +1,14 @@
{
"name": "Learn SQL by Building a Student Database: Part 2",
"isUpcomingChange": true,
"order": 5,
"time": "5 hours",
"template": "",
"required": [],
"superBlock": "relational-databases",
"challengeOrder": [
[
"618590adb0730ca724e37672",
"Build a Student Database: Part 2"
]
]}

View File

@ -0,0 +1,26 @@
---
id: 5f1a4ef5d5d6b5ab580fc6ae
title: Build a Celestial Bodies Database
challengeType: 13
helpCategory: Backend Development
url: https://github.com/freeCodeCamp/learn-celestial-bodies-database
dashedName: build-a-celestial-bodies-database
---
# --description--
This is one of the required projects to earn your certification. For this project, you will build a database of celestial bodies using PostgreSQL.
# --instructions--
**Important:** After you pass all the project tests, save a dump of your database into a `universe.sql` file so you can complete step 2. There will be instructions how to do that within the virtual machine.
# --notes--
Required files: `universe.sql`
# --hints--
# --seed--
# --solutions--

View File

@ -0,0 +1,26 @@
---
id: 602da04c22201c65d2a019f4
title: Build a Number Guessing Game
challengeType: 13
helpCategory: Backend Development
url: https://github.com/freeCodeCamp/learn-number-guessing-game
dashedName: build-a-number-guessing-game
---
# --description--
This is one of the required projects to earn your certification. For this project, you will use Bash scripting, PostgreSQL, and Git to create a number guessing game that runs in the terminal and saves user information.
# --instructions--
**Important:** After you pass all the project tests, save a dump of your database into a `number_guessers.sql` file, as well as your whole `number_guessing_game` folder, so you can complete step 2. There will be instructions how to do that within the virtual machine.
# --notes--
Required files: `number_guessers.sql`, and the whole `number_guessing_game` folder
# --hints--
# --seed--
# --solutions--

View File

@ -0,0 +1,26 @@
---
id: 602d9ff222201c65d2a019f2
title: Build a Periodic Table Database
challengeType: 13
helpCategory: Backend Development
url: https://github.com/freeCodeCamp/learn-periodic-table-database
dashedName: build-a-periodic-table-database
---
# --description--
This is one of the required projects to earn your certification. For this project, you will create Bash a script to get information about chemical elements from a periodic table database.
# --instructions--
**Important:** After you pass all the project tests, save a dump of your database into a `elements.sql` file, as well as your whole `periodic_table` folder, so you can complete step 2. There will be instructions how to do that within the virtual machine.
# --notes--
Required files: `elements.sql`, and the whole `periodic_table` folder
# --hints--
# --seed--
# --solutions--

View File

@ -0,0 +1,26 @@
---
id: 5f87ac112ae598023a42df1a
title: Build a Salon Appointment Scheduler
challengeType: 13
helpCategory: Backend Development
url: https://github.com/freeCodeCamp/learn-salon-appointment-scheduler
dashedName: build-a-salon-appointment-scheduler
---
# --description--
This is one of the required projects to earn your certification. For this project, you will create an interactive Bash program that uses PostgreSQL to track the customers and appointments for your salon.
# --instructions--
**Important:** After you pass all the project tests, save a dump of your database into a `salon.sql` file, as well as your `salon.sh` file, so you can complete step 2. There will be instructions how to do that within the virtual machine.
# --notes--
Required files: `salon.sql`, `salon.sh`
# --hints--
# --seed--
# --solutions--

View File

@ -0,0 +1,26 @@
---
id: 5f9771307d4d22b9d2b75a94
title: Build a World Cup Database
challengeType: 13
helpCategory: Backend Development
url: https://github.com/freeCodeCamp/learn-world-cup-database
dashedName: build-a-world-cup-database
---
# --description--
This is one of the required projects to earn your certification. For this project, you will create a Bash script that enters information from World Cup games into PostgreSQL, then query the database for useful statistics.
# --instructions--
**Important:** After you pass all the project tests, save a dump of your database into a `worldcup.sql` file, as well as your `insert_data.sh` and `queries.sh` files, so you can complete step 2. There will be instructions how to do that within the virtual machine.
# --notes--
Required files: `worldcup.sql`, `insert_data.sh`, `queries.sh`
# --hints--
# --seed--
# --solutions--

View File

@ -1,14 +1,16 @@
---
id: 602da0de22201c65d2a019f6
title: Impara Bash avanzato costruendo un traduttore Kitty Ipsum
title: Build a Kitty Ipsum Translator
challengeType: 12
helpCategory: Relational Databases
helpCategory: Backend Development
url: https://github.com/freeCodeCamp/learn-advanced-bash-by-building-a-kitty-ipsum-translator
dashedName: learn-advanced-bash-by-building-a-kitty-ipsum-translator
dashedName: build-a-kitty-ipsum-translator
---
# --description--
In this 140 lesson course, you will learn some more complex commands, and the details of how commands work.
# --instructions--
# --hints--

View File

@ -0,0 +1,20 @@
---
id: 5f5b969a05380d2179fe6e18
title: Build a Bike Rental Shop
challengeType: 12
helpCategory: Backend Development
url: https://github.com/freeCodeCamp/learn-bash-and-sql-by-building-a-bike-rental-shop
dashedName: build-a-bike-rental-shop
---
# --description--
In this 210 lesson course, you will build an interactive Bash program that stores rental information for your bike rental shop using PostgreSQL.
# --instructions--
# --hints--
# --seed--
# --solutions--

View File

@ -0,0 +1,20 @@
---
id: 5ea8adfab628f68d805bfc5e
title: Build a Boilerplate
challengeType: 12
helpCategory: Backend Development
url: https://github.com/freeCodeCamp/learn-bash-by-building-a-boilerplate
dashedName: build-a-boilerplate
---
# --description--
In this 170 lesson course, you will learn basic commands by creating a website boilerplate using only the command line.
# --instructions--
# --hints--
# --seed--
# --solutions--

View File

@ -0,0 +1,20 @@
---
id: 5f5904ac738bc2fa9efecf5a
title: Build Five Programs
challengeType: 12
helpCategory: Backend Development
url: https://github.com/freeCodeCamp/learn-bash-scripting-by-building-five-programs
dashedName: build-five-programs
---
# --description--
In this 220 lesson course, you will learn more terminal commands and how to use them within Bash scripts by creating five small programs.
# --instructions--
# --hints--
# --seed--
# --solutions--

View File

@ -0,0 +1,20 @@
---
id: 5fa323cdaf6a73463d590659
title: Build an SQL Reference Object
challengeType: 12
helpCategory: Backend Development
url: https://github.com/freeCodeCamp/learn-git-by-building-an-sql-reference-object
dashedName: build-an-sql-reference-object
---
# --description--
In this 240 lesson course, you will learn how Git keeps track of your code by creating an object containing commonly used SQL commands.
# --instructions--
# --hints--
# --seed--
# --solutions--

View File

@ -1,14 +1,16 @@
---
id: 5f32db63eb37f7e17323f459
title: 通過構建城堡來學習 Nano
title: Build a Castle
challengeType: 12
helpCategory: Relational Databases
helpCategory: Backend Development
url: https://github.com/freeCodeCamp/learn-nano-by-building-a-castle
dashedName: learn-nano-by-building-a-castle
dashedName: build-a-castle
---
# --description--
In this 40 lesson course, you will learn how to edit files in the terminal with Nano while building a castle.
# --instructions--
# --hints--

View File

@ -0,0 +1,20 @@
---
id: 5f2c289f164c29556da632fd
title: Build a Mario Database
challengeType: 12
helpCategory: Backend Development
url: https://github.com/freeCodeCamp/learn-relational-databases-by-building-a-mario-database
dashedName: build-a-mario-database
---
# --description--
In this 165 lesson course, you will learn the basics of relational databases by creating a PostgreSQL database filled with video game characters.
# --instructions--
# --hints--
# --seed--
# --solutions--

View File

@ -1,18 +0,0 @@
---
id: 5f1a4ef5d5d6b5ab580fc6ae
title: 天體數據庫
challengeType: 12
helpCategory: Relational Databases
url: https://github.com/freeCodeCamp/learn-celestial-bodies-database
dashedName: celestial-bodies-database
---
# --description--
# --instructions--
# --hints--
# --seed--
# --solutions--

View File

@ -1,17 +0,0 @@
---
id: 5f5b969a05380d2179fe6e18
title: 通過構建自行車租賃店來學習 Bash 和 SQL
challengeType: 12
helpCategory: Relational Databases
url: https://github.com/freeCodeCamp/learn-bash-and-sql-by-building-a-bike-rental-shop
dashedName: learn-bash-and-sql-by-building-a-bike-rental-shop
---
# --instructions--
# --hints--
# --seed--
# --solutions--

View File

@ -1,18 +0,0 @@
---
id: 5ea8adfab628f68d805bfc5e
title: 通過構建模版學習 Bash
challengeType: 12
helpCategory: Relational Databases
url: https://github.com/freeCodeCamp/learn-bash-by-building-a-boilerplate
dashedName: learn-bash-by-building-a-boilerplate
---
# --description--
# --instructions--
# --hints--
# --seed--
# --solutions--

View File

@ -1,18 +0,0 @@
---
id: 5f5904ac738bc2fa9efecf5a
title: 通過構建五個程序學習 Bash 腳本
challengeType: 12
helpCategory: Relational Databases
url: https://github.com/freeCodeCamp/learn-bash-scripting-by-building-five-programs
dashedName: learn-bash-scripting-by-building-five-programs
---
# --description--
# --instructions--
# --hints--
# --seed--
# --solutions--

View File

@ -1,18 +0,0 @@
---
id: 5fa323cdaf6a73463d590659
title: 通過構建 SQL 引用對象來學習 Git
challengeType: 12
helpCategory: Relational Databases
url: https://github.com/freeCodeCamp/learn-git-by-building-an-sql-reference-object
dashedName: learn-git-by-building-an-sql-reference-object
---
# --description--
# --instructions--
# --hints--
# --seed--
# --solutions--

View File

@ -1,18 +0,0 @@
---
id: 602da04222201c65d2a019f3
title: 通過建立勵志名言列表來學習 GitHub
challengeType: 12
helpCategory: Relational Databases
url: https://github.com/moT01/learn-github-by-building-a-list-of-inspirational-quotes
dashedName: learn-github-by-building-a-list-of-inspirational-quotes
---
# --description--
# --instructions--
# --hints--
# --seed--
# --solutions--

View File

@ -1,18 +0,0 @@
---
id: 5f2c289f164c29556da632fd
title: 通過構建 Mario 數據庫來學習關係型數據庫
challengeType: 12
helpCategory: Relational Databases
url: https://github.com/freeCodeCamp/learn-relational-databases-by-building-a-mario-database
dashedName: learn-relational-databases-by-building-a-mario-database
---
# --description--
# --instructions--
# --hints--
# --seed--
# --solutions--

View File

@ -1,18 +0,0 @@
---
id: 602da0c222201c65d2a019f5
title: "Learn SQL by Building a Student Database: Part 1"
challengeType: 12
helpCategory: Relational Databases
url: https://github.com/freeCodeCamp/learn-sql-by-building-a-student-database-part-1
dashedName: learn-sql-by-building-a-student-database-part-1
---
# --description--
# --instructions--
# --hints--
# --seed--
# --solutions--

View File

@ -1,18 +0,0 @@
---
id: 618590adb0730ca724e37672
title: "Learn SQL by Building a Student Database: Part 2"
challengeType: 12
helpCategory: Relational Databases
url: https://github.com/freeCodeCamp/learn-sql-by-building-a-student-database-part-2
dashedName: learn-sql-by-building-a-student-database-part-2
---
# --description--
# --instructions--
# --hints--
# --seed--
# --solutions--

View File

@ -1,18 +0,0 @@
---
id: 602da04c22201c65d2a019f4
title: 猜數字遊戲
challengeType: 12
helpCategory: Relational Databases
url: https://github.com/freeCodeCamp/learn-number-guessing-game
dashedName: number-guessing-game
---
# --description--
# --instructions--
# --hints--
# --seed--
# --solutions--

View File

@ -1,18 +0,0 @@
---
id: 602d9ff222201c65d2a019f2
title: 元素週期表數據庫
challengeType: 12
helpCategory: Relational Databases
url: https://github.com/freeCodeCamp/learn-periodic-table-database
dashedName: periodic-table-database
---
# --description--
# --instructions--
# --hints--
# --seed--
# --solutions--

View File

@ -1,18 +0,0 @@
---
id: 5f87ac112ae598023a42df1a
title: 沙龍日程安排程序
challengeType: 12
helpCategory: Relational Databases
url: https://github.com/freeCodeCamp/learn-salon-appointment-scheduler
dashedName: salon-appointment-scheduler
---
# --description--
# --instructions--
# --hints--
# --seed--
# --solutions--

View File

@ -1,18 +0,0 @@
---
id: 5f9771307d4d22b9d2b75a94
title: 世界盃數據庫
challengeType: 12
helpCategory: Relational Databases
url: https://github.com/freeCodeCamp/learn-world-cup-database
dashedName: world-cup-database
---
# --description--
# --instructions--
# --hints--
# --seed--
# --solutions--

View File

@ -0,0 +1,20 @@
---
id: 602da0c222201c65d2a019f5
title: "Build a Student Database: Part 1"
challengeType: 12
helpCategory: Backend Development
url: https://github.com/freeCodeCamp/learn-sql-by-building-a-student-database-part-1
dashedName: build-a-student-database-part-1
---
# --description--
In this 140 lesson course, you will create a Bash script that uses SQL to enter information about your computer science students into PostgreSQL.
# --instructions--
# --hints--
# --seed--
# --solutions--

View File

@ -0,0 +1,20 @@
---
id: 618590adb0730ca724e37672
title: "Build a Student Database: Part 2"
challengeType: 12
helpCategory: Backend Development
url: https://github.com/freeCodeCamp/learn-sql-by-building-a-student-database-part-2
dashedName: build-a-student-database-part-2
---
# --description--
In this 140 lesson course, you will complete your student database while diving deeper into SQL commands.
# --instructions--
# --hints--
# --seed--
# --solutions--

View File

@ -0,0 +1,26 @@
---
id: 5f1a4ef5d5d6b5ab580fc6ae
title: Build a Celestial Bodies Database
challengeType: 13
helpCategory: Backend Development
url: https://github.com/freeCodeCamp/learn-celestial-bodies-database
dashedName: build-a-celestial-bodies-database
---
# --description--
This is one of the required projects to earn your certification. For this project, you will build a database of celestial bodies using PostgreSQL.
# --instructions--
**Important:** After you pass all the project tests, save a dump of your database into a `universe.sql` file so you can complete step 2. There will be instructions how to do that within the virtual machine.
# --notes--
Required files: `universe.sql`
# --hints--
# --seed--
# --solutions--

View File

@ -0,0 +1,26 @@
---
id: 602da04c22201c65d2a019f4
title: Build a Number Guessing Game
challengeType: 13
helpCategory: Backend Development
url: https://github.com/freeCodeCamp/learn-number-guessing-game
dashedName: build-a-number-guessing-game
---
# --description--
This is one of the required projects to earn your certification. For this project, you will use Bash scripting, PostgreSQL, and Git to create a number guessing game that runs in the terminal and saves user information.
# --instructions--
**Important:** After you pass all the project tests, save a dump of your database into a `number_guessers.sql` file, as well as your whole `number_guessing_game` folder, so you can complete step 2. There will be instructions how to do that within the virtual machine.
# --notes--
Required files: `number_guessers.sql`, and the whole `number_guessing_game` folder
# --hints--
# --seed--
# --solutions--

View File

@ -0,0 +1,26 @@
---
id: 602d9ff222201c65d2a019f2
title: Build a Periodic Table Database
challengeType: 13
helpCategory: Backend Development
url: https://github.com/freeCodeCamp/learn-periodic-table-database
dashedName: build-a-periodic-table-database
---
# --description--
This is one of the required projects to earn your certification. For this project, you will create Bash a script to get information about chemical elements from a periodic table database.
# --instructions--
**Important:** After you pass all the project tests, save a dump of your database into a `elements.sql` file, as well as your whole `periodic_table` folder, so you can complete step 2. There will be instructions how to do that within the virtual machine.
# --notes--
Required files: `elements.sql`, and the whole `periodic_table` folder
# --hints--
# --seed--
# --solutions--

View File

@ -0,0 +1,26 @@
---
id: 5f87ac112ae598023a42df1a
title: Build a Salon Appointment Scheduler
challengeType: 13
helpCategory: Backend Development
url: https://github.com/freeCodeCamp/learn-salon-appointment-scheduler
dashedName: build-a-salon-appointment-scheduler
---
# --description--
This is one of the required projects to earn your certification. For this project, you will create an interactive Bash program that uses PostgreSQL to track the customers and appointments for your salon.
# --instructions--
**Important:** After you pass all the project tests, save a dump of your database into a `salon.sql` file, as well as your `salon.sh` file, so you can complete step 2. There will be instructions how to do that within the virtual machine.
# --notes--
Required files: `salon.sql`, `salon.sh`
# --hints--
# --seed--
# --solutions--

View File

@ -0,0 +1,26 @@
---
id: 5f9771307d4d22b9d2b75a94
title: Build a World Cup Database
challengeType: 13
helpCategory: Backend Development
url: https://github.com/freeCodeCamp/learn-world-cup-database
dashedName: build-a-world-cup-database
---
# --description--
This is one of the required projects to earn your certification. For this project, you will create a Bash script that enters information from World Cup games into PostgreSQL, then query the database for useful statistics.
# --instructions--
**Important:** After you pass all the project tests, save a dump of your database into a `worldcup.sql` file, as well as your `insert_data.sh` and `queries.sh` files, so you can complete step 2. There will be instructions how to do that within the virtual machine.
# --notes--
Required files: `worldcup.sql`, `insert_data.sh`, `queries.sh`
# --hints--
# --seed--
# --solutions--

View File

@ -1,14 +1,16 @@
---
id: 602da0de22201c65d2a019f6
title: Learn Advanced Bash by Building a Kitty Ipsum Translator
title: Build a Kitty Ipsum Translator
challengeType: 12
helpCategory: Relational Databases
helpCategory: Backend Development
url: https://github.com/freeCodeCamp/learn-advanced-bash-by-building-a-kitty-ipsum-translator
dashedName: learn-advanced-bash-by-building-a-kitty-ipsum-translator
dashedName: build-a-kitty-ipsum-translator
---
# --description--
In this 140 lesson course, you will learn some more complex commands, and the details of how commands work.
# --instructions--
# --hints--

View File

@ -0,0 +1,20 @@
---
id: 5f5b969a05380d2179fe6e18
title: Build a Bike Rental Shop
challengeType: 12
helpCategory: Backend Development
url: https://github.com/freeCodeCamp/learn-bash-and-sql-by-building-a-bike-rental-shop
dashedName: build-a-bike-rental-shop
---
# --description--
In this 210 lesson course, you will build an interactive Bash program that stores rental information for your bike rental shop using PostgreSQL.
# --instructions--
# --hints--
# --seed--
# --solutions--

View File

@ -0,0 +1,20 @@
---
id: 5ea8adfab628f68d805bfc5e
title: Build a Boilerplate
challengeType: 12
helpCategory: Backend Development
url: https://github.com/freeCodeCamp/learn-bash-by-building-a-boilerplate
dashedName: build-a-boilerplate
---
# --description--
In this 170 lesson course, you will learn basic commands by creating a website boilerplate using only the command line.
# --instructions--
# --hints--
# --seed--
# --solutions--

View File

@ -0,0 +1,20 @@
---
id: 5f5904ac738bc2fa9efecf5a
title: Build Five Programs
challengeType: 12
helpCategory: Backend Development
url: https://github.com/freeCodeCamp/learn-bash-scripting-by-building-five-programs
dashedName: build-five-programs
---
# --description--
In this 220 lesson course, you will learn more terminal commands and how to use them within Bash scripts by creating five small programs.
# --instructions--
# --hints--
# --seed--
# --solutions--

View File

@ -0,0 +1,20 @@
---
id: 5fa323cdaf6a73463d590659
title: Build an SQL Reference Object
challengeType: 12
helpCategory: Backend Development
url: https://github.com/freeCodeCamp/learn-git-by-building-an-sql-reference-object
dashedName: build-an-sql-reference-object
---
# --description--
In this 240 lesson course, you will learn how Git keeps track of your code by creating an object containing commonly used SQL commands.
# --instructions--
# --hints--
# --seed--
# --solutions--

View File

@ -1,14 +1,16 @@
---
id: 5f32db63eb37f7e17323f459
title: 通过构建城堡来学习 Nano
title: Build a Castle
challengeType: 12
helpCategory: Relational Databases
helpCategory: Backend Development
url: https://github.com/freeCodeCamp/learn-nano-by-building-a-castle
dashedName: learn-nano-by-building-a-castle
dashedName: build-a-castle
---
# --description--
In this 40 lesson course, you will learn how to edit files in the terminal with Nano while building a castle.
# --instructions--
# --hints--

View File

@ -0,0 +1,20 @@
---
id: 5f2c289f164c29556da632fd
title: Build a Mario Database
challengeType: 12
helpCategory: Backend Development
url: https://github.com/freeCodeCamp/learn-relational-databases-by-building-a-mario-database
dashedName: build-a-mario-database
---
# --description--
In this 165 lesson course, you will learn the basics of relational databases by creating a PostgreSQL database filled with video game characters.
# --instructions--
# --hints--
# --seed--
# --solutions--

View File

@ -1,18 +0,0 @@
---
id: 5f1a4ef5d5d6b5ab580fc6ae
title: 天体数据库
challengeType: 12
helpCategory: Relational Databases
url: https://github.com/freeCodeCamp/learn-celestial-bodies-database
dashedName: celestial-bodies-database
---
# --description--
# --instructions--
# --hints--
# --seed--
# --solutions--

View File

@ -1,18 +0,0 @@
---
id: 602da0de22201c65d2a019f6
title: 通过构建一个 Kitty Ipsum 翻译器来学习高级 Bash
challengeType: 12
helpCategory: Relational Databases
url: https://github.com/freeCodeCamp/learn-advanced-bash-by-building-a-kitty-ipsum-translator
dashedName: learn-advanced-bash-by-building-a-kitty-ipsum-translator
---
# --description--
# --instructions--
# --hints--
# --seed--
# --solutions--

View File

@ -1,17 +0,0 @@
---
id: 5f5b969a05380d2179fe6e18
title: 通过构建自行车租赁店来学习 Bash 和 SQL
challengeType: 12
helpCategory: Relational Databases
url: https://github.com/freeCodeCamp/learn-bash-and-sql-by-building-a-bike-rental-shop
dashedName: learn-bash-and-sql-by-building-a-bike-rental-shop
---
# --instructions--
# --hints--
# --seed--
# --solutions--

View File

@ -1,18 +0,0 @@
---
id: 5ea8adfab628f68d805bfc5e
title: 通过构建模版学习 Bash
challengeType: 12
helpCategory: Relational Databases
url: https://github.com/freeCodeCamp/learn-bash-by-building-a-boilerplate
dashedName: learn-bash-by-building-a-boilerplate
---
# --description--
# --instructions--
# --hints--
# --seed--
# --solutions--

View File

@ -1,18 +0,0 @@
---
id: 5f5904ac738bc2fa9efecf5a
title: 通过构建五个程序学习 Bash 脚本
challengeType: 12
helpCategory: Relational Databases
url: https://github.com/freeCodeCamp/learn-bash-scripting-by-building-five-programs
dashedName: learn-bash-scripting-by-building-five-programs
---
# --description--
# --instructions--
# --hints--
# --seed--
# --solutions--

View File

@ -1,18 +0,0 @@
---
id: 5fa323cdaf6a73463d590659
title: 通过构建 SQL 引用对象来学习 Git
challengeType: 12
helpCategory: Relational Databases
url: https://github.com/freeCodeCamp/learn-git-by-building-an-sql-reference-object
dashedName: learn-git-by-building-an-sql-reference-object
---
# --description--
# --instructions--
# --hints--
# --seed--
# --solutions--

View File

@ -1,18 +0,0 @@
---
id: 602da04222201c65d2a019f3
title: 通过建立励志名言列表来学习 GitHub
challengeType: 12
helpCategory: Relational Databases
url: https://github.com/moT01/learn-github-by-building-a-list-of-inspirational-quotes
dashedName: learn-github-by-building-a-list-of-inspirational-quotes
---
# --description--
# --instructions--
# --hints--
# --seed--
# --solutions--

View File

@ -1,18 +0,0 @@
---
id: 5f2c289f164c29556da632fd
title: 通过构建 Mario 数据库来学习关系型数据库
challengeType: 12
helpCategory: Relational Databases
url: https://github.com/freeCodeCamp/learn-relational-databases-by-building-a-mario-database
dashedName: learn-relational-databases-by-building-a-mario-database
---
# --description--
# --instructions--
# --hints--
# --seed--
# --solutions--

View File

@ -1,18 +0,0 @@
---
id: 602da0c222201c65d2a019f5
title: "Learn SQL by Building a Student Database: Part 1"
challengeType: 12
helpCategory: Relational Databases
url: https://github.com/freeCodeCamp/learn-sql-by-building-a-student-database-part-1
dashedName: learn-sql-by-building-a-student-database-part-1
---
# --description--
# --instructions--
# --hints--
# --seed--
# --solutions--

View File

@ -1,18 +0,0 @@
---
id: 618590adb0730ca724e37672
title: "Learn SQL by Building a Student Database: Part 2"
challengeType: 12
helpCategory: Relational Databases
url: https://github.com/freeCodeCamp/learn-sql-by-building-a-student-database-part-2
dashedName: learn-sql-by-building-a-student-database-part-2
---
# --description--
# --instructions--
# --hints--
# --seed--
# --solutions--

View File

@ -1,18 +0,0 @@
---
id: 602da04c22201c65d2a019f4
title: 猜数字游戏
challengeType: 12
helpCategory: Relational Databases
url: https://github.com/freeCodeCamp/learn-number-guessing-game
dashedName: number-guessing-game
---
# --description--
# --instructions--
# --hints--
# --seed--
# --solutions--

View File

@ -1,18 +0,0 @@
---
id: 602d9ff222201c65d2a019f2
title: 元素周期表数据库
challengeType: 12
helpCategory: Relational Databases
url: https://github.com/freeCodeCamp/learn-periodic-table-database
dashedName: periodic-table-database
---
# --description--
# --instructions--
# --hints--
# --seed--
# --solutions--

View File

@ -1,18 +0,0 @@
---
id: 5f87ac112ae598023a42df1a
title: 沙龙日程安排程序
challengeType: 12
helpCategory: Relational Databases
url: https://github.com/freeCodeCamp/learn-salon-appointment-scheduler
dashedName: salon-appointment-scheduler
---
# --description--
# --instructions--
# --hints--
# --seed--
# --solutions--

View File

@ -1,18 +0,0 @@
---
id: 5f9771307d4d22b9d2b75a94
title: 世界杯数据库
challengeType: 12
helpCategory: Relational Databases
url: https://github.com/freeCodeCamp/learn-world-cup-database
dashedName: world-cup-database
---
# --description--
# --instructions--
# --hints--
# --seed--
# --solutions--

View File

@ -0,0 +1,20 @@
---
id: 602da0c222201c65d2a019f5
title: "Build a Student Database: Part 1"
challengeType: 12
helpCategory: Backend Development
url: https://github.com/freeCodeCamp/learn-sql-by-building-a-student-database-part-1
dashedName: build-a-student-database-part-1
---
# --description--
In this 140 lesson course, you will create a Bash script that uses SQL to enter information about your computer science students into PostgreSQL.
# --instructions--
# --hints--
# --seed--
# --solutions--

View File

@ -0,0 +1,20 @@
---
id: 618590adb0730ca724e37672
title: "Build a Student Database: Part 2"
challengeType: 12
helpCategory: Backend Development
url: https://github.com/freeCodeCamp/learn-sql-by-building-a-student-database-part-2
dashedName: build-a-student-database-part-2
---
# --description--
In this 140 lesson course, you will complete your student database while diving deeper into SQL commands.
# --instructions--
# --hints--
# --seed--
# --solutions--

View File

@ -0,0 +1,26 @@
---
id: 5f1a4ef5d5d6b5ab580fc6ae
title: Build a Celestial Bodies Database
challengeType: 13
helpCategory: Backend Development
url: https://github.com/freeCodeCamp/learn-celestial-bodies-database
dashedName: build-a-celestial-bodies-database
---
# --description--
This is one of the required projects to earn your certification. For this project, you will build a database of celestial bodies using PostgreSQL.
# --instructions--
**Important:** After you pass all the project tests, save a dump of your database into a `universe.sql` file so you can complete step 2. There will be instructions how to do that within the virtual machine.
# --notes--
Required files: `universe.sql`
# --hints--
# --seed--
# --solutions--

View File

@ -0,0 +1,26 @@
---
id: 602da04c22201c65d2a019f4
title: Build a Number Guessing Game
challengeType: 13
helpCategory: Backend Development
url: https://github.com/freeCodeCamp/learn-number-guessing-game
dashedName: build-a-number-guessing-game
---
# --description--
This is one of the required projects to earn your certification. For this project, you will use Bash scripting, PostgreSQL, and Git to create a number guessing game that runs in the terminal and saves user information.
# --instructions--
**Important:** After you pass all the project tests, save a dump of your database into a `number_guessers.sql` file, as well as your whole `number_guessing_game` folder, so you can complete step 2. There will be instructions how to do that within the virtual machine.
# --notes--
Required files: `number_guessers.sql`, and the whole `number_guessing_game` folder
# --hints--
# --seed--
# --solutions--

View File

@ -0,0 +1,26 @@
---
id: 602d9ff222201c65d2a019f2
title: Build a Periodic Table Database
challengeType: 13
helpCategory: Backend Development
url: https://github.com/freeCodeCamp/learn-periodic-table-database
dashedName: build-a-periodic-table-database
---
# --description--
This is one of the required projects to earn your certification. For this project, you will create Bash a script to get information about chemical elements from a periodic table database.
# --instructions--
**Important:** After you pass all the project tests, save a dump of your database into a `elements.sql` file, as well as your whole `periodic_table` folder, so you can complete step 2. There will be instructions how to do that within the virtual machine.
# --notes--
Required files: `elements.sql`, and the whole `periodic_table` folder
# --hints--
# --seed--
# --solutions--

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