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:
@ -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', {
|
||||
|
@ -236,6 +236,15 @@
|
||||
],
|
||||
"default": []
|
||||
},
|
||||
"partiallyCompletedChallenges": {
|
||||
"type": [
|
||||
{
|
||||
"completedDate": "number",
|
||||
"id": "string"
|
||||
}
|
||||
],
|
||||
"default": []
|
||||
},
|
||||
"portfolio": {
|
||||
"type": "array",
|
||||
"default": []
|
||||
|
@ -20,3 +20,6 @@ export const fixCompletedChallengeItem = obj =>
|
||||
'files',
|
||||
'isManuallyApproved'
|
||||
]);
|
||||
|
||||
export const fixPartiallyCompletedChallengeItem = obj =>
|
||||
pick(obj, ['id', 'completedDate']);
|
||||
|
@ -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
|
||||
);
|
||||
|
@ -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]: {
|
||||
|
@ -32,6 +32,7 @@ export const publicUserProps = [
|
||||
'linkedin',
|
||||
'location',
|
||||
'name',
|
||||
'partiallyCompletedChallenges',
|
||||
'points',
|
||||
'portfolio',
|
||||
'profileUI',
|
||||
|
@ -428,15 +428,107 @@
|
||||
"relational-databases": {
|
||||
"title": "關係型數據庫",
|
||||
"intro": [
|
||||
"對於這些課程,你將使用真正的開發者工具和軟件,包括 VS Code、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."
|
||||
]
|
||||
}
|
||||
}
|
||||
|
@ -428,15 +428,107 @@
|
||||
"relational-databases": {
|
||||
"title": "关系型数据库",
|
||||
"intro": [
|
||||
"对于这些课程,你将使用真正的开发者工具和软件,包括 VS Code、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."
|
||||
]
|
||||
}
|
||||
}
|
||||
|
@ -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."
|
||||
]
|
||||
}
|
||||
}
|
||||
|
@ -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",
|
||||
|
@ -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."
|
||||
]
|
||||
}
|
||||
}
|
||||
|
@ -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."
|
||||
]
|
||||
}
|
||||
}
|
||||
|
@ -428,15 +428,107 @@
|
||||
"relational-databases": {
|
||||
"title": "リレーショナルデータベース",
|
||||
"intro": [
|
||||
"このコースでは、VS Code、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 を使用して関係データベースを作成し取り扱う方法を学習します。",
|
||||
"最後に、すべての開発者に不可欠な 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."
|
||||
]
|
||||
}
|
||||
}
|
||||
|
@ -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."
|
||||
]
|
||||
}
|
||||
}
|
||||
|
@ -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."
|
||||
]
|
||||
}
|
||||
}
|
||||
|
@ -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',
|
||||
|
@ -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'>
|
||||
|
@ -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;
|
||||
|
15
client/src/templates/Challenges/codeally/codeally.css
Normal file
15
client/src/templates/Challenges/codeally/codeally.css
Normal 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;
|
||||
}
|
@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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';
|
||||
|
||||
|
@ -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`)}
|
||||
|
@ -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,
|
||||
|
@ -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'
|
||||
};
|
||||
|
||||
|
@ -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
|
||||
};
|
||||
|
||||
|
@ -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",
|
||||
|
@ -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"
|
||||
]
|
||||
]}
|
@ -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"
|
||||
]
|
||||
]}
|
@ -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"
|
||||
]
|
||||
]}
|
@ -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"
|
||||
]
|
||||
]}
|
@ -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"
|
||||
]
|
||||
]}
|
@ -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"
|
||||
]
|
||||
]}
|
@ -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"
|
||||
]
|
||||
]}
|
@ -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"
|
||||
]
|
||||
]}
|
@ -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"
|
||||
]
|
||||
]}
|
@ -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"
|
||||
]
|
||||
]}
|
@ -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"
|
||||
]
|
||||
]}
|
@ -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"
|
||||
]
|
||||
]}
|
@ -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"
|
||||
}
|
@ -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"
|
||||
]
|
||||
]}
|
@ -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"
|
||||
]
|
||||
]}
|
@ -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--
|
@ -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--
|
@ -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--
|
@ -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--
|
@ -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--
|
@ -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--
|
@ -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--
|
@ -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--
|
@ -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--
|
@ -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--
|
@ -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--
|
@ -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--
|
@ -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--
|
@ -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--
|
@ -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--
|
@ -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--
|
@ -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--
|
@ -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--
|
@ -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--
|
@ -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--
|
@ -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--
|
@ -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--
|
@ -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--
|
@ -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--
|
@ -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--
|
@ -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--
|
@ -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--
|
@ -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--
|
@ -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--
|
@ -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--
|
@ -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--
|
@ -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--
|
@ -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--
|
@ -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--
|
@ -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--
|
@ -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--
|
@ -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--
|
@ -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--
|
@ -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--
|
@ -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--
|
@ -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--
|
@ -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--
|
@ -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--
|
@ -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--
|
@ -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--
|
@ -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--
|
@ -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--
|
@ -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--
|
@ -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--
|
@ -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--
|
@ -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--
|
@ -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--
|
@ -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--
|
@ -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--
|
@ -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--
|
@ -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--
|
@ -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--
|
@ -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
Reference in New Issue
Block a user