docs: update and simplify all documentation (#39686)
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
This commit is contained in:
committed by
GitHub
parent
61ba415717
commit
b16c0641bf
100
docs/FAQ.md
Normal file
100
docs/FAQ.md
Normal file
@ -0,0 +1,100 @@
|
||||
### I am new to GitHub and Open Source, where should I start?
|
||||
|
||||
Read our ["How to Contribute to Open Source Guide"](https://github.com/freeCodeCamp/how-to-contribute-to-open-source). It's a compresensive resource of first timer friendly projects and guidelines.
|
||||
|
||||
### Can I translate freeCodeCamp's curriculum?
|
||||
|
||||
We will be kicking-off the localization efforts on freeCodeCamp starting with the **Chinese** first.
|
||||
|
||||
We intend to make the curriculum available in more languages, but can't commit to any deadlines yet. Several operational limits like staff, active contributors and server costs play a role in driving the internationalisation (i18n) efforts.
|
||||
|
||||
We intend to start i18n efforts in these languages: Arabic, Portuguese, Russian and Spanish (in no particular order) after we have released the curriculum in Chinese.
|
||||
|
||||
**Why are you focusing on Chinese curriculum first?**
|
||||
|
||||
China is the largest demographic regions, in our non-native English speaking audience. Currently, we have hundreds of thousands of users using an old version of the platform. Focusing on the Chinese curriculum will give us an estimate of logistics involved in the i18n.
|
||||
|
||||
We will focus on Latin America as the demographic region for Portuguese and Spanish.
|
||||
|
||||
We do not have any plans for i18n to any other languages other than the above for the foreseeable future.
|
||||
|
||||
We do not encourage you to work on i18n on the above languages. We may accept pull requests, without any expectation of any timelines on deployments.
|
||||
|
||||
### How can I report a new bug?
|
||||
|
||||
If you think you've found a bug, first read the ["Help I've Found a Bug"](https://forum.freecodecamp.org/t/how-to-report-a-bug/19543) article and follow its instructions.
|
||||
|
||||
If you're confident it's a new bug, go ahead and create a new GitHub issue. Be sure to include as much information as possible so that we can reproduce the bug. We have a pre-defined issue template to help you through this.
|
||||
|
||||
Please note that any issues that seek coding help on a challenge will be closed. The issue tracker is strictly for codebase related issues and discussions. Whenever in doubt, you should [seek assistance on the forum](https://forum.freecodecamp.org) before making a report.
|
||||
|
||||
### How can I report a security issue?
|
||||
|
||||
Please don't create GitHub issues for security issues. Instead, please send an email to `security@freecodecamp.org` and we'll look into it immediately.
|
||||
|
||||
### I am a student, can I or our team work on a feature for academic credits?
|
||||
|
||||
Yes, sure.
|
||||
|
||||
While, we are open to all contributions, please note we are unable to commit to any timelines that may be a requirement at your college or university. We receive many pull-requests and code contributions by volunteer developers, and we respect their time and efforts. We will not be able to give any PR any special attention to be fair to all.
|
||||
|
||||
We request you to plan ahead and work on a feature with this in mind.
|
||||
|
||||
### What do these different labels that are tagged on issues mean?
|
||||
|
||||
The code maintainers [triage](https://en.wikipedia.org/wiki/Software_bug#Bug_management) issues and pull requests based on their priority, severity, and other factors. You can [find a complete glossary of their meanings here](https://github.com/freecodecamp/freecodecamp/labels).
|
||||
|
||||
### Where do I start if I want to work on an issue?
|
||||
|
||||
You should go through [**`help wanted`**](https://github.com/freeCodeCamp/freeCodeCamp/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22) or [**`first timers only`**](https://github.com/freeCodeCamp/freeCodeCamp/issues?q=is%3Aopen+is%3Aissue+label%3A%22first+timers+only%22) issues for a quick overview of what is available for you to work on.
|
||||
|
||||
> [!TIP] **`help wanted`** issues are up for grabs, and you do not need to seek permission before working on them. However, issues with the **`first timers only`** label are reserved for people that have not contributed to the freeCodeCamp codebase before. If these issues lack clarity on what needs to be done, feel free to ask questions in the comments.
|
||||
|
||||
### I found a typo, should I report an issue before I can make a pull request?
|
||||
|
||||
For typos and other wording changes, you can directly open pull requests without creating an issue first. Issues are more for discussing larger problems associated with code or structural aspects of the curriculum.
|
||||
|
||||
However, please mention details, context etc. in the pull request's description area to help us understand and review your contribution even for minor changes.
|
||||
|
||||
### How do I get an issue assigned to me?
|
||||
|
||||
We typically do not assign issues to anyone other than long-time contributors to avoid ambiguous no-shows. Instead, we follow the below policy to be fair to everyone:
|
||||
|
||||
1. The first pull request for any issue is preferred to be merged.
|
||||
2. In the case of multiple pull requests for the same issue, we give priority to the quality of the code in the pull requests.
|
||||
- Did you include tests?
|
||||
- Did you catch all usecases?
|
||||
- Did you ensure all tests pass, and you confirmed everything works locally?
|
||||
3. Finally, we favor pull requests which follow our recommended guidelines.
|
||||
- Did you follow the pull request checklist?
|
||||
- Did you name your pull request title meaningfully?
|
||||
|
||||
You do not need any permission for issues that are marked `help wanted` or `first timers only` as explained earlier.
|
||||
|
||||
Follow the guidelines carefully and open a pull request.
|
||||
|
||||
### I am stuck on something that is not included in this documentation.
|
||||
|
||||
**Feel free to ask for help in:**
|
||||
|
||||
- The "Contributors" category of [our community forum](https://forum.freecodecamp.org/c/contributors).
|
||||
- Our public contributors [chat room on Gitter](https://gitter.im/FreeCodeCamp/Contributors).
|
||||
|
||||
We are excited to help you contribute to any of the topics that you would like to work on. Feel free to ask us questions on the related issue threads, and we will be glad to clarify. Make sure you search for your query before posting a new one.
|
||||
|
||||
Be polite and patient. Our community of volunteers and moderators are always around to guide you through your queries.
|
||||
|
||||
**Additional Assistance:**
|
||||
|
||||
If you have queries about the stack, architecture of the codebase, feel free to reach out to our staff dev team:
|
||||
|
||||
| Staff | Send message on Forum |
|
||||
| :-------------------- | :--------------------------------------------------------------------------- |
|
||||
| Mrugesh Mohapatra | [@raisedadead](https://forum.freecodecamp.org/u/raisedadead) |
|
||||
| Ahmad Abdolsaheb | [@abdolsa](https://forum.freecodecamp.org/u/abdolsa) |
|
||||
| Kristofer Koishigawa | [@scissorsneedfoodtoo](https://forum.freecodecamp.org/u/scissorsneedfoodtoo) |
|
||||
| Tom Mondloc | [@moT01](https://forum.freecodecamp.org/u/moT01) |
|
||||
| Oliver Eyton-Williams | [@ojeytonwilliams](https://forum.freecodecamp.org/u/ojeytonwilliams) |
|
||||
| Randell Dawson | [@RandellDawson](https://forum.freecodecamp.org/u/randelldawson) |
|
||||
|
||||
**You can email our developer staff at: `dev[at]freecodecamp.org`**
|
@ -4,9 +4,9 @@
|
||||
|
||||
## Here are some quick and fun ways you can help the community.
|
||||
|
||||
- <span class='cover-icon' style="color: #002ead;"><i class="far fa-question-circle"></i></span> [Help by answering coding questions](https://forum.freecodecamp.org/c/help?max_posts=1) on our community forum.
|
||||
- <span class='cover-icon' style="color: #00471b;"><i class="far fa-comments"></i></span> [Give feedback on coding projects](https://forum.freecodecamp.org/c/project-feedback?max_posts=1) built by campers.
|
||||
- <span class='cover-icon' style="color: #c4302b;"><i class="fab fa-youtube"></i></span> [Help us add subtitles (closed captions)](https://www.youtube.com/timedtext_cs_panel?c=UC8butISFwT-Wl7EV0hUK0BQ&tab=2) to our YouTube channel videos.
|
||||
- <span class='cover-icon' style="color: #000000;"><i class="fab fa-github"></i></span> [Contribute to our open source codebase](/index?id=our-open-source-codebase) on GitHub.
|
||||
- <span class='cover-icon'><i class="fas fa-question-circle"></i></span> [Help by answering coding questions](https://forum.freecodecamp.org/c/help?max_posts=1) on our community forum.
|
||||
- <span class='cover-icon'><i class="fas fa-comments"></i></span> [Give feedback on coding projects](https://forum.freecodecamp.org/c/project-feedback?max_posts=1) built by campers.
|
||||
- <span class='cover-icon'><i class="fas fa-language"></i></span> [Help us add subtitles (closed captions)](https://www.youtube.com/timedtext_cs_panel?c=UC8butISFwT-Wl7EV0hUK0BQ&tab=2) to our YouTube channel videos.
|
||||
- <span class='cover-icon'><i class="fab fa-github"></i></span> [Contribute to our open source codebase](/index?id=our-open-source-codebase) on GitHub.
|
||||
|
||||
[Read our contributing guidelines](/index.md)
|
||||
|
@ -1,18 +1,27 @@
|
||||
- **<i class="fas fa-hourglass-start"></i> Getting Started**
|
||||
- **Getting Started**
|
||||
- [Introduction](/index.md 'Contribute to the freeCodeCamp.org Community')
|
||||
- **<i class="fas fa-code"></i> Code Contribution**
|
||||
- [Work on coding challenges](/how-to-work-on-coding-challenges.md)
|
||||
- [Help with video challenges](/how-to-help-with-video-challenges.md)
|
||||
- [Set up freeCodeCamp locally](/how-to-setup-freecodecamp-locally.md)
|
||||
- [Frequently Asked Questions](/FAQ.md)
|
||||
- **Code Contribution**
|
||||
- - [Set up freeCodeCamp locally](/how-to-setup-freecodecamp-locally.md)
|
||||
- [Open a pull request](/how-to-open-a-pull-request.md)
|
||||
- [Work on coding challenges](/how-to-work-on-coding-challenges.md)
|
||||
- [Work on video challenges](/how-to-help-with-video-challenges.md)
|
||||
- [Work on the news theme](/how-to-work-on-the-news-theme.md)
|
||||
- [Work on the docs theme](/how-to-work-on-the-docs-theme.md)
|
||||
- **Optional Guides**
|
||||
- [Catch outgoing emails locally](/how-to-catch-outgoing-emails-locally.md)
|
||||
- [Set up WSL](/how-to-setup-wsl.md)
|
||||
- [Set up freeCodeCamp on WSL](/how-to-setup-wsl.md)
|
||||
|
||||
---
|
||||
|
||||
- **<i class="fas fa-plane"></i> Flight Manuals** (for Staff & Mods)
|
||||
- **中文社区贡献指南**
|
||||
- [成为专栏作者](/i18n/chinese/news-author-application.md)
|
||||
- [文章翻译计划](/i18n/chinese/news-translations.md)
|
||||
- [视频翻译计划](/i18n/chinese/video-translations.md)
|
||||
|
||||
---
|
||||
|
||||
- **Flight Manuals** (for Staff & Mods)
|
||||
- [Moderator Handbook](/flight-manuals/moderator-handbook.md)
|
||||
- [Reply Templates](/flight-manuals/using-reply-templates.md)
|
||||
- [DevOps Overview](/devops.md)
|
||||
@ -20,14 +29,7 @@
|
||||
|
||||
---
|
||||
|
||||
- **<i class="fas fa-language"></i> 中文社区贡献指南**
|
||||
- [成为专栏作者](/chinese-guides/news-author-application.md)
|
||||
- [文章翻译计划](/chinese-guides/news-translations.md)
|
||||
- [视频翻译计划](/chinese-guides/video-translations.md)
|
||||
|
||||
---
|
||||
|
||||
- **<i class="fas fa-user-friends"></i> Our Community**
|
||||
- [**<i class="fab fa-github"></i> GitHub Repository**](https://github.com/freecodecamp/freecodecamp)
|
||||
- [**<i class="fab fa-discourse"></i> Contributors category on Forum**](https://freecodecamp.org/forum/c/contributors)
|
||||
- [**<i class="fab fa-gitter"></i> Contributors chat room on Gitter**](https://gitter.im/FreeCodeCamp/Contributors)
|
||||
- **Our Community**
|
||||
- [**GitHub**](https://github.com/freecodecamp/freecodecamp)
|
||||
- [**Discourse Forum**](https://freecodecamp.org/forum/c/contributors)
|
||||
- [**Gitter Chat**](https://gitter.im/FreeCodeCamp/Contributors)
|
||||
|
@ -1,5 +1,3 @@
|
||||
# Catch outgoing emails locally for email workflows
|
||||
|
||||
> **Note:** This is an **optional** step and is required only when working with email workflows
|
||||
|
||||
## Introduction
|
||||
@ -10,9 +8,13 @@ Some email workflows, like updating a user's email, requires the back-end api-se
|
||||
|
||||
MailHog can be installed on macOS, Windows and Linux.
|
||||
|
||||
- [Introduction](#introduction)
|
||||
- [Installing MailHog](#installing-mailhog)
|
||||
- [Installing MailHog on macOS](#installing-mailhog-on-macos)
|
||||
- [Installing MailHog on Windows](#installing-mailhog-on-windows)
|
||||
- [Installing MailHog on Linux](#installing-mailhog-on-linux)
|
||||
- [Using MailHog](#using-mailhog)
|
||||
- [Useful Links](#useful-links)
|
||||
|
||||
### Installing MailHog on macOS
|
||||
|
||||
|
@ -1,9 +1,64 @@
|
||||
# How to set up freeCodeCamp locally
|
||||
|
||||
Follow these guidelines for setting up freeCodeCamp locally on your system. This is highly recommended if you want to contribute regularly.
|
||||
|
||||
For some of the contribution workflows, you need to have freeCodeCamp running locally. For example, previewing coding challenges or debugging and fixing bugs in the codebase.
|
||||
|
||||
> [!TIP]
|
||||
> If you are not interested in setting up freeCodeCamp locally consider using Gitpod, a free online dev environment.
|
||||
>
|
||||
> [](https://gitpod.io/#https://github.com/freeCodeCamp/freeCodeCamp)
|
||||
>
|
||||
> (Starts a ready-to-code dev environment for freeCodeCamp in your browser.)
|
||||
|
||||
## Prepare your local machine
|
||||
|
||||
Start by installing the prerequisite software for your operating system.
|
||||
|
||||
We primarily support development on **\*nix** systems. Our staff and community contributors regularly work with the codebase using tools installed on Ubuntu and macOS.
|
||||
|
||||
We also support Windows 10 via WSL2, which you can prepare by [reading this guide](/how-to-setup-wsl).
|
||||
|
||||
Some community members also develop on Windows 10 natively with Git for Windows (Git Bash), and other tools installed on Windows. We do not have official support for such a setup at this time, we recommend using WSL2 instead.
|
||||
|
||||
**Prerequisites:**
|
||||
|
||||
| Prerequisite | Version | Notes |
|
||||
| ----------------------------- | ------- | -------------------------------------------------------------------- |
|
||||
| [Node.js](http://nodejs.org) | `12.x` | [LTS Schedule](https://github.com/nodejs/Release#release-schedule) |
|
||||
| npm (comes bundled with Node) | `6.x` | Does not have LTS releases, we use the version bundled with Node LTS |
|
||||
| [MongoDB Community Server](https://docs.mongodb.com/manual/administration/install-community/) | `3.6` | [Release Notes](https://docs.mongodb.com/manual/release-notes/), Note: We are currently on `3.6`, an [upgrade is planned](https://github.com/freeCodeCamp/freeCodeCamp/issues/18275). |
|
||||
|
||||
> [!DANGER]
|
||||
> If you have a different version, please install the recommended version. We can only support installation issues for recommended versions. See [troubleshooting](#troubleshooting) for details.
|
||||
|
||||
If Node.js is already installed on your machine, run the following commands to validate the versions:
|
||||
|
||||
```console
|
||||
node -v
|
||||
npm -v
|
||||
```
|
||||
|
||||
> [!TIP]
|
||||
> We highly recommend updating to the latest stable releases of the software listed above, also known as Long Term Support (LTS) releases.
|
||||
|
||||
Once you have the prerequisites installed, you need to prepare your development environment. This is common for many development workflows, and you will only need to do this once.
|
||||
|
||||
**Follow these steps to get your development environment ready:**
|
||||
|
||||
1. Install [Git](https://git-scm.com/) or your favorite Git client, if you haven't already. Update to the latest version; the version that came bundled with your OS may be outdated.
|
||||
|
||||
2. (Optional but recommended) [Set up an SSH Key](https://help.github.com/articles/generating-an-ssh-key/) for GitHub.
|
||||
|
||||
3. Install a code editor of your choice.
|
||||
|
||||
We highly recommend using [Visual Studio Code](https://code.visualstudio.com/) or [Atom](https://atom.io/). These are great, free and open source code editors.
|
||||
|
||||
4. Set up linting for your code editor.
|
||||
|
||||
You should have [ESLint running in your editor](http://eslint.org/docs/user-guide/integrations.html), and it will highlight anything that doesn't conform to [freeCodeCamp's JavaScript Style Guide](http://forum.freecodecamp.org/t/free-code-camp-javascript-style-guide/19121).
|
||||
|
||||
> [!TIP]
|
||||
> Please do not ignore any linting errors. They are meant to **help** you and to ensure a clean and simple codebase.
|
||||
|
||||
## Fork the repository on GitHub
|
||||
|
||||
[Forking](https://help.github.com/articles/about-forks/) is a step where you get your own copy of freeCodeCamp's main repository (a.k.a _repo_) on GitHub.
|
||||
@ -23,28 +78,13 @@ This is essential, as it allows you to work on your own copy of freeCodeCamp on
|
||||
|
||||
3. After the repository has been forked, you will be taken to your copy of the freeCodeCamp repository at `https://github.com/YOUR_USER_NAME/freeCodeCamp`
|
||||
|
||||

|
||||
|
||||
## Prepare your local machine
|
||||
|
||||
Once you have the prerequisites installed, you need to prepare your development environment. This is common for many development workflows, and you will only need to do this once.
|
||||
|
||||
**Follow these steps to get your development environment ready:**
|
||||
|
||||
1. Install [Git](https://git-scm.com/) or your favorite Git client, if you haven't already. Update to the latest version; the version that came bundled with your OS may be outdated.
|
||||
|
||||
2. (Optional but recommended) [Set up an SSH Key](https://help.github.com/articles/generating-an-ssh-key/) for GitHub.
|
||||
|
||||
3. Install a code editor of your choice.
|
||||
|
||||
We highly recommend using [VS Code](https://code.visualstudio.com/) or [Atom](https://atom.io/). These are great, free and open source code editors.
|
||||
|
||||
4. Set up linting for your code editor.
|
||||
|
||||
You should have [ESLint running in your editor](http://eslint.org/docs/user-guide/integrations.html), and it will highlight anything that doesn't conform to [freeCodeCamp's JavaScript Style Guide](http://forum.freecodecamp.org/t/free-code-camp-javascript-style-guide/19121).
|
||||
|
||||
> [!TIP]
|
||||
> Please do not ignore any linting errors. They are meant to **help** you and to ensure a clean and simple codebase.
|
||||
<details>
|
||||
<summary>
|
||||
How to fork freeCodeCamp on GitHub (screenshot)
|
||||
</summary>
|
||||
<br>
|
||||
<img src="https://raw.githubusercontent.com/freeCodeCamp/freeCodeCamp/master/docs/images/github/how-to-fork-freeCodeCamp.gif" alt="How to fork freeCodeCamp on GitHub">
|
||||
</details>
|
||||
|
||||
## Clone your fork from GitHub
|
||||
|
||||
@ -58,7 +98,7 @@ Run these commands on your local machine:
|
||||
|
||||
2. Clone your fork of freeCodeCamp, replacing `YOUR_USER_NAME` with your GitHub Username
|
||||
|
||||
```sh
|
||||
```console
|
||||
git clone --depth=1 https://github.com/YOUR_USER_NAME/freeCodeCamp.git
|
||||
```
|
||||
|
||||
@ -70,38 +110,38 @@ Note: `--depth=1` creates a shallow clone of your fork, with only the most recen
|
||||
|
||||
Now that you have downloaded a copy of your fork, you will need to set up an `upstream` remote to the parent repository.
|
||||
|
||||
[As mentioned earlier](#fork-the-repo-on-github), the main repository is referred `upstream` repository. Your fork referred to as the `origin` repository.
|
||||
[As mentioned earlier](#fork-the-repository-on-github), the main repository is referred `upstream` repository. Your fork referred to as the `origin` repository.
|
||||
|
||||
You need a reference from your local clone to the `upstream` repository in addition to the `origin` repository. This is so that you can sync changes from the main repository without the requirement of forking and cloning repeatedly.
|
||||
|
||||
1. Change directory to the new freeCodeCamp directory:
|
||||
|
||||
```sh
|
||||
```console
|
||||
cd freeCodeCamp
|
||||
```
|
||||
|
||||
2. Add a remote reference to the main freeCodeCamp repository:
|
||||
|
||||
```sh
|
||||
```console
|
||||
git remote add upstream https://github.com/freeCodeCamp/freeCodeCamp.git
|
||||
```
|
||||
|
||||
3. Ensure the configuration looks correct:
|
||||
|
||||
```sh
|
||||
```console
|
||||
git remote -v
|
||||
```
|
||||
|
||||
The output should look something like below:
|
||||
|
||||
```sh
|
||||
```console
|
||||
origin https://github.com/YOUR_USER_NAME/freeCodeCamp.git (fetch)
|
||||
origin https://github.com/YOUR_USER_NAME/freeCodeCamp.git (push)
|
||||
upstream https://github.com/freeCodeCamp/freeCodeCamp.git (fetch)
|
||||
upstream https://github.com/freeCodeCamp/freeCodeCamp.git (push)
|
||||
```
|
||||
|
||||
## Running freeCodeCamp locally on your machine
|
||||
## Running freeCodeCamp locally
|
||||
|
||||
Now that you have a local copy of freeCodeCamp, you can follow these instructions to run it locally. This will allow you to:
|
||||
|
||||
@ -109,71 +149,24 @@ Now that you have a local copy of freeCodeCamp, you can follow these instruction
|
||||
- Work on UI related issues and enhancements.
|
||||
- Debug and fix issues with the application servers and client apps.
|
||||
|
||||
> [!NOTE]
|
||||
> You can skip running freeCodeCamp locally if you are simply editing files, for instance, performing a `rebase`, or resolving `merge` conflicts.
|
||||
If you do run into issues, first perform a web search for your issue and see if it has already been answered. If you cannot find a solution, please search our [GitHub issues](https://github.com/freeCodeCamp/freeCodeCamp/issues) page for a solution and report the issue if it has not yet been reported.
|
||||
|
||||
And as always, feel free to hop on to our [Contributors Chat room on Gitter](https://gitter.im/FreeCodeCamp/Contributors) or [our Discord server](https://discord.gg/6vJYm9V), for quick queries.
|
||||
|
||||
> [!TIP]
|
||||
> You may skip running freeCodeCamp locally if you are simply editing files. For instance, performing a `rebase`, or resolving `merge` conflicts.
|
||||
>
|
||||
> You can always return to this part of the instructions later. You should **only** skip this step if you do not need to run the apps on your machine.
|
||||
>
|
||||
> [Skip to making changes](#making-changes-locally).
|
||||
|
||||
There are currently two methods to run freeCodeCamp locally:
|
||||
|
||||
- Docker (recommended)
|
||||
- Local
|
||||
|
||||
You are required to follow any **one** of the above methods.
|
||||
|
||||
The Docker setup will ideally result in fewer errors during the installation process and aims to have the best developer experience. We use Docker to install and run the additional software dependencies behind the scenes. This should make it a hassle-free and consistent experience across most device/OS types.
|
||||
|
||||
If you are having issues using one method, try using the other. If you do run into issues with either method, first perform a web search for your issue and see if it has already been answered. If you cannot find a solution, please search our GitHub [issues](https://github.com/freeCodeCamp/freeCodeCamp/issues) page for a solution and report the issue if it has not yet been reported.
|
||||
|
||||
And as always, feel free to hop on to our [Contributors Chat room](https://gitter.im/FreeCodeCamp/Contributors), for quick queries.
|
||||
|
||||
### Install prerequisites
|
||||
|
||||
Start by installing the prerequisite software:
|
||||
|
||||
Software required for both Docker and Local builds:
|
||||
|
||||
| Prerequisite | Version | Notes |
|
||||
| ----------------------------- | ------- | -------------------------------------------------------------------- |
|
||||
| [Node.js](http://nodejs.org) | `12.x` | [LTS Schedule](https://github.com/nodejs/Release#release-schedule) |
|
||||
| npm (comes bundled with Node) | `6.x` | Does not have LTS releases, we use the version bundled with Node LTS |
|
||||
|
||||
If Node.js is already installed on your machine, run the following commands to validate the versions:
|
||||
|
||||
```sh
|
||||
node -v
|
||||
npm -v
|
||||
```
|
||||
|
||||
> [!DANGER]
|
||||
> If you have a different version, please install the recommended version. We can only support installation issues for recommended versions. See [troubleshooting](#troubleshooting) for details.
|
||||
|
||||
**Docker Build additional prerequisite:**
|
||||
|
||||
| Prerequisite | Version | Notes |
|
||||
| -------------------------------------------------------------------------- | ---------- | ------------------------------------------------------------------------------------------------------------ |
|
||||
| [Docker CE](https://docs.docker.com/install/) | `Stable` | - |
|
||||
| [Docker Compose](https://docs.docker.com/compose/install/) | `Stable` | Must be installed separately if not using macOS or Windows |
|
||||
| [Docker Toolbox](https://docs.docker.com/toolbox/toolbox_install_windows/) | `v19.03.1` | If using Windows 10 Home, use this instead - instructions [here](how-to-use-docker-on-windows-home.md) |
|
||||
|
||||
**Local Build additional prerequisite:**
|
||||
|
||||
| Prerequisite | Version | Notes |
|
||||
| --------------------------------------------------------------------------------------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| [MongoDB Community Server](https://docs.mongodb.com/manual/administration/install-community/) | `3.6` | [Release Notes](https://docs.mongodb.com/manual/release-notes/), Note: We are currently on `3.6`, an [upgrade is planned](https://github.com/freeCodeCamp/freeCodeCamp/issues/18275). |
|
||||
|
||||
> [!TIP]
|
||||
> We highly recommend updating to the latest stable releases of the software listed above, also known as Long Term Support (LTS) releases.
|
||||
|
||||
### Configuring dependencies
|
||||
|
||||
#### Step 1: Set up the environment variable file
|
||||
|
||||
The default API keys and environment variables are stored in the file `sample.env`. This file needs to be copied to a new file named `.env` that is accessed dynamically during the installation step.
|
||||
|
||||
```sh
|
||||
```console
|
||||
# Create a copy of the "sample.env" and name it ".env".
|
||||
# Populate it with the necessary API keys and secrets:
|
||||
|
||||
@ -186,56 +179,35 @@ copy sample.env .env
|
||||
|
||||
The keys in the `.env` file are _not_ required to be changed to run the app locally. You can leave the default values copied over from `sample.env` as-is.
|
||||
|
||||
Keep in mind if you want to use additional services, you'll have to acquire your own API keys for those services and edit the entries accordingly in the `.env` file.
|
||||
|
||||
**Docker Build:** If using the Docker build and the Docker installation instructed you to use Docker Toolbox (applies to older versions of macOS and Windows), you need to change `DOCKER_HOST_LOCATION` in your `.env` file var to the output from the `docker-machine ip` command. If you use any Docker supported the flavor of Linux or if you use Docker Desktop (new versions of macOS and Windows 10) you can leave `DOCKER_HOST_LOCATION` to the default value.
|
||||
> [!TIP]
|
||||
> Keep in mind if you want to use services like Auth0 or Algolia, you'll have to acquire your own API keys for those services and edit the entries accordingly in the `.env` file.
|
||||
|
||||
#### Step 2: Install dependencies
|
||||
|
||||
This step will install the dependencies required for the application to run:
|
||||
|
||||
**Docker Build:**
|
||||
|
||||
```shell
|
||||
npm run docker:run-once
|
||||
```
|
||||
|
||||
There is a lot to install, this step may take a few minutes.
|
||||
|
||||
You will also need to install a few npm packages outside of Docker. You can skip this step if you are only running the app locally and will not use git.
|
||||
|
||||
```shell
|
||||
```console
|
||||
npm ci
|
||||
```
|
||||
|
||||
All of the above needs to be run only the first time you set up the local dev environment.
|
||||
#### Step 3: Start MongoDB and seed the database
|
||||
|
||||
**Local Build:**
|
||||
Before you can run the application locally, you will need to start the MongoDB service.
|
||||
|
||||
```sh
|
||||
# Install NPM dependencies
|
||||
npm ci
|
||||
```
|
||||
|
||||
#### Step 3: Start MongoDB and seed the database (Local build only)
|
||||
|
||||
This step applies to the Local build only; if you are using the Docker build please skip to Step 4.
|
||||
|
||||
Unless you have MongoDB running in a setup different than the default, the URL stored as the `MONGOHQ_URL` value in the `.env` file should work fine. If you are using a custom configuration, modify this value as needed.
|
||||
|
||||
Before you can run the application locally, you will need to start the MongoDB service:
|
||||
> [!NOTE]
|
||||
> Unless you have MongoDB running in a setup different than the default, the URL stored as the `MONGOHQ_URL` value in the `.env` file should work fine. If you are using a custom configuration, modify this value as needed.
|
||||
|
||||
Start the MongoDB server in a separate terminal:
|
||||
|
||||
- On macOS & Ubuntu:
|
||||
|
||||
```sh
|
||||
```console
|
||||
mongod
|
||||
```
|
||||
|
||||
- On Windows, you must specify the full path to the `mongod` binary
|
||||
|
||||
```sh
|
||||
```console
|
||||
"C:\Program Files\MongoDB\Server\3.6\bin\mongod"
|
||||
```
|
||||
|
||||
@ -246,7 +218,7 @@ Start the MongoDB server in a separate terminal:
|
||||
|
||||
Next, let's seed the database. In this step, we run the below command that fills the MongoDB server with some initial data sets that are required by services. These include a few schemas, among other things.
|
||||
|
||||
```sh
|
||||
```console
|
||||
npm run seed
|
||||
```
|
||||
|
||||
@ -254,15 +226,7 @@ npm run seed
|
||||
|
||||
You can now start up the API server and the client applications.
|
||||
|
||||
**Docker Build:**
|
||||
|
||||
```shell
|
||||
npm run docker:develop
|
||||
```
|
||||
|
||||
**Local Build:**
|
||||
|
||||
```sh
|
||||
```console
|
||||
npm run develop
|
||||
```
|
||||
|
||||
@ -274,7 +238,7 @@ This single command will fire up all the services, including the API server and
|
||||
> [!TIP]
|
||||
> The API Server serves APIs at `http://localhost:3000`. The Gatsby app serves the client application at `http://localhost:8000`
|
||||
|
||||
If you visit <http://localhost:3000/explorer> you should see the available APIs.
|
||||
> If you visit <http://localhost:3000/explorer> you should see the available APIs.
|
||||
|
||||
## Sign in with a local user
|
||||
|
||||
@ -282,45 +246,15 @@ Your local setup automatically populates a local user in the database. Clicking
|
||||
|
||||
However, accessing the user portfolio page is a little tricky. In development, Gatsby takes over serving the client-side pages and hence you will get a `404` page for the user portfolio when working locally.
|
||||
|
||||
Simply clicking the `Preview Custom 404 Page` button will forward you to the correct page.
|
||||
Simply clicking the **"Preview Custom 404 Page"** button will forward you to the correct page.
|
||||
|
||||

|
||||
|
||||
## Quick commands reference
|
||||
|
||||
A quick reference to the commands that you will need when working locally.
|
||||
|
||||
**Docker Build:**
|
||||
|
||||
| command | description |
|
||||
| ----------------------------------------------------- | ----------------------------------------------------------------------------------- |
|
||||
| `npm run docker:init` | Prepare containers for installation of dependencies. |
|
||||
| `npm run docker:install` | Install / re-install all dependencies and bootstraps the different services. |
|
||||
| `npm run docker:seed` | Parse all the challenge markdown files and inserts them into MongoDB. |
|
||||
| `npm run docker:develop` | Start the freeCodeCamp API Server and Client Applications. |
|
||||
| `npm run docker:test:init` | Bootstrap the test container, necessary for testing in docker. |
|
||||
| `npm run docker:test -- -c "npm run test"` | Run all JS tests in the system, including client, server, lint and challenge tests. |
|
||||
| `npm run docker:test -- -c "npm run test:curriculum"` | Run the curriculum test suite. |
|
||||
| `npm run docker:test -- -c "npm run test:client"` | Run the client test suite. |
|
||||
| `npm run docker:test -- -c "npm run test:server"` | Run the server test suite. |
|
||||
| `npm run docker:clean` | Uninstall all dependencies and cleans up caches. |
|
||||
|
||||
**Local Build:**
|
||||
|
||||
| command | description |
|
||||
| -------------------------------------------------------------- | ----------------------------------------------------------------------------------- |
|
||||
| `npm ci` | Installs / re-install all dependencies and bootstraps the different services. |
|
||||
| `npm run seed` | Parses all the challenge markdown files and inserts them into MongoDB. |
|
||||
| `npm run develop` | Starts the freeCodeCamp API Server and Client Applications. |
|
||||
| `npm test` | Run all JS tests in the system, including client, server, lint and challenge tests. |
|
||||
| `npm run test:client` | Run the client test suite. |
|
||||
| `npm run test:curriculum` | Run the curriculum test suite. |
|
||||
| `npm run test:curriculum --block='Basic HTML and HTML5'` | Test a specific Block. |
|
||||
| `npm run test:curriculum --superblock='responsive-web-design'` | Test a specific SuperBlock. |
|
||||
| `npm run test-curriculum-full-output` | Run the curriculum test suite, without bailing after the first error |
|
||||
| `npm run test:server` | Run the server test suite. |
|
||||
| `npm run e2e` | Run the Cypress end to end tests. |
|
||||
| `npm run clean` | Uninstalls all dependencies and cleans up caches. |
|
||||
<details>
|
||||
<summary>
|
||||
How to sign in when working locally (screenshot)
|
||||
</summary>
|
||||
<br>
|
||||
<img src="https://user-images.githubusercontent.com/29990697/71541249-f63cdf00-2923-11ea-8a85-cefb6f9c9977.gif" alt="How to sign in when working locally">
|
||||
</details>
|
||||
|
||||
## Making changes locally
|
||||
|
||||
@ -330,13 +264,13 @@ Follow these steps:
|
||||
|
||||
1. Validate that you are on the `master` branch:
|
||||
|
||||
```sh
|
||||
```console
|
||||
git status
|
||||
```
|
||||
|
||||
You should get an output like this:
|
||||
|
||||
```sh
|
||||
```console
|
||||
On branch master
|
||||
Your branch is up-to-date with 'origin/master'.
|
||||
|
||||
@ -345,7 +279,7 @@ Follow these steps:
|
||||
|
||||
If you are not on master or your working directory is not clean, resolve any outstanding files/commits and checkout `master`:
|
||||
|
||||
```sh
|
||||
```console
|
||||
git checkout master
|
||||
```
|
||||
|
||||
@ -360,25 +294,25 @@ Follow these steps:
|
||||
|
||||
Update your local copy of the freeCodeCamp upstream repository:
|
||||
|
||||
```sh
|
||||
```console
|
||||
git fetch upstream
|
||||
```
|
||||
|
||||
Hard reset your master branch with the freeCodeCamp master:
|
||||
|
||||
```sh
|
||||
```console
|
||||
git reset --hard upstream/master
|
||||
```
|
||||
|
||||
Push your master branch to your origin to have a clean history on your fork on GitHub:
|
||||
|
||||
```sh
|
||||
```console
|
||||
git push origin master --force
|
||||
```
|
||||
|
||||
You can validate your current master matches the upstream/master by performing a diff:
|
||||
|
||||
```sh
|
||||
```console
|
||||
git diff upstream/master
|
||||
```
|
||||
|
||||
@ -390,7 +324,7 @@ Follow these steps:
|
||||
|
||||
Check that you are on `master` as explained previously, and branch off from there:
|
||||
|
||||
```sh
|
||||
```console
|
||||
git checkout -b fix/update-guide-for-xyz
|
||||
```
|
||||
|
||||
@ -414,13 +348,13 @@ Follow these steps:
|
||||
|
||||
7. Check and confirm the files you are updating:
|
||||
|
||||
```sh
|
||||
```console
|
||||
git status
|
||||
```
|
||||
|
||||
This should show a list of `unstaged` files that you have edited.
|
||||
|
||||
```sh
|
||||
```console
|
||||
On branch feat/documentation
|
||||
Your branch is up to date with 'upstream/feat/documentation'.
|
||||
|
||||
@ -439,25 +373,25 @@ Follow these steps:
|
||||
|
||||
In this step, you should only mark files that you have edited or added yourself. You can perform a reset and resolve files that you did not intend to change if needed.
|
||||
|
||||
```sh
|
||||
```console
|
||||
git add path/to/my/changed/file.ext
|
||||
```
|
||||
|
||||
Or you can add all the `unstaged` files to the staging area:
|
||||
|
||||
```sh
|
||||
```console
|
||||
git add .
|
||||
```
|
||||
|
||||
Only the files that were moved to the staging area will be added when you make a commit.
|
||||
|
||||
```sh
|
||||
```console
|
||||
git status
|
||||
```
|
||||
|
||||
Output:
|
||||
|
||||
```sh
|
||||
```console
|
||||
On branch feat/documentation
|
||||
Your branch is up to date with 'upstream/feat/documentation'.
|
||||
|
||||
@ -472,7 +406,7 @@ Follow these steps:
|
||||
|
||||
Now, you can commit your changes with a short message like so:
|
||||
|
||||
```sh
|
||||
```console
|
||||
git commit -m "fix: my short commit message"
|
||||
```
|
||||
|
||||
@ -504,7 +438,7 @@ Follow these steps:
|
||||
|
||||
9. If you realise that you need to edit a file or update the commit message after making a commit you can do so after editing the files with:
|
||||
|
||||
```sh
|
||||
```console
|
||||
git commit --amend
|
||||
```
|
||||
|
||||
@ -512,7 +446,7 @@ Follow these steps:
|
||||
|
||||
10. Next, you can push your changes to your fork:
|
||||
|
||||
```sh
|
||||
```console
|
||||
git push origin branch/name-here
|
||||
```
|
||||
|
||||
@ -520,49 +454,85 @@ Follow these steps:
|
||||
|
||||
After you've committed your changes, check here for [how to open a Pull Request](how-to-open-a-pull-request.md).
|
||||
|
||||
## Quick commands reference
|
||||
|
||||
A quick reference to the commands that you will need when working locally.
|
||||
|
||||
| command | description |
|
||||
| -------------------------------------------------------------- | ----------------------------------------------------------------------------------- |
|
||||
| `npm ci` | Installs / re-install all dependencies and bootstraps the different services. |
|
||||
| `npm run seed` | Parses all the challenge markdown files and inserts them into MongoDB. |
|
||||
| `npm run develop` | Starts the freeCodeCamp API Server and Client Applications. |
|
||||
| `npm test` | Run all JS tests in the system, including client, server, lint and challenge tests. |
|
||||
| `npm run test:client` | Run the client test suite. |
|
||||
| `npm run test:curriculum` | Run the curriculum test suite. |
|
||||
| `npm run test:curriculum --block='Basic HTML and HTML5'` | Test a specific Block. |
|
||||
| `npm run test:curriculum --superblock='responsive-web-design'` | Test a specific SuperBlock. |
|
||||
| `npm run test-curriculum-full-output` | Run the curriculum test suite, without bailing after the first error |
|
||||
| `npm run test:server` | Run the server test suite. |
|
||||
| `npm run e2e` | Run the Cypress end to end tests. |
|
||||
| `npm run clean` | Uninstalls all dependencies and cleans up caches. |
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Issues with installing the recommended prerequisites
|
||||
|
||||
We regularly develop on the latest or most popular operating systems like macOS 10.12 or later, Ubuntu 16.04 or later and Windows 10. It is recommended to research your specific issue on resources such as Google, Stack Overflow and Stack Exchange. There is a good chance that someone has faced the same issue and there is already an answer to your specific query.
|
||||
We regularly develop on the latest or most popular operating systems like macOS 10.15 or later, Ubuntu 18.04 or later and Windows 10 (with WSL2).
|
||||
|
||||
It is recommended to research your specific issue on resources such as Google, Stack Overflow and Stack Exchange. There is a good chance that someone has faced the same issue and there is already an answer to your specific query.
|
||||
|
||||
If you are on a different OS and/or are still running into issues, see [getting help](#getting-help).
|
||||
|
||||
**Please avoid creating GitHub issues for prerequisite issues. They are out of the scope of this project.**
|
||||
> [!WARNING]
|
||||
>
|
||||
> Please avoid creating GitHub issues for prerequisite issues. They are out of the scope of this project.
|
||||
|
||||
### Issues with the UI, Fonts, etc.
|
||||
### Issues with the UI, Fonts, build errors etc.
|
||||
|
||||
If the app launches but you are encountering UI errors such as fonts not being loaded or the code editor not displaying properly, see the following depending on your local setup:
|
||||
If you face issues with the UI, Fonts or see builds errors a cleanup can be useful:
|
||||
|
||||
**Docker Build:**
|
||||
|
||||
```sh
|
||||
# We use a mono repo and have multiple components (server, client, tools, plugins, etc.)
|
||||
# Use this command to clean up all dependencies in all of the components
|
||||
npm run docker:clean
|
||||
|
||||
# Reinstall npm packages
|
||||
npm run docker:install
|
||||
|
||||
# Seed the database
|
||||
npm run docker:seed
|
||||
|
||||
# Restart the application
|
||||
npm run docker:develop
|
||||
```
|
||||
|
||||
**Local Build:**
|
||||
|
||||
```sh
|
||||
```console
|
||||
npm run clean
|
||||
npm ci
|
||||
npm run seed
|
||||
npm run develop
|
||||
```
|
||||
|
||||
OR
|
||||
|
||||
Use the shortcut
|
||||
|
||||
```
|
||||
npm run clean-and-develop
|
||||
```
|
||||
|
||||
If you continue to face issues with the build, cleaning up the workspace is recommend.
|
||||
|
||||
Use `git clean` in interative mode:
|
||||
|
||||
```
|
||||
git clean -ifdX
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>
|
||||
How to clean git untracked files (screenshot)
|
||||
</summary>
|
||||
<br>
|
||||
<img src="https://user-images.githubusercontent.com/1884376/94270515-ca579400-ff5d-11ea-8ff1-152cade31654.gif" alt="How to clean git untracked files">
|
||||
</details>
|
||||
|
||||
### Issues with API, Login, Challenge Submissions, etc.
|
||||
|
||||
If you can't sign in, and instead you see a banner with an error message that it will be reported to freeCodeCamp, please double-check that your local port 3000 is not in use by a different program.
|
||||
If you can't sign in, and instead you see a banner with an error message that it will be reported to freeCodeCamp, please double-check that your local port `3000` is not in use by a different program.
|
||||
|
||||
**On Linux / macOS / WSL on Windows - From Terminal:**
|
||||
|
||||
```console
|
||||
netstat -ab | grep "3000"
|
||||
|
||||
tcp4 0 0 0.0.0.0:3000 DESKTOP LISTEN
|
||||
```
|
||||
|
||||
**On Windows - From Elevated PowerShell:**
|
||||
|
||||
@ -572,15 +542,11 @@ netstat -ab | Select-String "3000"
|
||||
TCP 0.0.0.0:3000 DESKTOP LISTENING
|
||||
```
|
||||
|
||||
**On Linux/macOS - From Terminal:**
|
||||
### Issues installing dependencies
|
||||
|
||||
```sh
|
||||
netstat -ab | grep "3000"
|
||||
If you get errors while installing the dependencies, please make sure that you are not in a restricted network or your firewall settings do not prevent you from accessing resources.
|
||||
|
||||
tcp4 0 0 0.0.0.0:3000 DESKTOP LISTEN
|
||||
```
|
||||
|
||||
If you get errors while installing the dependencies, please make sure that you are not in a restricted network or your firewall settings do not prevent you from accessing resources. One solution would be to use a VPN service if possible and allowed in your environment.
|
||||
The first time setup can take a while depending on your network bandwidth. Be patient, and if you are still stuck we recommed using GitPod instead of an offline setup.
|
||||
|
||||
## Getting Help
|
||||
|
||||
|
@ -1,240 +1,130 @@
|
||||
# Setting up WSL for Working with freeCodeCamp Locally
|
||||
# Set up freeCodeCamp on Windows Subsystem for Linux (WSL)
|
||||
|
||||
> [!NOTE]
|
||||
> Requirements:
|
||||
> Before you follow these instructions make sure your system meets the requirements
|
||||
>
|
||||
> **WSL 1**: Windows 10 64-bit, version 1607
|
||||
> **WSL 2**: Windows 10 64-bit (Version 2004, Build 19041 or higher) - available for all distributions including Windows 10 Home.
|
||||
>
|
||||
> **WSL 2**: Windows 10 64-bit, version 2004, Build 19041 or higher
|
||||
> **Docker Desktop for Windows**: See respective requirements for [Windows 10 Pro](https://docs.docker.com/docker-for-windows/install/#system-requirements) and [Windows 10 Home](https://docs.docker.com/docker-for-windows/install-windows-home/#system-requirements)
|
||||
|
||||
Follow these guidelines for setting up WSL to set up freeCodeCamp locally.
|
||||
This guide covers some common steps with the setup of WSL2. Once some of the common issues with WSL2 are addressed, you should be able to follow the our local setup guide to work with freeCodeCamp on Windows running a WSL distro like Ubuntu.
|
||||
|
||||
This guide covers some common issues encountered with the setup of WSL.
|
||||
## Enable WSL
|
||||
|
||||
## Enable WSL & Download a Distro
|
||||
Follow the instructions on the [official documentation](https://docs.microsoft.com/en-us/windows/wsl/install-win10) to install WSL1 and followed by upgrading to WSL2.
|
||||
|
||||
1) Follow the instructions given in the documentation by Microsoft to install WSL2 (Recommended Distro: Ubuntu18.04):
|
||||
[Installing WSL2](https://docs.microsoft.com/en-us/windows/nodejs/setup-on-wsl2#install-windows-10-insider-preview-build)
|
||||
## Install Ubuntu
|
||||
|
||||
1. We recommended using Ubuntu-18.04 or above with WSL2.
|
||||
|
||||
> [!NOTE]
|
||||
> You can download a different distro, but the setup might differ.
|
||||
>
|
||||
> While you may use other non-debian based distros, they all come with their own gotchas and are beyond the scope of this guide.
|
||||
|
||||
2) On the same page, ensure to follow the instructions about installing Nodejs and NPM through the NVM.
|
||||
2. Update the dependencies for the OS
|
||||
|
||||
**NOTE:** If you encounter errors on step 2, skip to the next step, and return when prompted
|
||||
```console
|
||||
sudo apt update
|
||||
sudo apt upgrade -y
|
||||
|
||||
## Setting Up Git
|
||||
|
||||
It is likely you will be unable to clone your fork of freeCodeCamp, without running these steps, but there is no harm in trying. Just follow the instructions on [the Contributors Site](https://contribute.freecodecamp.org/#/how-to-setup-freecodecamp-locally).
|
||||
|
||||
If you run into any issues related to Git, follow through with one of the following alternatives. If that does not resolve the issue, try the next alternative:
|
||||
|
||||
### ALTERNATIVE 1 - Use apt-get to Install the Latest Version of Git
|
||||
|
||||
1) Update your distribution:
|
||||
|
||||
```sh
|
||||
sudo apt update && sudo apt upgrade
|
||||
# cleanup
|
||||
sudo apt autoremove -y
|
||||
```
|
||||
|
||||
2) Download and install Git:
|
||||
## Set up Git
|
||||
|
||||
```sh
|
||||
sudo apt install git
|
||||
Git comes pre-installed with Ubuntu 18.04, verify that your Git version with `git --version`.
|
||||
|
||||
```output
|
||||
~
|
||||
❯ git --version
|
||||
git version 2.25.1
|
||||
```
|
||||
|
||||
3) Verify the installed version:
|
||||
(Optional but recommended) You can now proceed to [setting up your ssh keys](https://help.github.com/articles/generating-an-ssh-key) with GitHub.
|
||||
|
||||
```sh
|
||||
git --version
|
||||
## Installing a Code Editor
|
||||
|
||||
We highly recommend installing [Visual Studio Code](https://code.visualstudio.com) on Windows 10. It has great support for WSL and automatically installs all the necessary extensions on your WSL distro.
|
||||
|
||||
Essentially, you will edit and store your code on Ubuntu-18.04 with VS Code installed on Windows.
|
||||
|
||||
## Installing Docker Desktop
|
||||
|
||||
**Docker Desktop for Windows** allows you to install and run database and services like MongoDB, NGINX, etc. This is useful to avoid common pitfalls with installing MongoDB or other services directly on Windows or WSL2.
|
||||
|
||||
Follow the instructuction on the [official documentation](https://docs.docker.com/docker-for-windows/install) and install Docker Desktop for your Windows distribution.
|
||||
|
||||
There are some minimum hardware requirements for the best experience.
|
||||
|
||||
## Configure Docker Desktop for WSL
|
||||
|
||||
Once Docker Desktop is installed, [follow these instructions](https://docs.docker.com/docker-for-windows/wsl) and configure it to use the Ubuntu-18.04 installation as a backend.
|
||||
|
||||
This makes it so that the containers run on WSL side instead of running on Windows. You will be able to access the services over `http://localhost` on both Windows and Ubuntu.
|
||||
|
||||
## Install MongoDB from Docker Hub
|
||||
|
||||
Once you have configured Docker Desktop to work with WSL2, follow these steps to start a MongoDB service:
|
||||
|
||||
1. Launch a new Ubuntu-18.04 terminal
|
||||
|
||||
2. Pull `MongoDB 3.6` from dockerhub
|
||||
|
||||
```console
|
||||
docker pull mongo:3
|
||||
```
|
||||
|
||||
### ALTERNATIVE 2 - Use SSH to Work on Your Fork
|
||||
3. Start the MongoDB service at port `27017`, and configure it to run automatically on system restarts
|
||||
|
||||
1) Follow the instructions on [GitHub](https://help.github.com/en/github/authenticating-to-github/connecting-to-github-with-ssh) to generate a new SSH key, and add it to your account.
|
||||
|
||||
2) If you encounter an error similar to this, perform the rest of this alternative:
|
||||
|
||||
>ssh: connect to host `github.com` port 22: Connection refused
|
||||
|
||||
3) `cd` into the `.ssh` folder, and create a config file:
|
||||
|
||||
```sh
|
||||
cd ~/.ssh && touch config
|
||||
```console
|
||||
docker run -it \
|
||||
-v mongodata:/data/db \
|
||||
-p 27017:27017 \
|
||||
--name mongodb \
|
||||
--restart unless-stopped \
|
||||
-d mongo:3
|
||||
```
|
||||
|
||||
4) Open the file with your favourite text editor:
|
||||
4. You can now access the service from both Windows or Ubuntu at `mongodb://localhost:27017`.
|
||||
|
||||
Open VS Code: `code .`
|
||||
## Installing Node.js and npm
|
||||
|
||||
Alternatively, open the folder in the explorer, and use the Windows built-in text editor: `explorer.exe .`
|
||||
We recommend you install the LTS release for Node.js with a node version manager - [nvm](https://github.com/nvm-sh/nvm#installing-and-updating).
|
||||
|
||||
> [!NOTE]
|
||||
> This command works for VS Code, and you might be asked to install an extension for this to work
|
||||
Once installed use these commands to install and use the Node.js version as needed
|
||||
|
||||
5) Add this to the config file to allow GitHub's domain through your firewall:
|
||||
```console
|
||||
nvm install --lts
|
||||
|
||||
```
|
||||
# GitHub Account
|
||||
Host github.com
|
||||
HostName ssh.github.com
|
||||
Port 443
|
||||
PreferredAuthentications publickey
|
||||
IdentityFile ./id_rsa.pub
|
||||
# OR
|
||||
# nvm install <version>
|
||||
|
||||
nvm install 14
|
||||
|
||||
# Usage
|
||||
# nvm use <version>
|
||||
|
||||
nvm use 12
|
||||
```
|
||||
|
||||
> [!DANGER]
|
||||
> Provided you have not deviated from the default setup, the `IdentityFile` will be as above.
|
||||
Node.js comes bundled with `npm`, you can update to the latest versions of `npm` with:
|
||||
|
||||
6) Return to the GitHub SSH setup to test your connection
|
||||
|
||||
### ALTERNATIVE 3 - Last Resort
|
||||
|
||||
1) Install build-essential, fakeroot and dpkg-dev using the following command:
|
||||
|
||||
```sh
|
||||
sudo apt-get install build-essential fakeroot dpkg-dev
|
||||
```console
|
||||
npm install -g npm@latest
|
||||
```
|
||||
|
||||
2) Create a directory named git-rectify in the home folder using the following command:
|
||||
## Set up freeCodeCamp locally
|
||||
|
||||
```sh
|
||||
mkdir ~/git-rectify
|
||||
```
|
||||
Now that you have installed the pre-requisites, follow [our local setup guide](https://contribute.freecodecamp.org/#/how-to-setup-freecodecamp-locally) to clone, install and setup freeCodeCamp locally on your machine.
|
||||
|
||||
3) Change directory to the `get-rectify` directory and get the git source files:
|
||||
> [!WARNING]
|
||||
>
|
||||
> Please note, at this time the set up for Cypress tests (and related GUI needs) are a work in progress. You should still be able to work on most of the codebase.
|
||||
|
||||
```sh
|
||||
cd ~/git-rectify
|
||||
```
|
||||
## Useful Links
|
||||
|
||||
4) This command creates a copy of your `sources.list` file, for safe keeping.
|
||||
|
||||
```sh
|
||||
sudo cp /etc/apt/sources.list /etc/apt/sources.list~
|
||||
```
|
||||
|
||||
> [!NOTE]
|
||||
> If you encounter any errors with the directory not existing, or the file being copied to already existing, follow this step:
|
||||
|
||||
- Enter the directory
|
||||
|
||||
```sh
|
||||
cd ~/git-rectify/etc/apt
|
||||
```
|
||||
|
||||
- Open your file explorer
|
||||
|
||||
```sh
|
||||
explorer.exe .
|
||||
```
|
||||
|
||||
- Manually create a copy of the `sources.list` file, and save it with a different name.
|
||||
- Change directory back to `git-rectify`
|
||||
|
||||
```sh
|
||||
cd ../..
|
||||
```
|
||||
|
||||
Continue from these steps:
|
||||
|
||||
5) Now, you need to uncomment the sources in the ../ file
|
||||
|
||||
```sh
|
||||
sudo sed -Ei 's/^# deb-src /deb-src /' /etc/apt/sources.list
|
||||
```
|
||||
|
||||
6) Get the source files from the list:
|
||||
|
||||
```sh
|
||||
apt-get source git
|
||||
```
|
||||
|
||||
7) Install all the git dependencies:
|
||||
|
||||
```sh
|
||||
sudo apt-get build-dep git
|
||||
```
|
||||
|
||||
8) Install libcurl with all development files:
|
||||
|
||||
```sh
|
||||
sudo apt-get install libcurl4-openssl-dev
|
||||
```
|
||||
|
||||
9) Unpack all the source packages using the following command:
|
||||
|
||||
> [!NOTE]
|
||||
> The name `git_2.17.1-1ubuntu0.1` could vary based on the latest version. So look into the directory for the correct version name.
|
||||
|
||||
```sh
|
||||
dpkg-source -x git_2.17.1-1ubuntu0.1
|
||||
```
|
||||
|
||||
10) Change directory in to `git_2.17.1` folder and open the control file located inside debian folder (git_2.17.1/debian/control) in a text editor. Replace all the occurrences of _“libcurl4-gnutls-dev”_ to _“libcurl4-openssl-dev”_.
|
||||
|
||||
11) Also open _“debian/rules”_ file and delete the line _“TEST=test”_
|
||||
|
||||
12) Build the package files using the following command.
|
||||
|
||||
```sh
|
||||
sudo dpkg-buildpackage -rfakeroot -b
|
||||
```
|
||||
|
||||
13) Install the package:
|
||||
|
||||
```sh
|
||||
sudo dpkg -i git_2.17.1_amd64.deb
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Setup MongoDB on WSL
|
||||
|
||||
> [!NOTE]
|
||||
> Remember to return to **step 2** of [Enabling WSL](#enable-wsl-amp-download-a-distro), if you skipped it.
|
||||
|
||||
You might find that setting up MongoDB Server on Windows to be the easiest, but connecting to the server from WSL might lead to permission denied errors.
|
||||
|
||||
1) Follow the instructions on the [Microsoft Documentation](https://docs.microsoft.com/en-us/windows/nodejs/databases) for setting up MongoDB on WSL.
|
||||
|
||||
If you encounter any errors similar to this:
|
||||
>NonExistentPath: Data directory /data/db not found.
|
||||
|
||||
Follow these steps:
|
||||
|
||||
2) Create the path for the database:
|
||||
|
||||
```sh
|
||||
sudo mkdir -p /data/db
|
||||
```
|
||||
|
||||
3) Try to start the server again. If you encounter a `permission denied` error, start the server with:
|
||||
|
||||
```sh
|
||||
sudo mongod
|
||||
```
|
||||
|
||||
If you encounter another `path` error, manually tell MongoDB where to store the database:
|
||||
|
||||
```sh
|
||||
mongod --dbpath=data/db
|
||||
```
|
||||
|
||||
> [!NOTE]
|
||||
> The path `data/db` must exist beforehand.
|
||||
|
||||
## Other Possible Issues
|
||||
|
||||
> ERR! build error gyp ERR! stack Error: not found: make
|
||||
|
||||
- Install missing dependencies
|
||||
|
||||
```sh
|
||||
sudo apt-get install -yq /
|
||||
gconf-service libasound2 libatk1.0-0 libatk-bridge2.0-0 libc6 libcairo2 libcups2 libdbus-1-3 /
|
||||
libexpat1 libfontconfig1 libgcc1 libgconf-2-4 libgdk-pixbuf2.0-0 libglib2.0-0 libgtk-3-0 libnspr4 /
|
||||
libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 libx11-xcb1 libxcb1 libxcomposite1libxcursor1 /
|
||||
libxdamage1 libxext6 libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 ca-certificates /
|
||||
fonts-liberation libappindicator1 libnss3 lsb-release xdg-utils wget
|
||||
```
|
||||
- [A WSL2 Dev Setup with Ubuntu 20.04, Node.js, MongoDB, VS Code and Docker](https://devlog.sh/wsl2-dev-setup-with-ubuntu-nodejs-mongodb-and-docker) - an article by Mrugesh Mohapatra (Staff Developer at freeCodeCamp.org)
|
||||
- Frequently asked questions on:
|
||||
- [Windows Subsystem for Linux](https://docs.microsoft.com/en-us/windows/wsl/faq)
|
||||
- [Docker Desktop for Windows](https://docs.docker.com/docker-for-windows/faqs)
|
||||
|
@ -1,13 +1,11 @@
|
||||
# How to work on the docs theme
|
||||
|
||||
> [!NOTE]
|
||||
> **You do not need to setup anything locally for working on the documentation content.**
|
||||
> A quick reminder that you do not need to setup anything for working on the content for the documentation site.
|
||||
>
|
||||
> To work on the contributing guidelines, you can edit or add files in the `docs` directory [available here](https://github.com/freeCodeCamp/freeCodeCamp/tree/master/docs). When your changes are merged, it will be made available automatically at the documentation site.
|
||||
|
||||
## About the documentation site
|
||||
|
||||
While you do not need to generate the documentation site locally, sometimes it may be required for instance if you are working on the site theme or a feature for the site.
|
||||
## Structure of the docs website
|
||||
|
||||
The site is generated using [`docsify`](https://docsify.js.org), and served using GitHub pages.
|
||||
|
||||
@ -16,8 +14,8 @@ Typically you would not need to change any configuration or build the site local
|
||||
- The homepage's source for this site is available in [`docs/index.html`](index.html).
|
||||
- We serve this file as a SPA using `docsify` and GitHub Pages.
|
||||
- The `docsify` script generates the content of `markdown` files in `docs` directory on demand.
|
||||
- The homepage is generated from the [`index.md`](index.md).
|
||||
- the sidebar navigation is generated from [`components/sidebar.md`](components/sidebar.md).
|
||||
- The homepage is generated from the [`_coverpage.md`](_coverpage.md).
|
||||
- the sidebar navigation is generated from [`_sidebar.md`](_sidebar.md).
|
||||
|
||||
## Serving the documentation site locally
|
||||
|
||||
|
@ -1,10 +0,0 @@
|
||||
<!--
|
||||
|
||||
This file should not be translated.
|
||||
|
||||
-->
|
||||
|
||||
> Documentation for other languages if available can be found in their respective directories.
|
||||
>
|
||||
> **Note:** Translations may not be up-to-date with their [English versions](/docs).
|
||||
|
@ -1,135 +0,0 @@
|
||||
<!-- do not translate this -->
|
||||
| [Read these guidelines in other languages](/docs/i18n-languages) |
|
||||
|-|
|
||||
<!-- do not translate this -->
|
||||
|
||||
<div dir="rtl" style="direction: rtl" markdown="1">
|
||||
|
||||
# قواعد المساهمة
|
||||
|
||||
مرحبا! 👋
|
||||
|
||||
إن مشروع freeCodeCamp.org هو مشروع قائم بسبب جهود الآلاف من المتطوعين الجيدين! نحن نشعر بالأمتنان لتطوعك, و نحن سعيدين بإنضمامك لنا!
|
||||
|
||||
نحن نطبق بشدة [القواعد السلوكية](https://www.freecodecamp.org/code-of-conduct). أقرأ هذه المقالة جيدا, إنها مجرد 196 كلمة.
|
||||
|
||||
🎉
|
||||
|
||||
## بعض الطرق المساهمة
|
||||
|
||||
1. [تطوع لهذا الcodebase](#تطوع-لهذا-الcodebase). ساعد في إعداد [مقالات الدليل](https://guide.freecodecamp.org/), [تحديات الcoding](https://learn.freecodecamp.org/), أو تشخيص المشاكل في برنامج التعليم.
|
||||
|
||||
2. ساعد المخيمين (المستخدمين) على [المنتدى العام](https://forum.freecodecamp.org/). [أجب عن أسئلتهم](https://forum.freecodecamp.org/?max_posts=1) او [أعطهم رأيك على مشاريعهم](https://forum.freecodecamp.org/c/project-feedback?max_posts=1)
|
||||
|
||||
3. ساعد في إضافة ترجمة إلى مقاطع الفيديو على [قناتنا على الYouTube](https://www.youtube.com/channel/UC8butISFwT-Wl7EV0hUK0BQ/videos)
|
||||
|
||||
## تطوع لهذا الcodebase
|
||||
|
||||
لدينا codebase ضخمة جدا مفتوحة المصدر مؤلفة من الآلاف من [تحديات البرمجة](https://learn.freecodecamp.org) و [مقالات الدليل](https://guide.freecodecamp.org).
|
||||
|
||||
يمكنك المساعدة عن طريق:
|
||||
|
||||
- [📝 القيام بالأبحاث و كتابة و تحديث مقالات الدليل](#القيام-بالأبحاث-و-كتابة-و-تحديث-مقالات-الدليل)
|
||||
|
||||
- [💻 إنشاء و تحديث و إصلاح الأخطاء في تحديات البرمجة](#إنشاء-و-تحديث-و-إصلاح-الأخطاء-في-تحديات-البرمجة)
|
||||
|
||||
- [🌐 المساعدة في ترجمة مقالات الدليل و تحديات البرمجة](#المساعدة-في-ترجمة-مقالات-الدليل-و-تحديات-البرمجة)
|
||||
|
||||
- [🛠 ساعد في إصلاح الأخطاء في برنامج تعليم freeCodeCamp.org](#ساعد-في-إصلاح-الأخطاء-في-برنامج-تعليم-freecodecamporg)
|
||||
|
||||
### القيام بالأبحاث و كتابة و تحديث مقالات الدليل
|
||||
|
||||
**ما هي مقالات الدليل؟**
|
||||
|
||||
مقالات الدليل تساعد في الحصول على فهم سريع لفكرة تقنية معينة. المقالات هي عبارة عن شرح قصير و مكتوب بلغة سهلة و التي يمكنك قرائتها قبل البدء في شروحات اكثر تفصيلا.
|
||||
|
||||
على سبيل المثال يمكنك أن تجد [مثالا عن ال HTML Elements هنا](./client/src/pages/html/elements/index.md)
|
||||
|
||||
**عن ماذا يمكنني كتابة مقالة؟**
|
||||
|
||||
نحن نرحب في مساعدتك لكتابة تلك المقالات. ليس عليك أن تكون خبيرا في الموضوع لكي تكتب مقالة - هذه المقالات مفتوحة المصدر, فمثلا لو كتبت شيئا خاطئا, أي متطوع آخر يمكنه اصلاح الخطأ في النهاية
|
||||
|
||||
من أجل المساعدة, قم بإيجاد `stub article` على [موقع الدليل](https://www.freecodecamp.org/guide), أكتب المقالة, ثم أنشئ Pull Request لأستبدال ذلك بمقالتك. إن ال [Pull Requests](https://help.github.com/articles/about-pull-requests/) هو الطريقة التي ستقوم بأستعمالها لأقتراح التعديلات, فهي تسمح للآخرين بالأستعلام عن تعديلاتك و مراجعتها و اعتمادها.
|
||||
|
||||
إذا لم تستطع أن تجد `stub article` حول الموضوع الذي تريد الكتابة عنه, يمكنك ان إنشاء Pull Request تقوم فيه بإنشاء `stub article` الذي يتضمن المسودة التي كتبتها.
|
||||
|
||||
إذا كنت تريد المساعدة في تحسين مقالات الدليل, أقرا [هذه المقالة عن كيفية القيام ذلك](/docs/how-to-work-on-guide-articles.md).
|
||||
|
||||
### إنشاء و تحديث و إصلاح الأخطاء في تحديات البرمجة
|
||||
|
||||
كل التحديات هي مصنوعة من قبل عامة المجتمع, بشكل يضع خبرات عالية من اشخاص مثلك.
|
||||
|
||||
يمكنك المساعدة في زيادة التوسع في التحديات و تعديلها بشكل تصبح أكثر وضوحا. يمكنك تعديل قصص المستخدمين لتجعل الفكرة أفضل, و حتى إزالة القصص المتكررة. يمكنك أيضا تحسين أختبارات التحديات لتجعلها قادرة على أختبار الcode بشكل أفضل و أكثر دقة.
|
||||
|
||||
إذا كنت مهتم في تحسين تلك التحديات, أقرأ [هذه المقالة عن كيفية القيام بذلك](/docs/how-to-work-on-coding-challenges.md).
|
||||
|
||||
### المساعدة في ترجمة مقالات الدليل و تحديات البرمجة
|
||||
|
||||
يمكنك المساعدة في ترجمة مقالات الدليل و تحديات البرمجة إلى لغة يمكنك التكلم بها. حاليا لدينا إصدارات باللغات التالية:
|
||||
|
||||
- [Chinese (中文)](https://github.com/freeCodeCamp/freeCodeCamp/tree/master/curriculum/challenges/chinese)
|
||||
- [Russian (русский)](https://github.com/freeCodeCamp/freeCodeCamp/tree/master/curriculum/challenges/russian)
|
||||
- [Arabic (عربي)](https://github.com/freeCodeCamp/freeCodeCamp/tree/master/curriculum/challenges/arabic)
|
||||
- [Spanish (Español)](https://github.com/freeCodeCamp/freeCodeCamp/tree/master/curriculum/challenges/spanish)
|
||||
- [Portuguese (Português)](https://github.com/freeCodeCamp/freeCodeCamp/tree/master/curriculum/challenges/portuguese)
|
||||
|
||||
نحن نود أن تساعدنا في تحسين جودة هذه الترجمات. الملايين من الأشخاص يستعملون الموقع باللغة الأنكليزية, و نحن نتوقع الملايين الأخرى من المستخدمين أن تستعمل الموقع باللغات الأخرى أيضا.
|
||||
|
||||
### ساعد في إصلاح الأخطاء في برنامج تعليم freeCodeCamp.org
|
||||
|
||||
إن برنامجنا التعليمي يعمل على مجموعة برامج JavaScript حديثة. هناك الكثر من المكونات و الأدوات و المكتبات, منها Node.js و MongoDB و LoopBack و OAuth 2.0 و React و Gatsby و Webpack و المزيد ايضا.
|
||||
|
||||
بشكل عام,
|
||||
|
||||
- لدينا Node.js API server.
|
||||
- مجموعة من برامج المستخدم المبنية باستخدام React.
|
||||
- Script نستعمله من أجل تقييم برامج ال Front-end.
|
||||
|
||||
المشاركة في هذا يتطلب بعض المفاهيم حول ال APIs و ES6 Syntax, و الكثير من الشغف.
|
||||
|
||||
بشكل أساسي, نحن نتوقع معرفة بسيطة معينة حول التقنيات و الأدوات و المكتبات المذكورة سابقا. و مع ذلك, أنت ليس عليك أن تكون خبيرا بهم.
|
||||
|
||||
يمكنك دوما الأستفسار عن أية أسئلة لديك على الissues المتعلقة بالموضوع و نحن سنكون سعيدين بإجابتنا لأستفسارك. في حال شعرت بالأرتياب حول موضوع ما, يمكنك التحدث مع [`@raisedadead`](https://github.com/raisedadead) أو [`@bouncey`](https://github.com/bouncey) من فريق المطورين لدينا لتقديم المساعدة لك.
|
||||
|
||||
إذا كنت تريد المساعدة في تحسين الcodebase لدينا, أقرأ [كيف تقوم بتشغيل البرنامج محليا](/docs/how-to-setup-freecodecamp-locally.md).
|
||||
|
||||
## أسئلة شائعة
|
||||
|
||||
**كيف يمكنني أن أخبر عن مشكلة و التي هي ليست مطروحة؟**
|
||||
|
||||
إذا كنت تظن أنك قد وجدت مشكلة, أقرأ اولا مقالة ["Help I've Found a Bug"](https://forum.freecodecamp.org/t/how-to-report-a-bug/19543) و تتبع الخطوات هناك.
|
||||
|
||||
إذا كنت متيقنا أنها مشكلة جديدة, قم بإنشاء issue جديدة على GitHub. كن متأكدا انها تتضمن أكثر معلومات ممكنة حتى نتمكن من تجريب المشكلة لدينا. لدينا قالب مخصص ليساعدك في ذلك.
|
||||
|
||||
ننوه إلى أن اي issue مفتوحة لأجل طلب المساعدة في تحدي برمجة سوف يتم إقفالها. ذلك لأن استخدام ال issues محصور في مشاكل و مناقشات الcodebase. قم [بطلب المساعدة على المنتدى](https://forum.freecodecamp.org) قبل التبليغ عن المشكلة إن كنت تشعر بالأرتياب.
|
||||
|
||||
**كيف يمكنني أن أبلغ عن مشكلة أمنية؟**
|
||||
|
||||
رجاء لا تقم بإنشاء issue على GitHub للمشاكل المتعلقة بالأمن. بدلا من ذلك أرسل إلى بريدنا الألكتروني `security@freecodecamp.org` و سنقوم بإلقاء نظرة مباشرة.
|
||||
|
||||
**لدي مشكلة في شيئ ما ليس موجودا ضمن هذه المستندات. كيف يمكنني أن أجد المساعدة؟**
|
||||
|
||||
يمكنك الأتسفسار عن أسئلتك عن طريق:
|
||||
|
||||
- [فئة "Contributors" في المنتدى العام](https://forum.freecodecamp.org/c/contributors)
|
||||
- [المتطوعين على غرفة الدردشة في Gitter](https://gitter.im/FreeCodeCamp/Contributors)
|
||||
|
||||
نحن متشوقين لمساعدتك في التطوع لأي من المواضيع التي تريد العمل عليها. كن متأكدا أن تقوم بالبحث على سؤالك قبل طرحه. كن مؤدبا و أنتظر الأجابة. إن المتطوعين و المسؤولين لدينا دائما موجودون لمسعادتك في أية مشكلة لديك.
|
||||
|
||||
**أنا جديد على أستخدام GitHub و حتى على فكرة البرامج مفتوحة المصدر:**
|
||||
|
||||
أقرأ عن [كيفية التطوع للبرامج المفتوحة المصدر](https://github.com/freeCodeCamp/how-to-contribute-to-open-source)
|
||||
|
||||
**ماذا تعني مختلف الطوابع الموجودة على الissues؟**
|
||||
|
||||
إن المسؤولين لدينا يقومون [بتنظيم](https://en.wikipedia.org/wiki/Software_bug#Bug_management) الissues و الPull Requests بحسب الأولوية و الخطورة و عوامل أخرى. يمكنك أن تجد [قاموس المطلحات هنا](https://github.com/freecodecamp/freecodecamp/labels).
|
||||
|
||||
يجب أن تلق نظرة على الissues ذات الطوابع **`Help Wanted`** أو **`first timers only`** من أجل نظرة سريعة على ما هو متوفر و الذي يمكنك العمل عليه. يفضل أن تقوم بالعمل على تلك الissues قبل الأنتقال إلى ما بعد ذلك.
|
||||
|
||||
إن كانت تلك الissues غير واضحة حول ما هو مطلوب فعله, يمكنك أن تسأل في قسم التعليقات على الissue.
|
||||
|
||||
**لقد وجدت خطأ كتابي, هل علي أن أقوم بالتبليغ عنه قبل إنشاء Pull Request؟**
|
||||
|
||||
من أجل أخطاء كتابية و مشاكل مشابهة يمكنك مباشرة أن تقوم بإنشاء Pull Request دون أن تقوم بإنشاء issue مسبقا. إن ال issues هي مخصصة بشكل أكثر للمشاكل الأكبر و المتعلقة بالcode او مشاكل بنيوية في المنهج.
|
||||
|
||||
</div>
|
@ -1,152 +0,0 @@
|
||||

|
||||
[](https://travis-ci.org/freeCodeCamp/freeCodeCamp)
|
||||
[](http://makeapullrequest.com)
|
||||
[](http://www.firsttimersonly.com/)
|
||||
[](https://snyk.io/test/github/freecodecamp/freecodecamp)
|
||||
|
||||
<div dir="rtl" style="direction: rtl" markdown="1">
|
||||
|
||||
## مرحبًا بك في شفرة مصدر freeCodeCamp.org ومنهج مفتوح المصدر!
|
||||
|
||||
[freeCodeCamp.org](https://www.freecodecamp.org) هو مجتمع ودود حيث يمكنك تعلم البرمجة مجانًا. تدار من قبل [منظمة غير ربحية 501 (c) (3)](https://donate.freecodecamp.org) وبدعم من الجهات المانحة لمساعدة ملايين البالغين على التحول إلى تكنولوجيا المعلومات. لقد ساعد مجتمعنا بالفعل أكثر من 10000 شخص في الحصول على وظيفتهم الأولى كمطورين.
|
||||
|
||||
برنامج تطوير الويب الكامل الخاص بنا مجاني تمامًا ويتيح لك الدراسة بالسرعة التي تناسبك. لدينا الآلاف من تحديات التشفير التفاعلية لمساعدتك على تطوير مهاراتك.
|
||||
|
||||
## محتويات
|
||||
|
||||
- [الشهادات](#certifications)
|
||||
- [منصة التعلم](#the-learning-platform)
|
||||
- [الإبلاغ عن خطأ](#found-a-bug)
|
||||
- [الإبلاغ عن مشكلة أمنية](#found-a-security-issue)
|
||||
- [للمساهمة](#contributing)
|
||||
- [رخصة](#license)
|
||||
|
||||
### الشهادات
|
||||
|
||||
يقدم freeCodeCamp.org العديد من شهادات المطورين المجانية. تتضمن كل من هذه الشهادات إنشاءًا إلزاميًا لـ 5 مشاريع تطبيقات ويب ، بالإضافة إلى المئات من تحديات التشفير الاختيارية لمساعدتك في الاستعداد لهذه المشاريع. نحن نقدر أن كل شهادة ستستغرق حوالي 300 ساعة للمبرمج المبتدئ.
|
||||
|
||||
يحتوي كل مشروع من هذه المشاريع الـ 30 في برنامج freeCodeCamp.org على سيناريوهات استخدام رشيقة واختبارات آلية. تساعدك هذه الخطوات في بناء مشروعك تدريجيًا وتضمن التحقق من صحة جميع سيناريوهات المستخدم قبل إرساله.
|
||||
|
||||
يمكنك استخراج مجموعات الاختبار هذه عبر [freeCodeCamp CDN](https://cdn.freecodecamp.org/testable-projects-fcc/v1/bundle.js). بمعنى آخر ، يمكنك بناء هذه المشاريع على مواقع ويب مثل CodePen و Glitch - أو حتى على بيئة التطوير المحلية على جهاز الكمبيوتر الخاص بك.
|
||||
|
||||
بمجرد الحصول على الشهادة ، يمكنك الاحتفاظ بها مدى الحياة. يمكنك الوصول إليها من ملفك الشخصي على LinkedIn أو السيرة الذاتية. عندما ينقر أرباب العمل المحتملين أو العملاء المستقلون على الرابط ، فإنهم يرون شهادتك التي تم التحقق منها.
|
||||
|
||||
الاستثناء الوحيد لهذه القاعدة سيكون في حال اكتشفنا انتهاكات [سياسة الصدق الأكاديمي](https://www.freecodecamp.org/academic-honesty). عندما نقبض على الأشخاص الذين يسرقون بشكل لا لبس فيه (إرسال التعليمات البرمجية أو مشروعات الأشخاص الآخرين دون الاستشهاد بهم) ، نقوم بما يجب على جميع المؤسسات التعليمية الصارمة القيام به ، فإننا نلغي شهاداتهم ونحظر هؤلاء الأشخاص.
|
||||
|
||||
فيما يلي شهاداتنا الست الرئيسية:
|
||||
|
||||
#### 1. شهادة تصميم الويب سريع الاستجابة
|
||||
|
||||
- [مقدمة عن HTML و HTML5](https://learn.freecodecamp.org/responsive-web-design/basic-html-and-html5)
|
||||
- [مقدمة في CSS](https://learn.freecodecamp.org/responsive-web-design/basic-css)
|
||||
- [التصميم المرئي التطبيقي](https://learn.freecodecamp.org/responsive-web-design/applied-visual-design)
|
||||
- [إمكانية الوصول التطبيقية](https://learn.freecodecamp.org/responsive-web-design/applied-accessibility)
|
||||
- [مبادئ تصميم الويب سريع الاستجابة](https://learn.freecodecamp.org/responsive-web-design/responsive-web-design-principles)
|
||||
- [CSS Flexbox](https://learn.freecodecamp.org/responsive-web-design/css-flexbox)
|
||||
- [CSS Grid](https://learn.freecodecamp.org/responsive-web-design/css-grid)
|
||||
<br />
|
||||
<br />
|
||||
**المشاريع**: صفحة الإشادة ، نموذج المسح ، صفحة الترويج ، صفحة التوثيق الفني ، الملف الشخصي.
|
||||
|
||||
#### 2. اعتماد خوارزميات جافا سكريبت وهياكل البيانات
|
||||
|
||||
- [مقدمة لجافا سكريبت](https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/basic-javascript)
|
||||
- [ES6](https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/es6)
|
||||
- [التعبيرات العادية](https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/regular-expressions)
|
||||
- [تصحيح الأخطاء](https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/debugging)
|
||||
- [مقدمة في هياكل البيانات](https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/basic-data-structures)
|
||||
- [مقدمة في الخوارزميات](https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/basic-algorithm-scripting)
|
||||
- [البرمجة الشيئية](https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/object-oriented-programming)
|
||||
- [البرمجة الوظيفية](https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/functional-programming)
|
||||
- [الخوارزميات - المستوى المتوسط](https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/intermediate-algorithm-scripting)
|
||||
<br />
|
||||
<br />
|
||||
**المشاريع**: مدقق Palindrome ، محول الأرقام الرومانية ، تشفير قيصر ، التحقق من رقم الهاتف ، تسجيل النقدية
|
||||
|
||||
#### 3. شهادة مكتبة الواجهة الأمامية
|
||||
|
||||
- [Bootstrap](https://learn.freecodecamp.org/front-end-libraries/bootstrap)
|
||||
- [jQuery](https://learn.freecodecamp.org/front-end-libraries/jquery)
|
||||
- [Sass](https://learn.freecodecamp.org/front-end-libraries/sass)
|
||||
- [React](https://learn.freecodecamp.org/front-end-libraries/react)
|
||||
- [Redux](https://learn.freecodecamp.org/front-end-libraries/redux)
|
||||
- [React و Redux](https://learn.freecodecamp.org/front-end-libraries/react-and-redux)
|
||||
<br />
|
||||
<br />
|
||||
**المشاريع**: مولد الاقتباسات العشوائية ، معاينة مستندات Markdown ، آلة الطبل ، آلة حاسبة JavaScript ، ساعة 25 + 5.
|
||||
|
||||
#### 4. شهادة تصور البيانات
|
||||
|
||||
- [تصور البيانات مع D3](https://learn.freecodecamp.org/data-visualization/data-visualization-with-d3)
|
||||
- [API JSON و Ajax](https://learn.freecodecamp.org/data-visualization/json-apis-and-ajax)
|
||||
<br />
|
||||
<br />
|
||||
**المشاريع**: مخطط شريطي ، مخطط مبعثر ، خريطة حرارية ، خريطة محيطية ، مخطط شوكي
|
||||
|
||||
#### 5. شهادات الواجهة والخدمات الصغيرة
|
||||
|
||||
- [إدارة التبعية مع Npm](https://learn.freecodecamp.org/apis-and-microservices/managing-packages-with-npm)
|
||||
- [مقدمة عن Node و Express](https://learn.freecodecamp.org/apis-and-microservices/basic-node-and-express)
|
||||
- [MongoDB و Mongoose](https://learn.freecodecamp.org/apis-and-microservices/mongodb-and-mongoose)
|
||||
<br />
|
||||
<br />
|
||||
**المشاريع**: الخدمات الصغيرة على مدار الساعة ، محلل رأس الطلب ، اختصار عنوان URL ، تتبع التمرين ، محلل البيانات الوصفية.
|
||||
|
||||
#### 6. شهادة أمن المعلومات وضمان الجودة
|
||||
|
||||
- [أمن المعلومات مع HelmetJS](https://learn.freecodecamp.org/information-security-and-quality-assurance/information-security-with-helmetjs)
|
||||
- [Chai الجودة والاختبار مع تشاي](https://learn.freecodecamp.org/information-security-and-quality-assurance/quality-assurance-and-testing-with-chai)
|
||||
- [Node و Express المتقدم](https://learn.freecodecamp.org/information-security-and-quality-assurance/advanced-node-and-express)
|
||||
<br />
|
||||
<br />
|
||||
**المشاريع**: محول إمبريالي متري ، تتبع المشكلات ، مكتبة شخصية ، مدقق أسعار الأسهم ، منتدى مناقشة مجهول.
|
||||
|
||||
#### شهادة تطوير كاملة.
|
||||
|
||||
بمجرد حصولك على هذه الشهادات الست ، يمكنك المطالبة بشهادة مطور المكدس الكامل freeCodeCamp.org. هذا التمييز النهائي يعني أنك قد أكملت حوالي 1800 ساعة من البرمجة مع مجموعة واسعة من أدوات تطوير الويب.
|
||||
|
||||
#### الشهادات القديمة
|
||||
|
||||
لدينا أيضًا 3 شهادات قديمة من برنامج 2015 ، والتي لا تزال متاحة. ستظل جميع المشاريع المطلوبة لهذه الشهادات القديمة متاحة على freeCodeCamp.org.
|
||||
|
||||
- شهادة مطور الواجهة الأمامية السابق
|
||||
- شهادة تصور البيانات القديمة
|
||||
- شهادة المطور الخلفي السابق
|
||||
|
||||
### منصة التعلم
|
||||
|
||||
يتم تنفيذ هذا الرمز مباشرة في [freeCodeCamp.org](https://www.freecodecamp.org).
|
||||
|
||||
يمتلك مجتمعنا أيضًا:
|
||||
|
||||
- [المنتدى](https://forum.freecodecamp.org) حيث يمكنك عادةً الحصول على مساعدة في البرمجة أو ملاحظات حول مشاريعك.
|
||||
- قناة [YouTube](https://youtube.com/freecodecamp) مع دروس مجانية في Python و SQL و Android ومجموعة متنوعة من الموضوعات الأخرى.
|
||||
- [تدوين صوتي](https://podcast.freecodecamp.org/) مع المناقشات التقنية حول التقنيات الجديدة والقصص الملهمة من المطورين.
|
||||
- [مجموعات الدراسة المحلية](https://study-group-directory.freecodecamp.org/), تقع في جميع أنحاء العالم حيث يمكنك البرمجة معًا وجهًا لوجه.
|
||||
- [دليل شامل يغطي آلاف الموضوعات المختلفة](https://guide.freecodecamp.org/)
|
||||
- [أخبار](https://www.freecodecamp.org/news), مجانًا ومفتوحة المصدر وخالية من الإعلانات ، حيث يمكنك نشر مقالات مدونتك.
|
||||
- [مجموعة الفيسبوك](https://www.facebook.com/groups/freeCodeCampEarth/permalink/428140994253892/) مع أكثر من 100000 عضو حول العالم.
|
||||
|
||||
### [انضم إلى مجتمعنا هنا](https://www.freecodecamp.org/signin).
|
||||
|
||||
### هل وجدت خطأ؟
|
||||
|
||||
إذا كنت تعتقد أنك عثرت على خطأ ، فاقرأ مقالة المساعدة أولاً [Help I've Found a Bug](https://forum.freecodecamp.org/t/how-to-report-a-bug/19543) واتبع تعليماته. إذا كنت متأكدًا من أن هذا خطأ جديد وأنك قد تحققت من أن المستخدمين الآخرين يواجهون المشكلة ، فقم بإنشاء "issue" جديدة على GitHub. تأكد من تضمين أكبر قدر ممكن من المعلومات حتى نتمكن من إعادة إنتاج الخطأ.
|
||||
|
||||
### وجدت مشكلة أمنية؟
|
||||
|
||||
الرجاء عدم إنشاء "issue" على Github لأسباب أمنية. بدلاً من ذلك ، أرسل بريدًا إلكترونيًا إلى `security@freecodecamp.org` وسننظر في الأمر على الفور.
|
||||
|
||||
### للمساهمة
|
||||
|
||||
#### [يرجى اتباع هذه الخطوات للمساهمة](CONTRIBUTING.md).
|
||||
|
||||
### رخصة
|
||||
|
||||
Copyright © 2020 freeCodeCamp.org
|
||||
|
||||
محتوى هذا المستودع محمي بواسطة التراخيص التالية:
|
||||
|
||||
- البرنامج مرخص [BSD-3-Clause](LICENSE.md).
|
||||
- مصادر التعلم لل [curriculum](/curriculum) و [guide](/guide) وكذلك الدلائل الفرعية مرخصة [CC-BY-SA-4.0](/curriculum/LICENSE.md).
|
||||
</div>
|
@ -1,245 +0,0 @@
|
||||
<!-- do not translate this -->
|
||||
| [Read these guidelines in other languages](/docs/i18n-languages) |
|
||||
|-|
|
||||
<!-- do not translate this -->
|
||||
|
||||
<div dir="rtl" style="direction: rtl" markdown="1">
|
||||
|
||||
# عمليات المطور في freeCodeCamp.org
|
||||
|
||||
نشكرك على اهتمامك بمعرفة المزيد حول كيفية قيامنا بتطوير DevOps للنظام الأساسي في freeCodeCamp.org.
|
||||
|
||||
سيساعدك هذا الدليل على فهم البنية التحتية الخاصة بنا وكيفية الحفاظ على الأنظمة الأساسية لدينا. على الرغم من أن هذا الدليل لا يحتوي على تفاصيل شاملة لجميع العمليات ، إلا أنه يمكن استخدامه كمرجع لفهمك للأنظمة.
|
||||
|
||||
أخبرنا ، إذا كانت لديك ملاحظات أو استفسارات ، وسنكون سعداء للتوضيح.
|
||||
|
||||
## كيف يمكننا بناء واختبار ونشر قاعدة البرمجة؟
|
||||
|
||||
تم بناء قاعدة برمجتنا بشكل مستمر واختبارها ونشرها على مجموعات منفصلة من البنية التحتية (الخوادم وقواعد البيانات وشبكات CDN وغيرها) .
|
||||
|
||||
يتضمن هذا ثلاث خطوات يجب اتباعها بالتسلسل:
|
||||
|
||||
أولاً ، يتم دمج التغييرات الجديدة في فرع التطوير الأساسي (`master`) في شكل طلبات سحب. بعد ذلك ، يتم تشغيل هذه التغييرات من خلال سلسلة من الاختبارات الآلية. وأخيراً ، بمجرد اجتياز الاختبارات ، نقوم بإصدار التغييرات (أو تحديثها إذا لزم الأمر) لنشرها على بنيتنا الأساسية.
|
||||
|
||||
### بناء قاعدة البرمجة - تعيين فروع Git على عمليات النشر.
|
||||
|
||||
عادة ، يتم دمج [`master`] (https://github.com/freeCodeCamp/freeCodeCamp/tree/master) (فرع التطوير الافتراضي) في [`production-staging`] (https://github.com/freeCodeCamp/freeCodeCamp/tree/production-staging) فرع مرة واحدة في اليوم ، ويتم تحريرها في بنية تحتية معزولة.
|
||||
|
||||
هذا هو الإصدار المتوسط للمطورين والمساهمين المتطوعين لدينا. المعروف أيضًا باسم تطبيق "التدريج / التجريبي".
|
||||
|
||||
إنها مطابقة لبيئة الإنتاج المباشر الخاصة بنا على موقع freeCodeCamp.org ، بخلاف ذلك باستخدام مجموعة منفصلة من قواعد البيانات والخوادم ووكلاء الويب ، إلخ. تتيح لنا هذه العزلة اختبار التطوير المستمر والميزات في "سيناريو" مثل الإنتاج ، دون التأثير على المستخدمين المنتظمين للمنصات الرئيسية لـ freeCodeCamp.org.
|
||||
|
||||
بمجرد أن يكون فريق المطور [`@ freeCodeCamp / dev-team`] (https://github.com/orgs/freeCodeCamp/teams/dev-team/members) سعيدًا بالتغييرات على التطبيق المرحلي ، يتم نقل هذه التغييرات كل بضعة أيام إلى فرع [`production-current`] (https://github.com/freeCodeCamp/freeCodeCamp/tree/production-current).
|
||||
|
||||
هذا هو الإصدار النهائي الذي ينقل التغييرات إلى منصات الإنتاج لدينا على freeCodeCamp.org.
|
||||
|
||||
### اختبار التغييرات - اختبار التكامل وقبول المستخدم.
|
||||
|
||||
نحن نستخدم مستويات مختلفة من التكامل واختبار القبول للتحقق من جودة الكود. تتم جميع اختباراتنا من خلال برنامج مثل [Travis CI] (https://travis-ci.org/freeCodeCamp/freeCodeCamp) و [Azure Pipelines] (https://dev.azure.com/freeCodeCamp-org/freeCodeCamp).
|
||||
|
||||
لدينا اختبارات وحدة لاختبار حلول التحدي لدينا ، واجهات برمجة تطبيقات الخادم وواجهات مستخدم العميل. هذه تساعدنا في اختبار التكامل بين المكونات المختلفة.
|
||||
|
||||
> ملاحظة: نحن الآن بصدد كتابة اختبارات المستخدم النهائي التي ستساعد في تكرار سيناريوهات العالم الحقيقي مثل تحديث بريد إلكتروني أو إجراء مكالمة إلى API أو خدمات الجهات الخارجية.
|
||||
|
||||
تساعد هذه الاختبارات معًا في منع تكرار المشكلات وتأكد من أننا لا نقدم خطأ أثناء العمل على خطأ آخر أو ميزة أخرى.
|
||||
|
||||
### نشر التغييرات - دفع التغييرات إلى الخوادم.
|
||||
|
||||
لقد قمنا بتكوين برنامج التسليم المستمر لدفع التغييرات إلى خوادم التطوير والإنتاج لدينا. بمجرد دفع التغييرات إلى فروع الإصدار المحمية ، ينبغي أن تؤدي هذه إلى إنشاء خطوط أنابيب الإنشاء والإفراج لدينا:
|
||||
|
||||
يمكنك إلقاء نظرة وتصفح هذه هنا:
|
||||
|
||||
| بناء خط أنابيب | الافراج عن خط أنابيب |
|
||||
| :------------- | :--------------- |
|
||||
| الإعداد لإنشاء القطع الأثرية لعمليات النشر. | الإعداد لنشر القطع الأثرية على الخوادم الوجهة الخاصة بهم. |
|
||||
| [الذهاب إلى المبنيات](https://dev.azure.com/freeCodeCamp-org/freeCodeCamp/_build) | [الذهاب إلى الإصدارات](https://dev.azure.com/freeCodeCamp-org/freeCodeCamp/_release) |
|
||||
|
||||
يقوم خط أنابيب الإنشاء بتشغيل خط أنابيب التحرير بعد تعليق دام 5 دقائق حتى يتمكن موظفونا من الدخول والتدخل إذا لزم الأمر.
|
||||
/cofig/codeمتاح للجمهور على لوحة معلومات Azure's Dev. يقتصر الوصول إلى هذا على فريق موظفي freeCodeCamp.org.
|
||||
نوصي بعدم دفع أكثر من 3-4 بناءات إلى خطوط الأنابيب في غضون يوم واحد وليس أكثر من واحد خلال ساعة. وذلك لأن القطع الأثرية الخاصة بنا كبيرة جدًا وستضع عبئًا على خوادمنا عند النشر.
|
||||
|
||||
## تشغيل بناء واختبار ونشر.
|
||||
|
||||
حاليًا ، يمكن فقط للأعضاء في فريق المطورين الدفع إلى فروع الإنتاج. التغييرات على فروع الإنتاج - * يمكن أن تهبط فقط من خلال دمج التقديم السريع إلى [`upstream`] (https://github.com/freeCodeCamp/freeCodeCamp).
|
||||
|
||||
> ملاحظة: في الأيام المقبلة ، سنحسن هذا التدفق الذي يتم عبر طلبات السحب ، لتحسين إدارة الوصول والشفافية.
|
||||
|
||||
### دفع التغييرات إلى تطبيقات التدريج.
|
||||
|
||||
1. تكوين أجهزة التحكم عن بعد بشكل صحيح.
|
||||
|
||||
```sh
|
||||
freeCodeCamp on master is 📦 v0.0.1 via ⬢ v10.16.0
|
||||
❯ git remote -v
|
||||
origin git@github.com:raisedadead/freeCodeCamp.git (fetch)
|
||||
origin git@github.com:raisedadead/freeCodeCamp.git (push)
|
||||
upstream git@github.com:freeCodeCamp/freeCodeCamp.git (fetch)
|
||||
upstream git@github.com:freeCodeCamp/freeCodeCamp.git (push)
|
||||
```
|
||||
|
||||
2. تأكد من أن فرع "master" أصلي ومتزامن مع المنبع.
|
||||
|
||||
|
||||
```sh
|
||||
git checkout master
|
||||
git fetch --all --prune
|
||||
git reset --hard upstream/master
|
||||
```
|
||||
|
||||
3. تحقق من أن Travis CI يمر على فرع "master" للتنقيب.
|
||||
|
||||
يجب أن تكون اختبارات [التكامل المستمر] (https://travis-ci.org/freeCodeCamp/freeCodeCamp/branches) باللون الأخضر وأن يكون التمرير لفرع "master".
|
||||
<details>
|
||||
<summary>
|
||||
Checking status on Travis CI (screenshot)
|
||||
</summary>
|
||||
<br>
|
||||
<img src="https://raw.githubusercontent.com/freeCodeCamp/freeCodeCamp/master/docs/images/devops/travis-build.png" alt="Check build status on Travis CI">
|
||||
</details>
|
||||
|
||||
إذا فشل هذا ، يجب عليك التوقف والتحقيق في الأخطاء.
|
||||
|
||||
4. تأكد من أنك قادر على إنشاء مستودع محلي.
|
||||
|
||||
```
|
||||
npm run clean-and-develop
|
||||
```
|
||||
|
||||
5. قم بنقل التغييرات من "master" إلى "production-staging" عبر دمج سريع للأمام
|
||||
|
||||
|
||||
```
|
||||
git checkout production-staging
|
||||
git merge master
|
||||
git push upstream
|
||||
```
|
||||
|
||||
لن تكون قادرًا على فرض الضغط ، وإذا قمت بإعادة كتابة السجل في أي حال ، فإن هذه الأوامر سوف تخطئ. إذا فعلوا ذلك ، فربما فعلت شيئًا غير صحيح ويجب أن تبدأ من جديد.
|
||||
|
||||
وهذا كل شيء ، سيؤدي ذلك تلقائيًا إلى إنشاء خط أنابيب للبناء لفرع الإنتاج المرحلي. عادة ما يستغرق هذا ~ 20-25 دقيقة لجميع التطبيقات. بمجرد اكتمال الإنشاء ، سيتم حفظ القطع الأثرية كملفات ".zip" في مخزن بارد لاستردادها واستخدامها بواسطة خط أنابيب الإصدار.
|
||||
|
||||
يتم تشغيل خط أنابيب الإطلاق تلقائيًا عند توفر قطعة أثرية جديدة من خط أنابيب الإنشاء المتصل. بالنسبة للتطبيقات المؤقتة ، يتم أتمتة هذا تمامًا ويتم دفع المصنوعات اليدوية إلى عميل CDN وخوادم API. يستغرق الأمر عادةً ما بين 15 إلى 20 دقيقة للعميل ، و 5 دقائق تقريبًا حتى تتوفر خوادم واجهة برمجة التطبيقات على الهواء مباشرة.
|
||||
|
||||
هذا يجعل كل إصدار من كود الدفع إلى أن يكون متاحًا في التطبيقات المرحلية ~ 60 دقيقة.
|
||||
|
||||
### دفع التغييرات إلى تطبيقات الإنتاج.
|
||||
|
||||
العملية هي في الغالب نفس تطبيقات التدريج ، مع وجود عدد قليل من عمليات الفحص الإضافية في مكانها. هذا فقط للتأكد ، نحن لا نكسر أي شيء على freeCodeCamp.org والذي يمكنه رؤية مئات المستخدمين يستخدمونه في أي وقت.
|
||||
|
||||
> #### لا تقم بتنفيذ هذه الأوامر حتى تتحقق من أن كل شيء يعمل على التطبيق المرحلي. يجب عليك عدم تجاوز أو تخطي أي اختبار على التدريج قبل المتابعة.
|
||||
|
||||
1. تأكد من أن فرع "إنتاج المرحلة" الخاص بك أصلي ومتزامن مع المنبع.
|
||||
|
||||
```sh
|
||||
git checkout production-staging
|
||||
git fetch --all --prune
|
||||
git reset --hard upstream/production-staging
|
||||
```
|
||||
|
||||
2. انقل التغييرات من "الإنتاج المرحلي" إلى "الإنتاج الحالي" عبر دمج سريع للأمام
|
||||
|
||||
```
|
||||
git checkout production-current
|
||||
git merge production-staging
|
||||
git push upstream
|
||||
```
|
||||
|
||||
لن تتمكن من فرض الضغط ، وإذا قمت بإعادة كتابة السجل في أي حال ، فإن هذه الأوامر سوف تخطئ. إذا فعلوا ذلك ، فربما فعلت شيئًا غير صحيح ويجب أن تبدأ من جديد.
|
||||
|
||||
وهذا كل شيء ، سيؤدي هذا تلقائيًا إلى إنشاء خط أنابيب للبناء لفرع الإنتاج الحالي. عادةً ما يستغرق هذا أيضًا حوالي 20 إلى 25 دقيقة لجميع التطبيقات كما هو موضح سابقًا.
|
||||
|
||||
فيما يلي بعض الخطوات الإضافية التي يجب اتباعها بواسطة مطور freeCodeCamp.org للموظفين. لمنع أي دفعات عرضية ، لدينا بضع خطوات الموافقة اليدوية تكوينها على خطوط الأنابيب.
|
||||
|
||||
بمجرد أن تصبح قطعة أثرية جاهزة على فرع "الإنتاج الحالي" ، فإنها ستطلق إصدارًا على خط أنابيب الإطلاق.
|
||||
|
||||
بعد ذلك ، سيتلقى فريق موظفي مطور freeCodeCamp.org رسالة بريد إلكتروني. يمكنهم إما الموافقة * أو * رفض * الإصدار. إذا كانت التغييرات تعمل بشكل جيد وتم اختبارها على تطبيق التدريج ، فيمكن الموافقة عليها. يجب أن يحدث هذا خلال 4 ساعات من إطلاق الإصدار أو سيتم رفضه تلقائيًا. في حالة حدوث ذلك ، سيحتاج الموظف إلى إعادة تشغيل خط أنابيب الإصدار يدويًا.
|
||||
|
||||
لاستخدام الموظفين:
|
||||
|
||||
| الموافقة على الإصدار |
|
||||
| :-------------: |
|
||||
| تحقق من بريدك الإلكتروني للحصول على رابط مباشر أو [فتح لوحة القيادة الإفراج](https://dev.azure.com/freeCodeCamp-org/freeCodeCamp/_release?_a=releases&view=mine&definitionId=6) |
|
||||
|
||||
بمجرد موافقة أحد الأعضاء على الإصدار ، فإن خط الأنابيب سيدفع التغييرات مباشرة إلى خوادم CDN و API الخاصة بإنتاج freeCodeCamp.org. يستغرق الأمر عادةً ما بين 15 إلى 20 دقيقة للعميل ، و 5 دقائق تقريبًا حتى تتوفر خوادم واجهة برمجة التطبيقات على الهواء مباشرة.
|
||||
|
||||
كخطوة أخيرة ، سيقوم أحد الموظفين أيضًا بالنقر فوق زر نشر النشر على لوحة معلومات نشر Netlify.
|
||||
|
||||
لاستخدام الموظفين:
|
||||
|
||||
| نشر أو الاستعادة على Netlify |
|
||||
| :----------------------------: |
|
||||
| [افتح عمليات نشر Netlify](https://app.netlify.com/sites/freecodecamp-org/deploys) |
|
||||
|
||||
|
||||
## بناء وحالة النشر
|
||||
|
||||
فيما يلي حالة البناء والنشر الحالية لقاعدة البيانات.
|
||||
|
||||
### بناء الحالة
|
||||
|
||||
| منصة | اكتب | الحالة |
|
||||
| :-------------- | :--------- | :---------: |
|
||||
| Travis CI | Unit Tests | [](https://travis-ci.org/freeCodeCamp/freeCodeCamp) |
|
||||
| Azure Pipelines | Artifacts | [](https://dev.azure.com/freeCodeCamp-org/freeCodeCamp/_build) |
|
||||
|
||||
### Deployment Status
|
||||
|
||||
| تطبيق | الإصدار | الحالة |
|
||||
| :----------- | :--------- | :---------: |
|
||||
| Client | Beta/Next | [](https://dev.azure.com/freeCodeCamp-org/freeCodeCamp/_release) |
|
||||
| API | Beta/Next | [](https://dev.azure.com/freeCodeCamp-org/freeCodeCamp/_release) |
|
||||
| Client | Production | [](https://dev.azure.com/freeCodeCamp-org/freeCodeCamp/_release) |
|
||||
| API | Production | [](https://dev.azure.com/freeCodeCamp-org/freeCodeCamp/_release) |
|
||||
|
||||
## الوصول المبكر والاختبار التجريبي للإصدارات القادمة من منصة ومنهاج freeCodeCamp.org
|
||||
|
||||
نرحب بكم لاختبار هذه الإصدارات في وضع ** "اختبار بيتا عام" ** والوصول المبكر إلى الميزات القادمة إلى الأنظمة الأساسية. في بعض الأحيان ، يشار إلى هذه الميزات / التغييرات باسم ** التالي ، التجريبي ، التدريج ، ** إلخ بالتبادل.
|
||||
|
||||
ستساعدنا مساهماتك عبر الملاحظات وتقارير المشكلات في جعل منصات الإنتاج في "freeCodeCamp.org" أكثر ** مرونة ** و ** متسقة ** و ** مستقرة ** للجميع.
|
||||
|
||||
نشكرك على الإبلاغ عن الأخطاء التي واجهتها وتساعد في جعل freeCodeCamp.org أفضل. انت صخرة!
|
||||
|
||||
## تحديد الإصدار القادم من النظام الأساسي
|
||||
|
||||
سيكون اسم المجال مختلفًا عن ** `freeCodeCamp.org` **. يتوفر إصدار اختبار بيتا العام الحالي حاليًا على
|
||||
|
||||
<h3 align="center"><a href='https://www.freecodecamp.dev' _target='blank'><code>www.freecodecamp.dev</code></a></h4>
|
||||
|
||||
لمنع الفهرسة العرضية على محركات البحث والمستخدمين الذين يستخدمون هذا الموقع عن طريق الخطأ (دون معرفة أنه موقع تطوير) ، يتم إغلاقهم بكلمة مرور بسيطة:
|
||||
|
||||
<h3 align="center"><code>freecodecamp-is-awesome</code></h4>
|
||||
|
||||
## تحديد الإصدار الحالي من النظام الأساسي
|
||||
|
||||
** الإصدار الحالي من النظام الأساسي متاح دائمًا على [`freeCodeCamp.org`](https://www.freecodecamp.org).**
|
||||
|
||||
يدمج فريق التطوير التغييرات من فرع "الإنتاج المرحلي" إلى "الإنتاج الحالي" عند إصدار التغييرات. يجب أن يكون الالتزام العلوي هو ما تراه مباشرًا على الموقع. يمكنك تحديد الإصدار الدقيق الذي تم نشره عن طريق زيارة سجلات الإنشاء والنشر المتوفرة أدناه في قسم الحالة.
|
||||
|
||||
## القيود المعروفة
|
||||
|
||||
ستكون هناك بعض القيود والمفاضلات المعروفة عند استخدام الإصدار التجريبي من النظام الأساسي.
|
||||
|
||||
- #### جميع البيانات / التقدم الشخصي في هذه التطبيقات التجريبية `لن يتم حفظها أو ترحيلها` إلى الإنتاج.
|
||||
|
||||
** سيكون لدى المستخدمين في الإصدار التجريبي حساب منفصل عن الإنتاج. ** تستخدم النسخة التجريبية قاعدة بيانات منفصلة فعليًا عن الإنتاج. هذا يعطينا القدرة على منع أي فقدان عرضي للبيانات أو التعديلات. قد يقوم فريق ديف بتطهير قاعدة البيانات على هذا الإصدار التجريبي حسب الحاجة.
|
||||
|
||||
- #### لا توجد ضمانات على الجهوزية وموثوقية تطبيقات بيتا.
|
||||
|
||||
من المتوقع أن يكون النشر متكررًا وبتكرار سريع ، وأحيانًا عدة مرات في اليوم. نتيجة لذلك ، ستكون هناك أوقات توقف غير متوقعة في بعض الأحيان أو وظائف معطلة في الإصدار التجريبي.
|
||||
|
||||
- #### لا ترسل مستخدمين منتظمين إلى هذا الموقع كإجراء لتأكيد الإصلاح
|
||||
|
||||
إن موقع الإصدار التجريبي كان ولا يزال يعمل على زيادة التطوير والاختبار المحليين ، ولا شيء آخر. إنه ليس وعدًا بما سيحدث ، بل لمحة عما يجري العمل عليه.
|
||||
|
||||
- #### تسجيل الدخول والمصادقة متاح فقط عبر البريد الإلكتروني ، وليس الاجتماعي.
|
||||
|
||||
لن تكون عمليات تسجيل الدخول إلى Google و GitHub و Facebook متاحة في هذا الوضع التجريبي. هذا ببساطة قيد تقني ، لأننا نستخدم "مجال اختبار" منفصل لهذا الإصدار. ** معلومات تسجيل الدخول إلى البريد الإلكتروني ستعمل بنفس الجودة. **
|
||||
|
||||
قد تبدو صفحة الإشارة مختلفة عن الإنتاج.
|
||||
|
||||
## الإبلاغ عن المشاكل وترك التعليق
|
||||
|
||||
يرجى فتح قضايا جديدة للمناقشات والإبلاغ عن الأخطاء. يمكنك تسمية لهم باسم **[`release: next/beta`](https://github.com/freeCodeCamp/freeCodeCamp/labels/release%3A%20next%2Fbeta)** لفرز.
|
||||
|
||||
يمكنك إرسال بريد إلكتروني إلى `dev@freecodecamp.org` إذا كان لديك أي استفسار. كما هو الحال دائمًا ، يجب الإبلاغ عن جميع الثغرات الأمنية `security@freecodecamp.org` بدلا من تعقب والمنتدى العام.
|
||||
</div>
|
@ -1,52 +0,0 @@
|
||||
<!-- do not translate this -->
|
||||
| [Read these guidelines in other languages](/docs/i18n-languages) |
|
||||
|-|
|
||||
<!-- do not translate this -->
|
||||
|
||||
<div dir="rtl" style="direction: rtl" markdown="1">
|
||||
|
||||
# كيفية فتح طلب سحب
|
||||
|
||||
## كيفية إعداد عنوان طلب سحب جيد:
|
||||
|
||||
عند فتح طلب سحب (PR) ، استخدم جدول النطاق التالي لتقرير ما الذي يجب أن يميز عنوان العلاقات العامة الخاص بك بالتنسيق التالي:
|
||||
`fix/feat/chore/refactor/docs/perf (scope): PR Title`
|
||||
|
||||
مثال على ذلك`fix(learn): Fixed tests for the do...while loop challenge`.
|
||||
|
||||
| نطاق | توثيق |
|
||||
|---|---|
|
||||
| `learn`,`curriculum` | لطلبات السحب ، إجراء تغييرات على تحديات المناهج الدراسية. |
|
||||
| `client` | لطلبات السحب ، إجراء تغييرات على منطق نظام العميل أو واجهة المستخدم |
|
||||
| `guide` | لطلبات السحب التي تجري تغييرات على الدليل. |
|
||||
| `docs` | لطلبات السحب ، إجراء تغييرات على وثائق المشروع. |
|
||||
|
||||
## اقتراح طلب سحب (PR)
|
||||
|
||||
1. بمجرد إجراء التعديلات ، سيُطلب منك إنشاء طلب سحب على صفحة GitHub الخاصة بشركتك.
|
||||
|
||||

|
||||
|
||||
2. بشكل افتراضي ، يجب أن تكون جميع طلبات السحب مقابل المخزن الرئيسي لـ freeCodeCamp ، وهو الفرع الرئيسي.
|
||||
|
||||
تأكد من ضبط Base Fork على freeCodeCamp/freeCodeCamp عند رفع طلب السحب.
|
||||
|
||||

|
||||
|
||||
3. أرسل طلب السحب من فرعك إلى فرع freeCodeCamp's `master`.
|
||||
|
||||
4. في نص ملخص العلاقات العامة الخاص بك تتضمن ملخصًا أكثر تفصيلًا عن التغييرات التي أجريتها ولماذا.
|
||||
|
||||
- سيتم تقديمك مع نموذج طلب السحب. هذه قائمة مراجعة يجب عليك اتباعها قبل فتح طلب السحب.
|
||||
|
||||
- املأ التفاصيل التي تراها مناسبة. ستتم مراجعة هذه المعلومات وسيقرر المراجعون ما إذا كان قد تم قبول طلب السحب الخاص بك أم لا.
|
||||
|
||||
- إذا كان الهدف من العلاقات العامة هو معالجة مشكلة جيثب الحالية ، في نهاية
|
||||
نص وصف العلاقات العامة الخاص بك ، استخدم الكلمة الأساسية _Closes_ مع رقم الإصدار [automatically close that issue if the PR is accepted and merged](https://help.github.com/en/articles/closing-issues-using-keywords).
|
||||
|
||||
> Example: `Closes #123` will close issue 123
|
||||
|
||||
5. حدد ما إذا كنت قد اختبرت على نسخة محلية من الموقع أم لا.
|
||||
|
||||
هذا مهم جدًا عند إجراء تغييرات ليست مجرد تعديلات على محتوى نصي مثل الوثائق أو وصف التحدي. تتضمن أمثلة التغييرات التي تحتاج إلى اختبار محلي جافا سكريبت أو CSS أو HTML والتي يمكن أن تغير وظيفة أو تخطيط الصفحة.
|
||||
</div>
|
@ -1,134 +0,0 @@
|
||||
<!-- do not translate this -->
|
||||
| [Read these guidelines in other languages](/docs/i18n-languages) |
|
||||
|-|
|
||||
<!-- do not translate this -->
|
||||
|
||||
# 贡献指南
|
||||
|
||||
您好👋!
|
||||
|
||||
freeCodeCamp.org的存在是因为像你这样的数千名志愿者。我们很感谢与欢迎您的贡献。
|
||||
|
||||
我们严格执行[“行为准则”](https://www.freecodecamp.org/code-of-conduct)。请您花一点时间阅读它。它只有196个字。
|
||||
|
||||
贡献愉快🎉!
|
||||
|
||||
## 您可以通过以下这些不错的方式进行贡献
|
||||
|
||||
您可以选择为您感兴趣的任何领域做出贡献:
|
||||
|
||||
1. [贡献予开源代码库](#贡献予开源代码库)。帮助编辑[指南文章](https://guide.freecodecamp.org/),[编码挑战](https://learn.freecodecamp.org/)或修复学习平台上的错误。
|
||||
|
||||
2. 在我们的[公共论坛](https://forum.freecodecamp.org/)上帮助营员。[回答他们的编程问题](https://forum.freecodecamp.org/?max_posts=1)或[为他们的编码程目给予反馈](https://forum.freecodecamp.org/c/project-feedback?max_posts=1)。
|
||||
|
||||
3. 帮助我们为[YouTube频道视频](https://www.youtube.com/channel/UC8butISFwT-Wl7EV0hUK0BQ/videos)添加字幕。
|
||||
|
||||
## 贡献予开源代码库
|
||||
|
||||
我们有数以千计的[编码挑战](https://learn.freecodecamp.org)和[指南文章](https://guide.freecodecamp.org)集中在这个庞大的开源代码库中。
|
||||
|
||||
您可以帮助我们:
|
||||
|
||||
- [📝 研究,编写和更新我们的指南文章](#研究编写和更新我们的指南文章)
|
||||
|
||||
- [💻 创建,更新编码挑战和修复其中的错误](#创建更新编码挑战和修复其中的错误)
|
||||
|
||||
- [🌐 翻译指南文章和编码挑战](#翻译指南文章和编码挑战)
|
||||
|
||||
- [🛠 帮助我们修复freeCodeCamp.org学习平台中的错误](#帮助我们修复freecodecamporg学习平台中的错误)
|
||||
|
||||
### 研究,编写和更新我们的指南文章
|
||||
|
||||
**什么是指南文章?**
|
||||
|
||||
指南文章可帮助您快速了解技术概念。它是用简短,简单的英语解释,您可以在阅读更深入的资源之前先阅读这些解释。
|
||||
|
||||
您可以在这里找到[关于HTML锚点元素的示例文章](https://github.com/freeCodeCamp/freeCodeCamp/blob/master/guide/english/html/elements/a-tag/index.md)。
|
||||
|
||||
**我能写一篇关于什么的文章?**
|
||||
|
||||
我们欢迎您撰写这些文章的帮助。作为作者你不必是一个主题的专家 - 整个指南是开源的,所以即使你犯了错误,另一个贡献者最终会纠正它。
|
||||
|
||||
您可以在我们的[指南网站](https://www.freecodecamp.org/guide)上找到一个“存根文章”,写下您的文章,然后建立pull request以替换存根文章。 [pull request](https://help.github.com/articles/about-pull-requests/)是您建议更改的方式。它让其他人了解您的更改,审核并采用它们。
|
||||
|
||||
如果您找不到关于您想要撰写的主题的存根,则可以开一个PR,创建有关存根并包含您的草稿文章。
|
||||
|
||||
如果您想帮助改进指南文章,请参阅[如何编辑指南文章](/docs/chinese/how-to-work-on-guide-articles.md)。
|
||||
|
||||
### 创建,更新编码挑战和修复其中的错误
|
||||
|
||||
我们所有的编码挑战都由社区策划,以从您这样的志愿者那里获取专业知识。
|
||||
|
||||
您可以帮助扩展它们并使其措辞更加清晰。您可以更新用户故事以更好地解释概念,甚至删除多余的概念。您还可以改进挑战测试,使其更准确地测试人们的代码。
|
||||
|
||||
如果您对改进这些编码挑战感兴趣,请参阅[如何处理编码挑战](/docs/chinese/how-to-work-on-coding-challenges.md)。
|
||||
|
||||
### 翻译指南文章和编码挑战
|
||||
|
||||
您可以帮助我们将指南文章和编码挑战翻译成您所说的语言。目前我们已翻译版本:
|
||||
|
||||
- [中文(中文)](https://github.com/freeCodeCamp/freeCodeCamp/tree/master/curriculum/challenges/chinese)
|
||||
- [俄语(русский)](https://github.com/freeCodeCamp/freeCodeCamp/tree/master/curriculum/challenges/russian)
|
||||
- [阿拉伯语(عربى)](https://github.com/freeCodeCamp/freeCodeCamp/tree/master/curriculum/challenges/arabic)
|
||||
- [西班牙语(西班牙语)](https://github.com/freeCodeCamp/freeCodeCamp/tree/master/curriculum/challenges/spanish)
|
||||
- [葡萄牙语(葡萄牙语)](https://github.com/freeCodeCamp/freeCodeCamp/tree/master/curriculum/challenges/portuguese)
|
||||
|
||||
我们非常欢迎您的贡献以帮助提高翻译质量。数百万人已经在使用freeCodeCamp.org的英语版本,我们也希望还有数百万人使用这些翻译版本。
|
||||
|
||||
### 帮助我们修复freeCodeCamp.org学习平台中的错误
|
||||
|
||||
我们的学习平台运行在现代的JavaScript技术栈上。它有各种组件,工具和库,包括但不限于Node.js,MongoDB,LoopBack,OAuth 2.0,React,Gatsby,Webpack等。
|
||||
|
||||
简单的说,
|
||||
|
||||
- 我们有一个基于Node.js的API服务器。
|
||||
- 一系列基于React的客户端应用程序。
|
||||
- 一个用于评估前端项目的脚本。
|
||||
|
||||
|
||||
为此做出贡献需要对API和ES6语法有所了解,更需要足够的好奇心。
|
||||
|
||||
基本上我们期望您对于以上的一些技术,工具和库有某些基本的熟悉程度。但是,您不需要是这些领域的专家。
|
||||
|
||||
如果您对于以上相关问有任何疑问,请在相关的主题上向我们提问,我们将很乐意的为您澄清。您可以联系我们的平台开发团队中的Mrugesh Mohapatra [`@isedadead`](https://github.com/raisedadead) 或Stuart Taylor [`@bouncey`](https://github.com/bouncey) 为您提供帮助。
|
||||
|
||||
如果您想帮助我们改进代码库,请参阅[如何在本地启动freeCodeCamp](/docs/chinese/how-to-setup-freecodecamp-locally.md)。
|
||||
|
||||
## 常见的疑问
|
||||
|
||||
**如何报告不在记录里的问题?**
|
||||
|
||||
如果您认为自己发现了错误,请先阅读[“请帮忙!我发现了一个错误”](https://forum.freecodecamp.org/t/how-to-report-a-bug/19543)文章并按照其说明进行操作
|
||||
|
||||
如果您确信这是一个新错误,请继续创建一个新的GitHub问题。请务必尽可能多地包含信息,以便我们能重现错误。我们有一个预定义的问题模板来帮助您完成此报告。
|
||||
|
||||
请注意,任何寻求编码帮助挑战的问题都将被关闭。问题跟踪器严格用于与代码库相关的问题和讨论。您应该[在论坛上寻求帮助](https://forum.freecodecamp.org), 然后在有疑问时进行报告。
|
||||
|
||||
**如何报告安全问题?**
|
||||
|
||||
请不要因安全问题而创建GitHub问题。相反,请发送电子邮件至`security@freecodecamp.org`,我们会立即调查。
|
||||
|
||||
**我被困在这些文档中没有解释的问题上。怎么能得到帮助?**
|
||||
|
||||
您可以通过以下的渠道:
|
||||
|
||||
- [我们公共论坛上的“贡献者”类别](https://forum.freecodecamp.org/c/contributors)
|
||||
- [我们的公共贡献者在Gitter的聊天室](https://gitter.im/FreeCodeCamp/Contributors)
|
||||
|
||||
我们很高兴能帮助您为您想要处理的任何问题做出贡献。确保在发布新问题之前搜索您的问题。请务必要有礼貌和耐心。我们的社区志愿者和主持人随时为您提供指导。
|
||||
|
||||
**我是GitHub和开源的新手:**
|
||||
|
||||
阅读我们的[如何参与开源指南](https://github.com/freeCodeCamp/how-to-contribute-to-open-source)。
|
||||
|
||||
**这些标记在问题上的不同的标签(label)是什么意思?**
|
||||
|
||||
我们的社区版主根据优先级、严重程度和其他因素将问题和PR[分类](https://en.wikipedia.org/wiki/Software_bug#Bug_management)。您可以[在这里找到一个完整的含义词汇表](https://github.com/freecodecamp/freecodecamp/labels)。
|
||||
|
||||
您应该通过[**“求助”**](https://github.com/freeCodeCamp/freeCodeCamp/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22)或[**“欢迎新手”**](https://github.com/freeCodeCamp/freeCodeCamp/issues?q=is%3Aopen+is%3Aissue+label%3A%22first+timers+only%22)快速查找您可以贡献的项目。这些都是可以自行进行,并不需要批准。
|
||||
|
||||
如果这些问题缺乏明确的需求,欢迎在评论中提问。
|
||||
|
||||
**我发现了一个错误的拼写,我应该在提出PR之前报告问题吗?**
|
||||
|
||||
对于拼写错误和其他措辞更改,您可以直接提出PR,而无需先创建问题。问题更多的是讨论与代码相关,或者课程结构方面的重大问题。
|
@ -1,140 +0,0 @@
|
||||

|
||||
[](https://travis-ci.org/freeCodeCamp/freeCodeCamp)
|
||||
[](http://makeapullrequest.com)
|
||||
[](http://www.firsttimersonly.com/)
|
||||
[](https://snyk.io/test/github/freecodecamp/freecodecamp)
|
||||
|
||||
|
||||
## 欢迎来到freeCodeCamp.org的开源代码库和课程!
|
||||
|
||||
[freeCodeCamp.org](https://www.freecodecamp.org) 是一个友好的社区,在这里可以免费学习编程。 社区由[捐助者支持的501(c)(3)非营利组织](https://donate.freecodecamp.org)运营,目标是为了帮助成千上万忙碌的成人实现技术转型。目前为止,我们已经帮助了超过10,000人得到了他们的第一份开发工作。
|
||||
|
||||
我们的互联网全栈开发课程是完全免费和自主的,此外我们还有数以千计的互动编程挑战来帮助你扩展你的技能。
|
||||
|
||||
## 内容列表
|
||||
|
||||
* [技能认证证书](#技能认证证书)
|
||||
* [学习平台](#学习平台)
|
||||
* [发现了一个异常](#发现了一个异常)
|
||||
* [发现了一个安全问题](#发现了一个安全问题)
|
||||
* [参与贡献](#参与贡献)
|
||||
* [开源许可](#开源许可)
|
||||
|
||||
### 技能认证证书
|
||||
|
||||
freeCodeCamp.org提供了一些免费的开发技能认证证书。每个证书需要构建5个必须的互联网应用工程,同时我们提供了数以百计可选的编程挑战来帮助你为构建这些工程做准备。我们估计对于编程初学者来说每个证书将会花费300个小时的投入来获取。
|
||||
|
||||
在freeCodeCamp.org课程中的30个工程,每一个都有自己的敏捷用户故事和自动化测试。这可以帮助你渐进地构建你的工程,并且确保你在提交之前完成了所有的用户故事。
|
||||
|
||||
你可以通过[freeCodeCamp's CDN](https://cdn.freecodecamp.org/testable-projects-fcc/v1/bundle.js)获取到这些测试合集。这意味着你可以在CodePen和Glitch(或者甚至是在你本地的计算机环境)上构建这些工程。
|
||||
|
||||
一旦你取得了一个证书,你将一直拥有它。你可以一直把它链接到领英或者résumé上。并且当你期望的雇主或者自由职业雇主点击链接时,他们可以一个看到一个针对你的认证证书。
|
||||
|
||||
唯一例外的是如果我们发现有违反我们[学术诚信政策](https://www.freecodecamp.org/academic-honesty)的情况。当我们抓到有人明确地剽窃(未标引用地提交他人的代码或者工程作为他自己的),我们将会做所有严格的教育机构会做的事情——我们会取消他的认证证书并且禁掉他。
|
||||
|
||||
这里是我们的六个核心证书:
|
||||
|
||||
#### 1. 响应式Web设计证书
|
||||
|
||||
- 基础HTML和HTML5
|
||||
- 基础CSS
|
||||
- 应用可视化设计
|
||||
- 应用可访问性
|
||||
- 可视化Web设计原则
|
||||
- CSS Flexbox
|
||||
- CSS Grid <br />
|
||||
<br />
|
||||
**工程**: 悼文页, 调查表单, 产品登陆页, 技术文档页, 个人作品集网站页
|
||||
|
||||
#### 2. JavaScript算法与数据结构证书
|
||||
|
||||
- 基础JavaScript
|
||||
- ES6
|
||||
- 正则表达式
|
||||
- 调试
|
||||
- 基础数据结构
|
||||
- 算法脚本
|
||||
- 面向对象编程
|
||||
- 函数式编程 <br />
|
||||
<br />
|
||||
**工程**: 回文检查器, 罗马数字转换器, 凯撒加密, 电话号码验证, 收银机
|
||||
|
||||
#### 3. 前端库证书
|
||||
|
||||
- Bootstrap
|
||||
- jQuery
|
||||
- Sass
|
||||
- React
|
||||
- Redux
|
||||
- React与Redux <br />
|
||||
<br />
|
||||
**工程**: 随机引文器, Markdown预览器, 击鼓器, JavaScript计算器, 波莫多罗钟(番茄时钟)
|
||||
|
||||
#### 4. 数据可视化证书
|
||||
|
||||
- 使用D3数据可视化
|
||||
- JSON接口和Ajax <br />
|
||||
<br />
|
||||
**工程**: 条形图, 散点图, 热力图, 等值线图, 树状图
|
||||
|
||||
#### 5. 接口和微服务证书
|
||||
|
||||
- 使用Npm管理包依赖
|
||||
- 基础Node和Express
|
||||
- MongoDB和Mongoose <br />
|
||||
<br />
|
||||
**工程**: 时间戳微服务, 请求头解析器, 网址缩短器, 训练跟踪器, 文件元数据微服务
|
||||
|
||||
#### 6. 信息安全与质量保证证书
|
||||
|
||||
- 使用HelmetJS保障信息安全
|
||||
- 质量保证和使用Chai进行测试
|
||||
- 高级Node和Express <br />
|
||||
<br />
|
||||
**工程**: 米制-英制度量转换器, 问题跟踪器, 个人库, 股票价格检查器, 匿名信息板
|
||||
|
||||
#### 全栈开发证书
|
||||
|
||||
一旦你取得了所有的这6个证书,你就可以认领属于你的freeCodeCamp.org全栈开发证书了。这最后的荣誉意味着,你使用大范围的Web开发工具完全地完成了约1,800个小时的编程。
|
||||
|
||||
#### 遗留证书
|
||||
|
||||
同时我们还有3个从2015年的课程中遗留的证书,这些证书现在仍然是有效的。所有这些遗留证书所需要的工程会在freeCodeCamp.org保持可访问状态。
|
||||
|
||||
- 遗留前端开发证书
|
||||
- 遗留数据可视化证书
|
||||
- 遗留后端开发证书
|
||||
|
||||
### 学习平台
|
||||
|
||||
这些代码真实运行在[freeCodeCamp.org](https://www.freecodecamp.org)上。
|
||||
|
||||
同时我们社区还有:
|
||||
|
||||
- 一个[论坛](https://forum.freecodecamp.org),在这里你可以经常获取编程帮助或者在几小时内得到工程反馈。
|
||||
- 一个[YouTube频道](https://youtube.com/freecodecamp),在这里有免费的课程,有关Python、SQL、Android和其他各种各样的技术。
|
||||
- 遍布全球的[线下学习社团](https://study-group-directory.freecodecamp.org/),在这里你可以和志同道合的人一起编程。
|
||||
- 一个综合的[数以千计的编程话题向导](https://guide.freecodecamp.org/)。
|
||||
- 在Medium上[大量的技术文章发表](https://medium.freecodecamp.org)。
|
||||
- 一个[Facebook社团](https://www.facebook.com/groups/freeCodeCampEarth/permalink/428140994253892/),全球范围内拥有超过100,000个成员。
|
||||
|
||||
### [点击这里加入我们的社区](https://www.freecodecamp.org/signin)。
|
||||
|
||||
### 发现了一个异常?
|
||||
|
||||
如果你认为你发现了一个异常, 首先请阅读[关于我发现了一个异常的帮助](https://forum.freecodecamp.org/t/how-to-report-a-bug/19543)文章并且循序其中的指示。如果你确信这是一个新的异常,并且确认其他人页遇到了一样的问题,请继续创建一个新的GitHub Issue。并且确保包含了足够多的信息以方便我们能重现这个异常。
|
||||
|
||||
### 发现了一个安全问题?
|
||||
|
||||
请不要在GitHub上为安全问题创建Issues。作为替代,请发送E-mail到`security@freecodecamp.org`,我们会立刻对此进行调查。
|
||||
|
||||
### 参与贡献
|
||||
|
||||
#### [请遵循这个步骤参与贡献。](/docs/chinese/CONTRIBUTING.md)
|
||||
|
||||
### 开源许可
|
||||
|
||||
这个库的内容受到以下开源许可的约束:
|
||||
|
||||
- 电脑软件接受[BSD-3-Clause](LICENSE.md)开源许可。
|
||||
- 在[`/curriculum`](/curriculum)目录下的所有[课程内容](https://www.npmjs.com/package/@freecodecamp/curriculum)接受[CC-BY-SA-4.0](/curriculum/LICENSE.md)开源许可。
|
@ -1,104 +0,0 @@
|
||||
<!-- do not translate this -->
|
||||
| [Read these guidelines in other languages](/docs/i18n-languages) |
|
||||
|-|
|
||||
<!-- do not translate this -->
|
||||
|
||||
# 如何局部性地捕获外发电子邮件(用于电子邮件工作流程)
|
||||
|
||||
> **注意:** 这是**可选**步骤 - 仅在使用电子邮件工作流程时需要
|
||||
|
||||
## 介绍
|
||||
|
||||
某些电子邮件工作流程(如更新用户的电子邮件)需要后端api-server发送电子邮件。在开发过程中,您可以使用工具在局部性地捕获这些电子邮件,而不必使用电子邮件提供商发送实际的电子邮件。 MailHog就是一种开发人员使用的电子邮件测试工具,可以捕获本地freeCodeCamp实例发送的电子邮件。
|
||||
|
||||
## 安装MailHog
|
||||
|
||||
如何安装和运行MailHog取决于您的操作系统
|
||||
|
||||
- [在macOS上安装MailHog](#在macOS上安装MailHog)
|
||||
- [在Windows上安装MailHog](#在Windows上安装MailHog)
|
||||
- [在Linux上安装MailHog](#在Linux上安装MailHog)
|
||||
|
||||
### 在macOS上安装MailHog
|
||||
|
||||
以下是如何使用[Homebrew](https://brew.sh/) 在macOS上设置MailHog:
|
||||
|
||||
```bash
|
||||
brew install mailhog
|
||||
brew services start mailhog
|
||||
```
|
||||
|
||||
这将在后台启动mailhog服务。
|
||||
|
||||
接下来,您可以转到[使用MailHog](#使用MailHog)。
|
||||
|
||||
### 在Windows上安装MailHog
|
||||
|
||||
从[MailHog的官方存储库](https://github.com/mailhog/MailHog/releases) 下载最新的MailHog版本。单击Windows版本(32或64位)的链接,然后将.exe文件下载到您的电脑。
|
||||
|
||||
完成下载后,点击文件。您可能会收到Windows防火墙通知,您必须允许MailHog连接。完成后,Windows将打开标准命令行提示符。这时,MailHog已在运行。
|
||||
|
||||
要关闭MailHog,请关闭命令行界面。想再次启动它,请单击相同的.exe文件。您无需从新下载。
|
||||
|
||||
接下来,您可以转到[使用MailHog](#使用MailHog)。
|
||||
|
||||
### 在Linux上安装MailHog
|
||||
|
||||
首先安装[Go](https://golang.org)。
|
||||
|
||||
基于Debian系统,如Ubuntu和Linux Mint使用者,运行:
|
||||
|
||||
```bash
|
||||
sudo apt-get install golang
|
||||
```
|
||||
|
||||
CentOS,Fedora,Red Hat Linux和其他基于RPM的系统使用者,运行:
|
||||
|
||||
```bash
|
||||
sudo dnf install golang
|
||||
```
|
||||
|
||||
或者:
|
||||
|
||||
```bash
|
||||
sudo yum install golang
|
||||
```
|
||||
|
||||
设置Go的路径:
|
||||
|
||||
```bash
|
||||
echo“export GOPATH = $ HOME / go”>>〜/ .profile
|
||||
echo'export PATH = $ PATH:/ usr / local / go / bin:$ GOPATH / bin'>>〜/ .profile
|
||||
source 〜/ .profile
|
||||
```
|
||||
|
||||
然后安装并运行MailHog:
|
||||
|
||||
```bash
|
||||
go get github.com/mailhog/MailHog
|
||||
sudo cp / home / $(whoami)/ go / bin / MailHog / usr / local / bin / mailhog
|
||||
mailhog
|
||||
```
|
||||
|
||||
接下来,您可以转到[使用MailHog](#使用MailHog)。
|
||||
|
||||
## 使用MailHog
|
||||
|
||||
安装MailHog并开始运行后,您需要在浏览器中打开MailHog收件箱,打开新选项卡或窗口并导航到[http://localhost:8025](http://localhost:8025) 。
|
||||
您现在应该看到如下屏幕:
|
||||
|
||||

|
||||
|
||||
当您的freeCodeCamp安装发送电子邮件时,你会看到它出现在这里。如下所示:
|
||||
|
||||

|
||||
|
||||
打开邮件,您应该看到两个选项卡让您查看内容 - 纯文本和源文件。请确保您在纯文本选项卡上。
|
||||
|
||||

|
||||
|
||||
电子邮件中的任何链接都应该是可点击的。
|
||||
|
||||
## 有用的链接
|
||||
|
||||
- 有关MailHog的任何其他问题或有关自定义配置的说明,请查看[MailHog](https://github.com/mailhog/MailHog)存储库。
|
@ -1,464 +0,0 @@
|
||||
<!-- do not translate this -->
|
||||
| [Read these guidelines in other languages](/docs/i18n-languages) |
|
||||
|-|
|
||||
<!-- do not translate this -->
|
||||
|
||||
|
||||
# 在本地启动freeCodeCamp
|
||||
|
||||
请遵循以下准则,以便在系统上本地获取freeCodeCamp。如果您想定期参与,强烈建议您这样做。
|
||||
|
||||
一些贡献工作流程,如预览指南页面或编码挑战,调试和修复代码库中的错误,需要您在本地运行freeCodeCamp。
|
||||
|
||||
## 在GitHub上Fork代码库
|
||||
|
||||
[“Fork”](https://help.github.com/articles/about-forks/)是您在GitHub上获得自己的freeCodeCamp主代码库(a.k.a _repo_)副本的步骤。
|
||||
|
||||
这是必不可少的,因为这样您就可以在GitHub上处理freeCodeCamp的副本,或者下载它以便在本地工作。稍后,您将能够通过拉取请求请求将更改拖入主存储库。
|
||||
|
||||
> ** ProTip:**
|
||||
> `https:// github.com / freeCodeCamp / freeCodeCamp`的主存储库通常被关联为`upstream`存储库。
|
||||
> 您在`https:// github.com / YOUR_USER_NAME / freeCodeCamp`的分支通常被关联为`origin`存储库。
|
||||
|
||||
**按照以下步骤Fork`https:// github.com / freeCodeCamp / freeCodeCamp`存储库:**
|
||||
|
||||
1. 转到GitHub上的freeCodeCamp存储库:<https://github.com/freeCodeCamp/freeCodeCamp>
|
||||
2. 单击界面右上角的“Fork”按钮([更多详细信息](https://help.github.com/articles/fork-a-repo/))
|
||||
3. 存储库分叉后,您将被带到https:// github.com / YOUR_USER_NAME / freeCodeCamp的freeCodeCamp副本。
|
||||
|
||||

|
||||
|
||||
## 准备开发环境
|
||||
|
||||
安装必备组件后,需要为开发环境做好准备。这在许多开发工作流程中很常见,您只需要执行一次。
|
||||
|
||||
**按照以下步骤准备好开发环境:**
|
||||
|
||||
1. 如果您还没有安装[Git](https://git-scm.com/)或您喜欢的Git客户端。更新到最新版本,与您的操作系统捆绑的版本可能已过时。
|
||||
|
||||
2. (可选但建议)为GitHub设置[SSH密钥](https://help.github.com/articles/generating-an-ssh-key/)。
|
||||
|
||||
3. 安装您选择的代码编辑器。
|
||||
|
||||
我们强烈建议使用[VS Code](https://code.visualstudio.com/)或[Atom](https://atom.io/)。这些是一些很棒的免费和开源代码编辑器。
|
||||
|
||||
4. 为您的代码编辑器设置linting。
|
||||
|
||||
您应该[在您的编辑器中运行ESLint](http://eslint.org/docs/user-guide/integrations.html),它将突出显示任何不符合[freeCodeCamp的JavaScript样式指南](http//forum.freecodecamp.org/t/free-code-camp-javascript-style-guide/19121)的内容。
|
||||
|
||||
> 请不要忽略任何掉毛错误。它们旨在帮助您,并确保干净简单的代码库。
|
||||
|
||||
## 克隆你的freeCodeCamp副本
|
||||
|
||||
["克隆"](https://help.github.com/articles/cloning-a-repository/)是一个步骤,您可以**下载**一个属于您或其他人“远端”位置存储库的副本。在这里,这个远端位置是freeCodeCamp存储库的`fork`,你可以在`http//github.com/YOUR_USER_NAME/freeCodeCamp`获得。
|
||||
|
||||
在本地计算机上运行以下命令:
|
||||
|
||||
1. 在项目目录中打开终端/命令提示符/Bash Shell
|
||||
|
||||
_i.e。:`/ yourprojectdirectory /`_
|
||||
|
||||
2. 克隆你的freeCodeCamp的fork,用你的GitHub用户名替换`YOUR_USER_NAME`
|
||||
|
||||
```shell
|
||||
git clone https://github.com/YOUR_USER_NAME/freeCodeCamp.git
|
||||
```
|
||||
|
||||
这会将整个freeCodeCamp存储库下载到您的项目目录中。
|
||||
|
||||
## 在主存储库中设置`upstream`
|
||||
|
||||
现在你已经下载了fork的副本,你需要设置一个`upstream`。
|
||||
|
||||
如前所述,`https:// github.com / freeCodeCamp / freeCodeCamp`的主存储库通常被称为`upstream`存储库。你在`https:// github.com / YOUR_USER_NAME / freeCodeCamp`的分支通常被称为`origin`信息库。
|
||||
|
||||
除了`origin`之外,你还需要将你的本地克隆指向`upstream`。这样您就可以同步主存储库中的更改。这样您就不必一次又一次地进行分叉和克隆。
|
||||
|
||||
1. 将目录更改为新的freeCodeCamp目录:
|
||||
|
||||
```shell
|
||||
cd freeCodeCamp
|
||||
```
|
||||
|
||||
2. 将遥控器添加到主freeCodeCamp存储库:
|
||||
|
||||
```shell
|
||||
git remote add upstream https://github.com/freeCodeCamp/freeCodeCamp.git
|
||||
```
|
||||
|
||||
3. 检查配置看起来不错:
|
||||
|
||||
```shell
|
||||
git remote -v
|
||||
```
|
||||
|
||||
输出应如下所示:
|
||||
|
||||
```shell
|
||||
origin https://github.com/YOUR_USER_NAME/freeCodeCamp.git (fetch)
|
||||
origin https://github.com/YOUR_USER_NAME/freeCodeCamp.git (push)
|
||||
upstream https://github.com/freeCodeCamp/freeCodeCamp.git (fetch)
|
||||
upstream https://github.com/freeCodeCamp/freeCodeCamp.git (push)
|
||||
```
|
||||
|
||||
## 在您的计算机上本地运行freeCodeCamp
|
||||
|
||||
现在您已拥有freeCodeCamp的本地副本,您可以按照这些说明使其在本地运行。这将有助于您:
|
||||
|
||||
- 预览对学习平台上显示的页面的编辑。
|
||||
- 处理与UI相关的问题和增强功能。
|
||||
- 调试和修复应用程序服务器和客户端应用程序中的问题。
|
||||
|
||||
如果您只是编辑文件,执行`rebase`或解决`merge`冲突,您可以跳过本地运行freeCodeCamp。您以后可以随时返回这部分说明。
|
||||
|
||||
[跳过本地运行freeCodeCamp](#making-changes-to-your-clone-of-freecodecamp-local)
|
||||
|
||||
### 安装先决条件
|
||||
|
||||
首先安装这些必备软件。
|
||||
|
||||
|先决条件|版本|备注|
|
||||
| ------------------------------------------- | ------- | ----- |
|
||||
| [MongoDB社区服务器](https://docs.mongodb.com/manual/administration/install-community/)| `3.6` | [发布说明](https://docs.mongodb.com/manual/release-notes/),注意:我们目前在`3.6`,[计划升级](https://github.com/freeCodeCamp/freeCodeCamp /问题/ 18275)。
|
||||
| [Node.js](http://nodejs.org)| `8.x` | [LTS Schedule](https://github.com/nodejs/Release#release-schedule)|
|
||||
| npm(与Node捆绑在一起)| `6.x` |没有LTS版本,我们使用与Node LTS |捆绑在一起的版本
|
||||
|
||||
**重要:**
|
||||
|
||||
我们强烈建议您更新上述最新的稳定版本a.k.a长期支持(LTS)版本。
|
||||
如果您的计算机上已安装Node.js或MongoDB,请运行以下命令以验证版本:
|
||||
|
||||
```shell
|
||||
mode -v
|
||||
mongo --version
|
||||
npm -v
|
||||
```
|
||||
|
||||
> 如果您有不同的版本,请安装推荐的版本。我们只支持推荐版本的安装问题。
|
||||
|
||||
**我在安装推荐的先决条件时遇到问题。我该怎么办?**
|
||||
|
||||
我们定期开发流行的和最新的操作系统,如macOS 10.12或更高版本,Ubuntu 16.04或更高版本以及Windows 10.它建议在以下资源上查找您的特定问题:Google,Stack Overflow或Stack Exchange。有可能有人遇到了同样的问题,并且您的特定查询已经有了答案。
|
||||
|
||||
如果您使用的是其他操作系统,和/或仍然遇到问题,请联系我们公共论坛上的[贡献者社区](https://www.freeCodeCamp.org/c/contributors)或[贡献者聊天室] (https://gitter.im/freeCodeCamp/Contributors)。我们或许可以解决一些常见问题。
|
||||
|
||||
我们无法在GitHub上为您提供支持,因为软件安装问题超出了本项目的范围。
|
||||
|
||||
### 安装依赖项
|
||||
|
||||
首先,你需要添加私有环境变量(API密钥):
|
||||
|
||||
```shell
|
||||
# 创建“sample.env”的副本并将其命名为“.env”。
|
||||
# 使用必要的API密钥和秘密填充它:
|
||||
|
||||
# macOS / Linux 环境下
|
||||
cp sample.env .env
|
||||
|
||||
# Windows 环境下
|
||||
copy sample.env .env
|
||||
```
|
||||
|
||||
然后,你需要安装应用启动需要的依赖。
|
||||
|
||||
```shell
|
||||
# 安装NPM依赖项
|
||||
npm install
|
||||
```
|
||||
|
||||
无需更改密钥即可在本地运行应用程序。您可以保留`sample.env`中的默认值。
|
||||
|
||||
`MONGOHQ_URL`是最重要的一个。除非您在不同于默认值的设置中运行MongoDB,否则`sample.env`中的URL应该可以正常工作。
|
||||
|
||||
您可以保留其他键。请记住,如果您想使用更多服务,您必须为这些服务获取自己的API密钥,并在`.env`文件中相应地编辑这些条目。
|
||||
|
||||
### 启动MongoDB
|
||||
|
||||
在启动应用程序之前,您需要启动MongoDB:
|
||||
|
||||
在单独的终端中启动MongoDB服务器
|
||||
|
||||
- 在macOS和Ubuntu上:
|
||||
|
||||
```shell
|
||||
mongod
|
||||
```
|
||||
|
||||
- 在Windows上,您必须指定`mongod`二进制文件的完整路径
|
||||
确保用您安装的版本替换`3.6`
|
||||
|
||||
```shell
|
||||
"C:\Program Files\MongoDB\Server\3.6\bin\mongod"
|
||||
```
|
||||
|
||||
> ProTip:
|
||||
> 通过将其作为后台服务安装,您可以避免每次都启动MongoDB。
|
||||
> 您可以[在他们的操作系统文档中了解更多信息](https://docs.mongodb.com/manual/administration/install-community/)
|
||||
|
||||
### 播种数据库
|
||||
|
||||
接下来,让数据库播种。在此步骤中,我们运行以下命令,该命令将使MongoDB服务器填充其他服务所需的一些初始数据集。这包括一些模式,以及其他内容。
|
||||
|
||||
```shell
|
||||
npm run seed
|
||||
```
|
||||
|
||||
### 开始freeCodeCamp客户端应用程序和API服务器
|
||||
|
||||
您能现在开始API服务器和客户端应用程序。
|
||||
```shell
|
||||
npm run develop
|
||||
```
|
||||
|
||||
这单一命令将启动所有服务,包括API服务器和客户端应用程序都会为您运行。
|
||||
现在打开浏览器并且访问<http://localhost:8000>。 如果app运行,祝贺-您是全部设置好了。
|
||||
|
||||
> 专业小贴士 :
|
||||
>
|
||||
> API服务器服务APIs在`http://localhost:3000 `
|
||||
> Gatsby app为客户端应用程序服务在`http://localhost:8000 `
|
||||
|
||||
意思是,如果您参观<http://localhost:3000/explorer>您可以看到我们有的API。
|
||||
|
||||
祝贺🎉! 您现在有freeCodeCamp的整个学习的平台的拷贝运行在您的本地机器上。
|
||||
|
||||
## 本地启动应用快捷命令参考
|
||||
|
||||
[这有一些快捷参考](/docs/chinese/README.md),列举出了当你在本地启动项目是时常需要的一些命:
|
||||
|
||||
## 对克隆到本地的freeCodeCamp代码进行改动
|
||||
|
||||
接下来,您能对文件做改动,并保存(commit)你的改动。
|
||||
|
||||
遵循以下步骤:
|
||||
|
||||
1. 检查你是否在 `master` 分支上
|
||||
|
||||
```shell
|
||||
git status
|
||||
```
|
||||
|
||||
你可能会得到如下输出:
|
||||
|
||||
```shell
|
||||
On branch master
|
||||
Your branch is up-to-date with 'origin/master'.
|
||||
|
||||
nothing to commit, working directory clean
|
||||
```
|
||||
|
||||
如果你不是在master分支上或者你工作的文件夹不干净, 消除所有未完成的文件/保存并且切换到`master`分支上:
|
||||
|
||||
```shell
|
||||
git checkout master
|
||||
```
|
||||
|
||||
2. 接下来,你可能想从freeCodeCamp主代码库**同步`master`分支最新的修改**。
|
||||
|
||||
**提示:**如果你有任何未完成的之前以你Fork的代码库的`master`分支发起的拉取请求,你将会丢失掉他们。 你应该让一个主持人优先跟进,合并它们。为了避免这种情况,你应当总是在一个分支上工作。
|
||||
|
||||
尽量经常做此操作, 以避免日后造成冲突:
|
||||
|
||||
```shell
|
||||
git fetch upstream
|
||||
```
|
||||
|
||||
现在,你可能想让副本相对于freeCodeCamp的master代码分支做一个硬性重置:
|
||||
|
||||
```shell
|
||||
git reset --hard upstream/master
|
||||
```
|
||||
|
||||
推送你的分支到你名为origin的远端代码库,以清理你在GitHub上Fork的代码库的历史纪录:
|
||||
|
||||
```shell
|
||||
git push origin master --force
|
||||
```
|
||||
|
||||
3. 接下来, 你需要创建一个新的分支。
|
||||
|
||||
为每个单独的问题创建一个分离的分支进行处理,会帮助你保持你的本地副本库干净。你永远不要在`master`分支上工作。否则会弄脏你的freeCodeCamp副本,而且你可能不得不通过重新克隆或者Fork来重新开始。
|
||||
|
||||
像之前讲解的那样检查是否在`master`分支上,创建一个新的分支并离开这个分支:
|
||||
|
||||
```shell
|
||||
git checkout -b fix/update-guide-for-xyz
|
||||
```
|
||||
|
||||
你的分支名应该以 `fix/`、`feat/` 等开始。要避免在分支名中使用问题的编号。保持名称短小,有意义并且唯一。
|
||||
|
||||
如下,一些比较不错的分支命:
|
||||
|
||||
```md
|
||||
fix/update-challenges-for-react
|
||||
fix/update-guide-for-html-css
|
||||
fix/platform-bug-sign-in-issues
|
||||
feat/add-guide-article-for-javascript
|
||||
translate/add-spanish-basic-html
|
||||
```
|
||||
|
||||
4. 接下来,你可以在你喜欢的编辑器上编辑页面和代码了。
|
||||
|
||||
5. 一旦对你的修改满意了,你亏启动本地freeCodeCamp项目来预览你的修改。
|
||||
|
||||
6. 确保你修复任意的错误并检查你的修改格式。我们有指南文章和代码挑战和风格指南。
|
||||
|
||||
7. 接下来,检查和确认你更新的文件
|
||||
|
||||
```shell
|
||||
git status
|
||||
```
|
||||
|
||||
这个命令会显示一个你编辑过但`未缓存的`文件列表。
|
||||
|
||||
```shell
|
||||
On branch feat/documentation
|
||||
Your branch is up to date with 'upstream/feat/documentation'.
|
||||
|
||||
Changes not staged for commit:
|
||||
(use "git add/rm <file>..." to update what will be committed)
|
||||
(use "git checkout -- <file>..." to discard changes in working directory)
|
||||
|
||||
modified: CONTRIBUTING.md
|
||||
modified: docs/README.md
|
||||
modified: docs/how-to-setup-freecodecamp-locally.md
|
||||
modified: docs/how-to-work-on-guide-articles.md
|
||||
...
|
||||
```
|
||||
|
||||
8. 缓存修改并保存。
|
||||
|
||||
这部你只需要标记你修改或添加的文件。你可以执行一下重置,并且消除那些你不想修改的文件。
|
||||
|
||||
```shell
|
||||
git add path/to/my/changed/file.ext
|
||||
```
|
||||
|
||||
或者, 可选地你可以添加所`未缓存的`文件到缓存区域:
|
||||
|
||||
```shell
|
||||
git add .
|
||||
```
|
||||
|
||||
当你执行保存的时候,只有添加到缓存区的修改才会被保存。
|
||||
|
||||
```shell
|
||||
git status
|
||||
```
|
||||
|
||||
输出:
|
||||
```shell
|
||||
On branch feat/documentation
|
||||
Your branch is up to date with 'upstream/feat/documentation'.
|
||||
|
||||
Changes to be committed:
|
||||
(use "git reset HEAD <file>..." to unstage)
|
||||
|
||||
modified: CONTRIBUTING.md
|
||||
modified: docs/README.md
|
||||
modified: docs/how-to-setup-freecodecamp-locally.md
|
||||
modified: docs/how-to-work-on-guide-articles.md
|
||||
```
|
||||
|
||||
现在, 你可以像这样附带一个短信息保存你的修改:
|
||||
|
||||
```shell
|
||||
git commit -m "fix: my short commit message"
|
||||
```
|
||||
|
||||
一些例子:
|
||||
|
||||
```md
|
||||
fix: update guide article for Java - for loop
|
||||
feat: add guide article for alexa skills
|
||||
```
|
||||
|
||||
可选的:
|
||||
|
||||
我们高度推荐提交约定保存信息。这是一个你可以在其他一些流行的开源库上看到最佳实践。作为一个开发者,这鼓励你遵循标准实践
|
||||
|
||||
一些约定的保存信息例子:
|
||||
|
||||
```md
|
||||
fix: update HTML guide article
|
||||
fix: update build scripts for Travis-CI
|
||||
feat: add article for JavaScript hoisting
|
||||
docs: update contributing guidelines
|
||||
```
|
||||
|
||||
保持短小, 不要超过50个字母。你可以一直在保存信息的描述上添加额外信息。
|
||||
|
||||
这并不会比'update file'或者'add index.md'这样的非约定信息消耗更多额外的时间。
|
||||
|
||||
你可以通过[这里](https://www.conventionalcommits.org/en/v1.0.0-beta.2/#why-use-conventional-commits)了解更多关于我们为什么需要使用约定保存。
|
||||
|
||||
9. 如果你在做了保存后意识到你需要编辑一个文件或者更新保存信息,在编辑文件之后这样做:
|
||||
|
||||
```shell
|
||||
git commit --amend
|
||||
```
|
||||
|
||||
这会打开一个默认的像`nano`或`vi`的文本编辑器,你可以在上面编辑保存信息标题并且添加/编辑描述。
|
||||
|
||||
10. 接下来,你可以推送你的修改到你的Fok仓库了。
|
||||
|
||||
```shell
|
||||
git push origin branch/name-here
|
||||
```
|
||||
|
||||
|
||||
## 提交一个拉取请求(Pull Request——PR)
|
||||
|
||||
1. 一旦提交了编辑內容,系统将提示您在fork的GitHub页面上创建一个拉取请求。
|
||||
|
||||

|
||||
|
||||
2. 默认情况下,所有拉取请求都应该针对freeCodeCamp主代码库的`master`分支。
|
||||
|
||||
提出拉取请求时,请确保将Base Fork设置为freeCodeCamp/freeCodeCamp。
|
||||
|
||||

|
||||
|
||||
3. 将分支的拉取求提交给freeCodeCamp的`master`分支。
|
||||
|
||||
4. 在PR的正文中包含尽量详细的摘要,包括您所做的更改以及原因。
|
||||
|
||||
- 您將看到一個拉取请求模板。这是在打开拉取請求之前应该遵循的清单。
|
||||
|
||||
- 填写适合您的详细信息。我们将核对此信息,并决定是否接受您的拉取请求。
|
||||
|
||||
- 如果PR旨在解决现有的错误/问题,那么,在结束时
|
||||
你PR的描述,附加关键字`closes`和#xxxx(其中xxxx
|
||||
是问题编号)。示例:`close#1337`。這告訴GitHub
|
||||
如果PR被接受并合并,则自动关闭现有问题。
|
||||
|
||||
5. 表明您是否在本地网站上进行过测试。
|
||||
|
||||
当您进行非复制编辑markdown文件的修改时,这非常重要。例如,对CSS或JavaScript代码等的更改。
|
||||
|
||||
## 获取帮助
|
||||
|
||||
如果您遇到困难并需要帮助,请通过我们论坛上的['贡献者'类別](https://forum.freecodecamp.org/c/contributors)或在Gitter上的[贡献者者聊天室](https://gitter.im/FreeCodeCamp/Contributors)询问我們。
|
||||
|
||||
您的浏览器控制台或Bash/終端/命令行中可能存在錯誤有助於识別問題。
|
||||
|
||||
### 故障排除
|
||||
|
||||
如果應用程序啟動但您遇到UI本身的錯誤,例如,如果未加載字體或代碼編輯器未正確顯示,您可以嘗試至少一次以下故障排除步驟:
|
||||
|
||||
```shell
|
||||
# 刪除所有已安裝的節點模塊
|
||||
rm -rf node_modules ./**/node_modules
|
||||
|
||||
# 重新安裝npm包
|
||||
npm安裝
|
||||
|
||||
# 引導項目
|
||||
npm運行bootstrap
|
||||
|
||||
# 種子數據庫
|
||||
npm run seed
|
||||
|
||||
#重新啟動應用程序
|
||||
npm run develop
|
||||
```
|
@ -1,98 +0,0 @@
|
||||
<!-- do not translate this -->
|
||||
| [Read these guidelines in other languages](/docs/i18n-languages) |
|
||||
|-|
|
||||
<!-- do not translate this -->
|
||||
|
||||
#如何处理编码挑战
|
||||
|
||||
###在GitHub上更改
|
||||
|
||||
每个挑战都存储在自己的markdown文件中。这使得从GitHub中编辑挑战变得容易。
|
||||
|
||||
您不需运行本地系统,即可进行更改。
|
||||
|
||||
在GitHub界面中找到要修改的文件后,单击铅笔图标开始编辑文件。如果您还没有这个项目的分支,将会自动创建一个新的分支。
|
||||
|
||||
您还可以复制项目并在计算机上进行本地编辑。如需帮助,请阅读主要[贡献指南](/CONTRIBUTING.md)。
|
||||
|
||||
###挑战模板
|
||||
|
||||
这是挑战markdown文件的模板。
|
||||
|
||||
````MD
|
||||
---
|
||||
id:唯一标识符(alphanumerical,MongoDB _id)
|
||||
标题:挑战标题
|
||||
challengeType:0
|
||||
guideUrl:'引导文章的网址'
|
||||
videoUrl:'视频解释的网址'
|
||||
---
|
||||
|
||||
##说明
|
||||
<section id ='description'>
|
||||
挑战的描述以及通过的要求
|
||||
</节>
|
||||
|
||||
##说明
|
||||
<section id ='说明'>
|
||||
关于究竟需要做什么的说明。
|
||||
</节>
|
||||
##测试
|
||||
<section id ='tests'>
|
||||
|
||||
```yml
|
||||
- 文字:应该返回“foo”。
|
||||
testString:'使用Chai断言的字符串化函数'
|
||||
```
|
||||
|
||||
</节>
|
||||
|
||||
<div id ='js-seed'>
|
||||
|
||||
```JS
|
||||
默认情况下,代码在编辑器中显示。
|
||||
```
|
||||
|
||||
</ DIV>
|
||||
|
||||
###测试前
|
||||
<div id ='js-setup'>
|
||||
|
||||
```JS
|
||||
测试设置代码。
|
||||
```
|
||||
|
||||
</div>
|
||||
|
||||
</节>
|
||||
|
||||
###经过测试
|
||||
<div id ='js-teardown'>
|
||||
|
||||
```JS
|
||||
测试拆解代码。
|
||||
```
|
||||
|
||||
</ DIV>
|
||||
|
||||
</节>
|
||||
|
||||
##解决方案
|
||||
<section id ='solution'>
|
||||
|
||||
```JS
|
||||
挑战解决方案代码
|
||||
```
|
||||
|
||||
</节>
|
||||
````
|
||||
|
||||
###有用的链接
|
||||
|
||||
创建和编辑挑战:
|
||||
|
||||
1. [挑战风格指南](style-guide-for-curriculum-challenges.md) - 如何创建和格式化挑战
|
||||
|
||||
2. [挑战类型](https://github.com/freeCodeCamp/freeCodeCamp/blob/master/client/utils/challengeTypes.js#L1-L13) - 数字挑战类型值的含义(枚举)。
|
||||
|
||||
3. [贡献FreeCodeCamp - 编写ES6挑战测试](https://www.youtube.com/watch?v=iOdD84OSfAE#t=2h49m55s) - 视频[Ethan Arrowood](https://twitter.com/ ArrowoodTech)因为他对旧版课程做出了贡献
|
@ -1,141 +0,0 @@
|
||||
<!-- do not translate this -->
|
||||
|
||||
| [Read these guidelines in other languages](/docs/i18n-languages) |
|
||||
| ---------------------------------------------------------------- |
|
||||
|
||||
|
||||
<!-- do not translate this -->
|
||||
|
||||
# Lignes directrices pour les contributions
|
||||
|
||||
Bonjour 👋 !
|
||||
|
||||
freeCodeCamp.org est possible grâce à des milliers de bénévoles comme vous. Nous sommes reconnaissants de vos contributions et nous sommes heureux de vous accueillir à bord.
|
||||
|
||||
Nous appliquons strictement notre [code de conduite]("Code of Conduct")(https://www.freecodecamp.org/code-of-conduct). Prenez un moment pour le lire. Il ne fait que 196 mots.
|
||||
|
||||
Bonne contribution 🎉 !
|
||||
|
||||
## Voici quelques façons amusantes d'aider
|
||||
|
||||
Vous pouvez choisir de contribuer dans n'importe quel domaine qui vous intéresse :
|
||||
|
||||
1. [Contribuez à cette base de code open source](#contribute-to-this-open-source-codebase). Aidez à l'édition des [articles du guide](https://guide.freecodecamp.org/), des [défis de codage](https://learn.freecodecamp.org/), ou en corrigeant des bugs sur la plateforme d'apprentissage.
|
||||
|
||||
2. Aidez les campeurs sur notre [forum public](https://forum.freecodecamp.org/). Répondez à leurs questions de code](https://forum.freecodecamp.org/?max_posts=1) ou [faites-leur un retour sur leurs projets de code](https://forum.freecodecamp.org/c/project-feedback?max_posts=1).
|
||||
|
||||
3. Aidez-nous à ajouter des sous-titres à nos vidéos sur [YouTube](https://www.youtube.com/channel/UC8butISFwT-Wl7EV0hUK0BQ/videos).
|
||||
|
||||
## Contribuer à cette base de code open source
|
||||
|
||||
Nous avons une énorme base de code open source composée de milliers de [défis de codage](https://learn.freecodecamp.org) et [d'articles de guide](https://guide.freecodecamp.org).
|
||||
|
||||
Vous pouvez nous aider par :
|
||||
|
||||
- [📝 Recherche, rédaction et mise à jour des articles de notre guide](#research-write-and-update-our-guide-articles)
|
||||
|
||||
- [💻 Création, mise-à-jour and correction de bogues dans nos défis de ](#create-update-andfix-bugs-in-our-coding-challenges)
|
||||
|
||||
- [🌐 Traduction des articles du guide et des défis de codage](#translate-guide-articles-and-coding-challenges)
|
||||
|
||||
- [🛠 Correction de bugs dans la plate-forme d'apprentissage freeCodeCamp.org](#help-us-fix-bugs-in-freecodecamporgs-learning-platform)
|
||||
|
||||
### Recherche, rédaction et mise à jour des articles de notre guide
|
||||
|
||||
**Que sont les articles du guide ?**
|
||||
|
||||
Les articles du guide vous aident à comprendre rapidement un concept technologique. Ce sont de brèves explications en français simple que vous pouvez lire avant de passer à des ressources plus approfondies.
|
||||
|
||||
Vous pouvez trouver un [exemple d'article sur les éléments d'ancrage HTML ici](https://github.com/freeCodeCamp/freeCodeCamp/blob/master/guide/french/html/elements/a-tag/index.md).
|
||||
|
||||
**Sur quoi puis-je écrire un article ?**
|
||||
|
||||
Nous vous invitons à nous aider à rédiger ces articles. Il n'est pas nécessaire d'être un expert en la matière pour écrire à ce sujet - ce guide est entièrement libre, donc même si vous faites une erreur, un autre contributeur la corrigera éventuellement.
|
||||
|
||||
Pour vous aider, trouvez un article sur notre [Guide](https://guide.freecodecamp.org), écrivez l'article, puis ouvrez une demande de retrait pour remplacer le talon par votre article. Une [demande de retrait](https://help.github.com/articles/about-pull-requests/) est la façon dont vous suggérerez des changements. Il permet aux autres de connaître, d'examiner et, éventuellement, d'adopter vos changements.
|
||||
|
||||
Si vous ne trouvez pas d'ébauche sur le sujet sur lequel vous aimeriez écrire, vous pouvez ouvrir un PR qui crée l'ébauche et inclut votre article provisoire.
|
||||
|
||||
Si vous souhaitez aider à améliorer les articles de guide, voici [comment travailler sur les articles de guide](/docs/how-to-work-on-guide-articles.md).
|
||||
|
||||
### Créer, mettre à jour et corriger des bugs dans nos défis de codage
|
||||
|
||||
Tous nos défis de codage sont organisés par la communauté, qui fait appel aux connaissances de bénévoles comme vous.
|
||||
|
||||
Vous pouvez aider à les développer et à rendre leur formulation plus claire. Vous pouvez mettre à jour les témoignages d'utilisateurs pour mieux expliquer le concept et même supprimer ceux qui sont redondants. Vous pouvez également améliorer les tests des défis pour qu'ils permettent de tester plus précisément le codage des personnes.
|
||||
|
||||
Si vous êtes intéressé à améliorer ces défis de codage, voici [comment travailler sur les défis de codage](/docs/how-to-work-on-coding-challenges.md).
|
||||
|
||||
### Traduire les articles du guide et les défis de codage
|
||||
|
||||
Vous pouvez nous aider à traduire les articles de notre Guide et les défis du codage dans la langue que vous parlez. Nous avons actuellement des versions traduites en :
|
||||
|
||||
- [Chinois (中文)](https://github.com/freeCodeCamp/freeCodeCamp/tree/master/curriculum/challenges/chinese)
|
||||
- [Russe (русский)](https://github.com/freeCodeCamp/freeCodeCamp/tree/master/curriculum/challenges/russian)
|
||||
- [Arabe (عربى)](https://github.com/freeCodeCamp/freeCodeCamp/tree/master/curriculum/challenges/arabic)
|
||||
- [Espagnol (Español)](https://github.com/freeCodeCamp/freeCodeCamp/tree/master/curriculum/challenges/spanish)
|
||||
- Portugais (Português)](https://github.com/freeCodeCamp/freeCodeCamp/tree/master/curriculum/challenges/portuguese)
|
||||
- Français (Français)](https://github.com/freeCodeCamp/freeCodeCamp/tree/master/curriculum/challenges/french)
|
||||
|
||||
Nous aimerions que vous nous aidiez à améliorer la qualité de ces traductions. Des millions de personnes utilisent la version anglaise de freeCodeCamp.org, et nous nous attendons à ce que des millions d'autres utilisent également ces versions traduites.
|
||||
|
||||
### Aidez-nous à corriger des bugs sur la plateforme d'apprentissage freeCodeCamp.org
|
||||
|
||||
Notre plateforme d'apprentissage fonctionne sur une pile JavaScript moderne. Il a divers composants, outils et bibliothèques, y compris, mais sans s'y limiter à Node.js, MongoDB, LoopBack, OAuth 2.0, React, Gatsby, Webpack, et plus.
|
||||
|
||||
Dans l'ensemble,
|
||||
|
||||
- Nous avons un serveur API basé sur Node.js.
|
||||
- Un ensemble d'applications client basées sur React.
|
||||
- Un script que nous utilisons pour évaluer nos projets Frontend.
|
||||
|
||||
Pour y contribuer, il faut une certaine compréhension des APIs, de la syntaxe ES6 et beaucoup de curiosité.
|
||||
|
||||
Essentiellement, nous nous attendons à une connaissance de base de certaines des technologies, outils et bibliothèques susmentionnés. Cela dit, il n'est pas nécessaire d'être un expert en la matière pour contribuer.
|
||||
|
||||
N'hésitez pas à nous poser des questions sur les sujets connexes et nous serons heureux d'y répondre. En cas de doute, vous pouvez contacter Mrugesh Mohapatra [`@raisedadead`](https://github.com/raisedadead) ou Stuart Taylor [`@bouncey`](https://github.com/bouncey) de notre équipe de développement de plateforme pour vous aider.
|
||||
|
||||
**Si vous voulez nous aider à améliorer notre base de code, vous pouvez [configurer freeCodeCamp localement](/docs/how-to-setup-freecodecamp-locally.md) ou utiliser Gitpod, un outil de développement en ligne.**
|
||||
|
||||
[](https://gitpod.io/#https://github.com/freeCodeCamp/freeCodeCamp)
|
||||
|
||||
(Commencez un _ready-to-code_ environnement de développement `freecodecamp` dans votre navigateur.)
|
||||
|
||||
## Foire aux questions
|
||||
|
||||
**Comment puis-je signaler un bug qui n'est pas à bord ?**
|
||||
|
||||
Si vous pensez avoir trouvé un bug, lisez d'abord l'article ["Help I've Found a Bug"](https://forum.freecodecamp.org/t/how-to-report-a-bug/19543) et suivez ses instructions.
|
||||
|
||||
Si vous êtes sûr qu'il s'agit d'un nouveau bug, allez-y et créez un nouveau ticket GitHub. Assurez-vous d'inclure autant d'informations que possible pour que nous puissions reproduire le bogue. Nous avons un modèle de ticket prédéfini pour vous y aider.
|
||||
|
||||
Veuillez noter que tous les tickets qui demandent de l'aide pour coder un défi seront fermés. Le système de suivi de tickets est strictement réservé aux questions et aux discussions liées à la base de code. En cas de doute, vous devriez [demander de l'aide sur le forum](https://forum.freecodecamp.org) avant de faire un rapport.
|
||||
|
||||
**Comment puis-je signaler un problème de sécurité ?**
|
||||
|
||||
Veuillez ne pas créer de tickets GitHub pour des raisons de sécurité. Envoyez plutôt un courriel à `security@freecodecamp.org` et nous nous en occuperons immédiatement.
|
||||
|
||||
**Que signifient ces différentes étiquettes qui sont étiquetées sur les problèmes ?**
|
||||
|
||||
Nos modérateurs de communauté [triage](https://en.wikipedia.org/wiki/Software_bug#Bug#Bug_management) traitent les problèmes et les demandes de retrait en fonction de leur priorité, de leur gravité et d'autres facteurs. Vous pouvez [trouver un glossaire complet de leur signification ici](https://github.com/freecodecamp/freecodecamp/labels).
|
||||
|
||||
Vous devriez passer en revue les tickets de **`Help Wanted`** ou **`first timers only`** pour avoir un aperçu rapide de ce qui est à votre disposition pour travailler dessus. Ils sont à votre disposition et vous n'avez pas besoin de demander la permission avant d'y travailler.
|
||||
|
||||
Si ces questions manquent de clarté sur ce qui doit être fait, n'hésitez pas à poser des questions dans les commentaires.
|
||||
|
||||
**J'ai trouvé une coquille, dois-je signaler un problème avant de pouvoir faire une _pull request_ ?**
|
||||
|
||||
Pour les fautes de frappe et autres changements de formulation, vous pouvez directement ouvrir une _pull request_ sans créer de ticket au préalable. Les `issues` servent généralement pour discuter de problèmes plus vastes liés aux codes ou aux aspects structurels du programme d'études.
|
||||
|
||||
**Je suis nouveau sur GitHub et l'Open Source en général :**
|
||||
|
||||
Lisez notre guide [Comment contribuer à l'Open Source](https://github.com/freeCodeCamp/how-to-contribute-to-open-source).
|
||||
|
||||
**Je suis coincé sur quelque chose qui n'est pas inclus dans cette documentation. Comment puis-je obtenir de l'aide ?**
|
||||
|
||||
N'hésitez pas à demander de l'aide :
|
||||
|
||||
- [La catégorie "Contributors" de notre forum public](https://forum.freecodecamp.org/c/contributors)
|
||||
- [Nos contributeurs publics discutent sur un salon de chat Gitter](https://gitter.im/FreeCodeCamp/Contributors)
|
||||
|
||||
Nous sommes heureux de vous aider à contribuer à tous les sujets sur lesquels vous aimeriez travailler. N'hésitez pas à nous poser des questions sur les fils de discussion associés. Nous nous ferons un plaisir de vous fournir des éclaircissements. Assurez-vous de rechercher votre requête avant d'en poster une nouvelle. Soyez poli et patient. Notre communauté de bénévoles et de modérateurs est toujours là pour vous guider à travers vos questions.
|
@ -1,149 +0,0 @@
|
||||

|
||||
[](https://travis-ci.org/freeCodeCamp/freeCodeCamp)
|
||||
[](http://makeapullrequest.com)
|
||||
[](http://www.firsttimersonly.com/)
|
||||
[](https://snyk.io/test/github/freecodecamp/freecodecamp)
|
||||
|
||||
## Bienvenue sur le code source et le curriculum open source de freeCodeCamp.org !
|
||||
|
||||
[freeCodeCamp.org](https://www.freecodecamp.org) est une communauté conviviale où vous pouvez apprendre à coder gratuitement. Elle est gérée par [un organisme à but non lucratif 501 (c) (3)](https://donate.freecodecamp.org) et soutenue par des donateurs dans le but d'aider des millions d'adultes à se reconvertir vers l'informatique. Notre communauté a déjà aidé plus de 10 000 personnes à décrocher leur premier emploi de développeur.
|
||||
|
||||
Notre programme complet de développement Web est entièrement gratuit et vous permet d'étudier à votre rythme. Nous avons des milliers de défis de codage interactif pour vous aider à développer vos compétences.
|
||||
|
||||
## Table des matières
|
||||
|
||||
- [Certifications](#certifications)
|
||||
- [La plateforme d'apprentissage](#the-learning-platform)
|
||||
- [Reporter un bug](#found-a-bug)
|
||||
- [Reporter un problème de sécurité](#found-a-security-issue)
|
||||
- [Contribuer](#contributing)
|
||||
- [Licence](#license)
|
||||
|
||||
### Certifications
|
||||
|
||||
freeCodeCamp.org propose plusieurs certifications gratuites de développeur. Chacune de ces certifications implique la création obligatoire de 5 projets d'applications Web, ainsi que des centaines de défis de codage facultatifs pour vous aider à préparer ces projets. Nous estimons que chaque certification prendra environ 300 heures à un programmeur débutant.
|
||||
|
||||
Chacun de ces 30 projets du programme freeCodeCamp.org a ses propres scénarios d'utilisation agiles et ses tests automatisés. Ces derniers vous aident à construire votre projet progressivement et garantissent que vous avez validé tous les scénarios utilisateurs avant de le soumettre.
|
||||
|
||||
Vous pouvez extraire ces suites de tests via [le CDN de freeCodeCamp](https://cdn.freecodecamp.org/testable-projects-fcc/v1/bundle.js). Autrement dit, vous pouvez construire ces projets sur des sites Web tels que CodePen et Glitch - ou même sur l'environnement local de développement de votre ordinateur.
|
||||
|
||||
Une fois une certification obtenue, vous la gardez à vie. Vous pourrez y accéder depuis votre profil LinkedIn ou votre CV. Lorsque vos employeurs potentiels ou vos clients indépendants cliquent sur le lien, ils voient une certification vérifiée qui vous est propre.
|
||||
|
||||
La seule exception à cette règle serait dans le cas où que nous découvrions des violations de notre [politique d'honnêteté académique](https://www.freecodecamp.org/academic-honesty). Lorsque nous surprenons des personnes qui plagient sans ambiguïté (soumettant le code ou les projets d'autres personnes sans les citer), nous faisons ce que toutes les institutions rigoureuses d'apprentissage doivent faire, nous révoquons leurs certifications et bannissons ces personnes.
|
||||
|
||||
Voici nos six certifications principales :
|
||||
|
||||
#### 1. Certification Responsive Web Design
|
||||
|
||||
- [Introduction à HTML et HTML5](https://learn.freecodecamp.org/responsive-web-design/basic-html-and-html5)
|
||||
- [Introduction à CSS](https://learn.freecodecamp.org/responsive-web-design/basic-css)
|
||||
- [Conception visuelle appliquée](https://learn.freecodecamp.org/responsive-web-design/applied-visual-design)
|
||||
- [Accessibilité appliquée](https://learn.freecodecamp.org/responsive-web-design/applied-accessibility)
|
||||
- [Principes de conception Web réactifs](https://learn.freecodecamp.org/responsive-web-design/responsive-web-design-principles)
|
||||
- [CSS Flexbox](https://learn.freecodecamp.org/responsive-web-design/css-flexbox)
|
||||
- [CSS Grid](https://learn.freecodecamp.org/responsive-web-design/css-grid)
|
||||
<br />
|
||||
<br />
|
||||
**Projets**: page d'hommage, formulaire d'enquête, page de promotion, page de documentation technique, portfolio personnel.
|
||||
|
||||
#### 2. Certification des algorithmes JavaScript et des structures de données
|
||||
|
||||
- [Introduction au JavaScript](https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/basic-javascript)
|
||||
- [l'ES6](https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/es6)
|
||||
- [Les expressions régulières](https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/regular-expressions)
|
||||
- [Le débugage](https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/debugging)
|
||||
- [Introduction aux Structures de données](https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/basic-data-structures)
|
||||
- [Introduction aux Algorithmes](https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/basic-algorithm-scripting)
|
||||
- [La programmation orientée objet](https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/object-oriented-programming)
|
||||
- [Programmation fonctionnelle](https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/functional-programming)
|
||||
- [Les Algorithmes - niveau intermédiaire](https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/intermediate-algorithm-scripting)
|
||||
<br />
|
||||
<br />
|
||||
**Projets**: vérificateur de palindrome, convertisseur de chiffres romains, chiffrement de César, validateur de numéros de téléphone, caisse enregistreuse.
|
||||
|
||||
#### 3. Certification des bibliothèques Front End
|
||||
|
||||
- [Bootstrap](https://learn.freecodecamp.org/front-end-libraries/bootstrap)
|
||||
- [jQuery](https://learn.freecodecamp.org/front-end-libraries/jquery)
|
||||
- [Sass](https://learn.freecodecamp.org/front-end-libraries/sass)
|
||||
- [React](https://learn.freecodecamp.org/front-end-libraries/react)
|
||||
- [Redux](https://learn.freecodecamp.org/front-end-libraries/redux)
|
||||
- [React et Redux](https://learn.freecodecamp.org/front-end-libraries/react-and-redux)
|
||||
<br />
|
||||
<br />
|
||||
**Projets**: Générateur aléatoire de citations, Prévisualisation de documents Markdown, Boîte à rythmes, Calculatrice JavaScript, Horloge 25 + 5.
|
||||
|
||||
#### 4. Certification de visualisation des données
|
||||
|
||||
- [Visualisation des données avec D3](https://learn.freecodecamp.org/data-visualization/data-visualization-with-d3)
|
||||
- [API JSON et Ajax](https://learn.freecodecamp.org/data-visualization/json-apis-and-ajax)
|
||||
<br />
|
||||
<br />
|
||||
**Projets**: Diagramme à barres, Diagramme à nuages de points, Carte de chaleur, Carte de Choroplèthes, Diagramme Treemap.
|
||||
|
||||
#### 5. Certification API et Microservices
|
||||
|
||||
- [Gestion des dépendances avec Npm](https://learn.freecodecamp.org/apis-and-microservices/managing-packages-with-npm)
|
||||
- [Introduction à Node et Express](https://learn.freecodecamp.org/apis-and-microservices/basic-node-and-express)
|
||||
- [MongoDB et Mongoose](https://learn.freecodecamp.org/apis-and-microservices/mongodb-and-mongoose)
|
||||
<br />
|
||||
<br />
|
||||
**Projets**: Microservice Horodateur, Analyseur d'en-tête de requête, Raccourcisseur d'URL, Suivi des exercices, Analyseur de métadonnées.
|
||||
|
||||
#### 6. Certification de sécurité de l'information et d'assurance qualité
|
||||
|
||||
- [Sécurité de l'information avec HelmetJS](https://learn.freecodecamp.org/information-security-and-quality-assurance/information-security-with-helmetjs)
|
||||
- [Assurance qualité et tests avec Chai](https://learn.freecodecamp.org/information-security-and-quality-assurance/quality-assurance-and-testing-with-chai)
|
||||
- [Node et Express avancés](https://learn.freecodecamp.org/information-security-and-quality-assurance/advanced-node-and-express)
|
||||
<br />
|
||||
<br />
|
||||
**Projets**: convertisseur métrique-impérial, suivi des problèmes, bibliothèque personnelle, vérificateur du prix des actions, forum de discussion anonyme.
|
||||
|
||||
#### Certification complète de développement.
|
||||
|
||||
Une fois que vous aurez obtenu ces 6 certifications, vous pourrez réclamer votre certification de développeur full stack freeCodeCamp.org. Cette distinction finale signifie que vous avez effectué environ 1 800 heures de programmation avec un large éventail d’outils de développement Web.
|
||||
|
||||
#### Anciennes Certifications
|
||||
|
||||
Nous avons également 3 anciennes certifications de notre programme de 2015, qui sont encore disponibles. Tous les projets requis pour ces anciennes certifications resteront disponibles sur freeCodeCamp.org.
|
||||
|
||||
- Ancienne Certification de développeur Front End
|
||||
- Ancienne Certification de visualisation des données
|
||||
- Ancienne Certification de développeur Back End
|
||||
|
||||
### La plateforme d'apprentissage
|
||||
|
||||
Ce code est exécuté en direct sur [freeCodeCamp.org](https://www.freecodecamp.org).
|
||||
|
||||
Notre communauté a aussi:
|
||||
|
||||
- Un [forum](https://forum.freecodecamp.org) où vous pouvez généralement avoir de l'aide en programmation ou des feedbacks sur vos projets.
|
||||
- Une chaîne [YouTube](https://youtube.com/freecodecamp) avec des cours gratuits sur Python, SQL, Android et une grande variété d'autres sujets.
|
||||
- Un [podcast](https://podcast.freecodecamp.org/) avec des discussions techniques autour de nouvelles technologies et des histoires inspirantes de développeurs.
|
||||
- [Des groupes d'études locaux](https://study-group-directory.freecodecamp.org/), situés partout dans le monde où vous pourrez programmer ensemble et en face en face.
|
||||
- Un [guide complet couvrant des milliers de sujets différents](https://guide.freecodecamp.org/)
|
||||
- Un [fil d'actualités](https://www.freecodecamp.org/news), gratuit, open source et sans pub, où vous pourrez poster vos articles de blog.
|
||||
- Un [groupe Facebook](https://www.facebook.com/groups/freeCodeCampEarth/permalink/428140994253892/) avec plus de 100 000 membres autour du monde.
|
||||
|
||||
### [Rejoignez notre communauté ici](https://www.freecodecamp.org/signin).
|
||||
|
||||
### Vous avez trouvé un bug ?
|
||||
|
||||
Si vous pensez avoir trouvé un bug, lisez d’abord l’article d’aide [Help I've Found a Bug](https://forum.freecodecamp.org/t/how-to-report-a-bug/19543) et suivez ses instructions. Si vous êtes sûr qu'il s'agit d'un nouveau bug et que vous avez vérifié que le problème est rencontré par d'autres utilisateurs, créez une nouvelle "issue" sur GitHub. Assurez-vous d'inclure autant d'informations que possible afin que nous puissions reproduire le bug.
|
||||
|
||||
### Vous avez trouvé un problème de sécurité?
|
||||
|
||||
Veuillez ne pas créer une "issue" sur Github pour des problèmes de sécurité. Au lieu de ça, envoyez un e-mail à l'adresse `security@freecodecamp.org` et nous nous pencherons dessus immédiatement.
|
||||
|
||||
### Contribuer
|
||||
|
||||
#### [Veuillez suivre ces étapes pour contribuer](CONTRIBUTING.md).
|
||||
|
||||
### Licence
|
||||
|
||||
Copyright © 2020 freeCodeCamp.org
|
||||
|
||||
Le contenu de ce référentiel est protégé par les licences suivantes:
|
||||
|
||||
- Le logiciel est sous licence [BSD-3-Clause](LICENSE.md).
|
||||
- Les ressources d'apprentissage du [curriculum](/curriculum) et du [guide](/guide) ainsi que leurs sous-repertoires sont sous licence [CC-BY-SA-4.0](/curriculum/LICENSE.md).
|
@ -1,68 +0,0 @@
|
||||
# Comment ouvrir une Pull Request
|
||||
|
||||
Une pull request vous permet d'envoyer les modifications depuis votre fork sur GitHub vers le dépôt principal de freeCodeCamp.org. Une fois que vous avez terminé de modifier le code ou de relever des défis de codage, vous devez suivre ces directives pour envoyer une pull request.
|
||||
|
||||
## Comment bien intituler une Pull Request
|
||||
|
||||
Il est recommandé d'utiliser [des titres et des messages conventionnels](https://www.conventionalcommits.org/fr/) pour les commit et les pull requests. La convention a le format suivant :
|
||||
|
||||
> `<type>([portées(s) éventuelles]): <description>`
|
||||
>
|
||||
> Par exemple:
|
||||
>
|
||||
> `fix(learn): tests for the do...while loop challenge`
|
||||
|
||||
Lors de l'ouverture d'une demande de merge = Pull Request (PR), vous pouvez utiliser les informations ci-dessous pour déterminer le type, la portée (facultatif) et description.
|
||||
|
||||
**Type:**
|
||||
|
||||
| Type | Quand utiliser |
|
||||
| :---- | :------------------------------------------------------------------------------------------------|
|
||||
| fix | Modification ou mise à jour/amélioration des fonctionnalités, des tests, texte d'une leçon, etc. |
|
||||
| feat | Seulement si vous ajoutez de nouvelles fonctionnalités, des tests, etc. |
|
||||
| chore | Changements qui ne sont pas liés au code, aux tests ou au texte d'une leçon. |
|
||||
| docs | Modifications du répertoire `/docs` ou des guides de contribution, etc. |
|
||||
|
||||
**Portée:**
|
||||
|
||||
Vous pouvez choisir une portée (scope) [dans cette liste de libellés](https://github.com/freeCodeCamp/freeCodeCamp/labels?q=scope).
|
||||
|
||||
**Description:**
|
||||
|
||||
Faites le court (moins de 30 caractères) et simple, vous pouvez ajouter plus d'informations dans l'encart de la description et les commentaires de la PR.
|
||||
|
||||
Quelques exemples de bon titres de PRs seraient :
|
||||
|
||||
- `fix(a11y): improved search bar contrast`
|
||||
- `feat: add more tests to html and css challenges`
|
||||
- `fix(api,client): prevent CORS errors on form submission`
|
||||
- `docs(i18n): Chinese translation of local setup`
|
||||
|
||||
## Proposer une Pull Request (PR)
|
||||
|
||||
1. Une fois les modifications committées, vous serez invité à créer une Pull Request sur la page GitHub de votre fork.
|
||||
|
||||

|
||||
|
||||
2. Par défaut, toutes les Pull Requests doivent être faites sur le dépôt principal freeCodeCamp, branche `master`.
|
||||
|
||||
Assurez-vous que votre fork de base est configuré sur freeCodeCamp/freeCodeCamp lorsque vous lancez une demande de Pull.
|
||||
|
||||

|
||||
|
||||
3. Soumettez la Pull Request de votre branche vers la branche `master` de freeCodeCamp.
|
||||
|
||||
4. Dans le corps de votre PR, veuillez inclure un résumé plus détaillé des changements que vous avez apportés et pourquoi.
|
||||
|
||||
- Un modèle de Pull Request vous sera présenté. Il s'agit d'une liste de contrôle que vous aurez à vérifier avant d'ouvrir la Pull Request.
|
||||
|
||||
- Remplissez les détails qui conveniennent. Ces informations seront revues et les relecteurs décideront si votre Pull Request sera acceptée ou pas.
|
||||
|
||||
- Si la PR est destinée à corriger un bogue ou un problème existant, alors, à la fin de
|
||||
la description de votre PR, ajoutez le mot-clé _Closes_ ainsi que le numéro du ticket ouvert pour [fermer automatiquement le ticket existant, si la PR est acceptée et fusionnée (en)](https://help.github.com/en/articles/closing-issues-using-keywords).
|
||||
|
||||
> Exemple: `Closes #123` fermera le ticket 123
|
||||
|
||||
5. Indiquez si vous avez testé sur une copie locale du site ou non.
|
||||
|
||||
Ceci est très important lorsque vous apportez des modifications qui ne se limitent pas à éditer le contenu d'un texte comme la documentation ou la description d'un défi. Des exemples de changements nécessitant des tests locaux incluent JavaScript, CSS ou HTML qui pourraient changer la fonctionnalité ou la disposition d'une page.
|
@ -1,116 +0,0 @@
|
||||
<!-- do not translate this -->
|
||||
| [Read these guidelines in other languages](/docs/i18n-languages) |
|
||||
|-|
|
||||
<!-- do not translate this -->
|
||||
|
||||
# Beitragsrichtlinien
|
||||
|
||||
Hallo 👋!
|
||||
|
||||
freeCodeCamp.org wird dank vieler tausender Freiwilligen wie dir ermöglicht. Wir sind sehr dankbar für deine Beiträge und freuen uns, dich hier willkommen zu heißen.
|
||||
|
||||
Wir setzen unseren [„Verhaltenskodex″](https://www.freecodecamp.org/code-of-conduct) streng durch. Nimm dir einen Moment Zeit, ihn zu lesen. Er ist nur 196 Wörter lang.
|
||||
|
||||
Viel Spaß beim Mitwirken 🎉!
|
||||
|
||||
## Hier sind einige Wege, wie du helfen kannst
|
||||
|
||||
Du kannst dir einen beliebigen Bereich aussuchen, zu dem du etwas beitragen möchtest:
|
||||
|
||||
1. [Trage etwas zu dieser Open-Source-Codebase bei](#Trage-etwas-zu-dieser-Open-Source-Codebase-bei). Hilf dabei, die [Leitfaden-Artikel](https://guide.freecodecamp.org/) oder die [Coding Challenges](https://learn.freecodecamp.org/) zu bearbeiten, oder fixe Bugs auf der Lernplattform.
|
||||
|
||||
2. Hilf Campern in unserem [öffentlichen Forum](https://forum.freecodecamp.org/). [Beantworte ihre Programmierfragen](https://forum.freecodecamp.org/?max_posts=1) oder [gib ihnen Feedback zu ihren Programmierprojekten](https://forum.freecodecamp.org/c/project-feedback?max_posts=1).
|
||||
|
||||
3. Hilf uns, Untertitel zu unseren [YouTube-Kanal-Videos](https://www.youtube.com/channel/UC8butISFwT-Wl7EV0hUK0BQ/videos) hinzuzufügen.
|
||||
|
||||
## Trage etwas zu dieser Open-Source-Codebase bei
|
||||
|
||||
Wir haben eine riesige Open-Source-Codebase, die aus tausenden von [Coding Challenges](https://learn.freecodecamp.org) und [Leitfaden-Artikeln](https://guide.freecodecamp.org) besteht.
|
||||
|
||||
### Erstelle, überarbeite und behebe Fehler in unseren Coding Challenges
|
||||
|
||||
Alle unsere Coding Challenges werden von der Community beaufsichtigt und bringen Expertenwissen von Freiwilligen wie dir ein.
|
||||
|
||||
Du kannst helfen, diese zu erweitern und ihren Wortlaut zu verbessern. Du kannst auch die User Stories aktualisieren, um das Konzept besser zu erklären oder redundante zu entfernen. Außerdem kannst du auch die Challenge-Tests verbessern, um den Code von Personen genauer zu testen.
|
||||
|
||||
### Helfe uns, Fehler in der Lernplattform von freeCodeCamp.org zu beheben.
|
||||
|
||||
Unsere Lernplattform läuft auf einem modernen JavaScript-Stack. Es enthält verschiedene Komponenten, Tools und Bibliotheken, einschließlich, aber nicht ausschließlich, Node.js, MongoDB, LoopBack, OAuth 2.0, React, Gatsby, Webpack und mehr.
|
||||
|
||||
Im Großen und Ganzen haben wir,
|
||||
|
||||
- einen Node.js-basierten API-Server.
|
||||
- eine Reihe von React-basierten Client-Anwendungen.
|
||||
- ein Skript, mit dem wir unsere Frontend-Projekte auswerten.
|
||||
|
||||
Dazu beizutragen erfordert ein gewisses Verständnis von APIs, ES6-Syntax und viel Neugierde.
|
||||
|
||||
Im Wesentlichen erwarten wir grundlegende Kenntnisse in einigen der oben genannten Technologien, Tools und Bibliotheken. Allerdings ist es nicht erforderlich, dass du ein Experte für diese Technologien bist, um einen Beitrag leisten zu können.
|
||||
|
||||
**Wenn du uns helfen möchtest, unsere Codebasis zu verbessern, kannst du entweder [freeCodeCamp lokal einrichten](/docs/how-to-setup-freecodecamp-locally.md) oder Gitpod, eine kostenlose Online-Dev-Umgebung, verwenden.**
|
||||
|
||||
[](https://gitpod.io/#https://github.com/freeCodeCamp/freeCodeCamp)
|
||||
|
||||
(Startet eine ready-to-code Entwicklungsumgebung für Freecodecamp in deinem Browser.)
|
||||
|
||||
## Häufig gestellte Fragen
|
||||
|
||||
**Wie kann ich einen Bug melden, der noch nicht dokumentiert wurde?**
|
||||
|
||||
Wenn du denkst, dass du einen Bug gefunden hast, lies zunächst den ["Hilfe, ich habe einen Bug gefunden"](https://forum.freecodecamp.org/t/how-to-report-a-bug/19543)-Artikel und folge den Anweisungen dort.
|
||||
|
||||
Wenn du dir sicher bist, dass es sich um einen neuen Bug handelt, kannst du ein neues GitHub-Issue erstellen. Stelle sicher, dass du so viel Information wie möglich dazuschreibst, sodass wir den Bug nachvollziehen können. Wir haben ein vorgefertigtes Issue-Template, das dir dabei hilft.
|
||||
|
||||
Bitte beachte, dass alle Issues, die nach Hilfe bei einer Coding Challenge fragen, geschlossen werden. Der Issue-Tracker ist ausschließlich für Probleme und Diskussionen, die sich auf die Codebase beziehen. Wenn du dir nicht sicher bist, [frag im Forum nach Hilfe](https://forum.freecodecamp.org), bevor du einen Report machst.
|
||||
|
||||
**Wie kann ich ein Sicherheitsrisiko melden?**
|
||||
|
||||
Bitte erstelle keine GitHub-Issues für Sicherheitsrisiken. Schicke stattdessen eine E-Mail an `security@freecodecamp.org` und wir werden uns sofort darum kümmern.
|
||||
|
||||
**Was bedeuten die unterschiedlichen Label, die auf Issues getaggt sind?**
|
||||
|
||||
Unsere Community-Moderatoren [sichten](https://en.wikipedia.org/wiki/Software_bug#Bug_management) Issues und Pull Requests basierend auf ihrer Priorität, Kritikalität und anderen Faktoren. [Hier findest du das komplette Glossar zu den Bedeutungen](https://github.com/freecodecamp/freecodecamp/labels).
|
||||
|
||||
Du solltest durch die **`Help Wanted`** oder **`first timers only`** Issues schauen, um einen schnellen Überblick über das, woran du arbeiten könntest, zu gewinnen. Diese sind frei zur Bearbeitung und du musst nicht nach Erlaubnis fragen, um daran zu arbeiten.
|
||||
|
||||
Wenn diese Issues unklar sind bezüglich was getan werden muss, zögere nicht, Fragen in den Kommentaren zu stellen.
|
||||
|
||||
**Ich habe einen Rechtschreibfehler gefunden, soll ich ein Issue öffnen, bevor ich einen Pull Request machen kann?**
|
||||
|
||||
Für Rechtschreibfehler und andere Formulierungsänderungen kannst du direkt einen Pull Request erstellen, ohne vorher ein Issue zu öffnen. Issues sind eher für die Diskussion größerer Probleme, die sich mit dem Code und anderen strukturellen Aspekten des Curriculums beschäftigen.
|
||||
|
||||
### Wie bekomme ich ein Issue zugewiesen?
|
||||
|
||||
Wir weisen Issues in der Regel niemandem außer Langzeit-Mitarbeitern zu, um mehrdeutige No-Shows zu vermeiden. Stattdessen verfolgen wir die untenstehende Richtlinie, um allen gegenüber fair zu sein:
|
||||
|
||||
1. Der erste Pull Request für ein Issue wird für die Zusammenführung bevorzugt.
|
||||
2. Im Falle von mehreren Pull Requests für das gleiche Issue geben wir der Qualität des Codes in den Pull Requests Vorrang.
|
||||
- Hast du Tests eingebaut?
|
||||
- Hast du alle Anwendungsfälle gefunden?
|
||||
- Hast du sichergestellt, dass alle Tests bestanden wurden, und hast du bestätigt, dass alles lokal auf deinem Rechner funktioniert?
|
||||
3. Schließlich favorisieren wir Pull-Requests, die unseren empfohlenen Richtlinien folgen.
|
||||
- Hast du die Checkliste für Pull-Requests befolgt?
|
||||
- Hast du deinen Pull Request Titel sinnvoll benannt und verständlich formuliert?
|
||||
|
||||
Du benötigst keine Berechtigung für Issues, die mit `Help Wanted` oder `first timers only` markiert sind. Befolge die Anweisungen sorgfältig und öffne einen Pull Request.
|
||||
|
||||
**Ich bin ein GitHub/Open-Source-Neuling:**
|
||||
|
||||
Lies unseren [Wie wirke ich an Open-Source-Projekten mit-Artikel](https://github.com/freeCodeCamp/how-to-contribute-to-open-source).
|
||||
|
||||
**Ich hänge an etwas fest, das nicht in der Dokumentation beschrieben ist. Wie bekomme ich Hilfe?**
|
||||
|
||||
An den folgenden Orten kannst du um Hilfe bitten:
|
||||
|
||||
- [Der "Contributor"-Bereich unseres öffentlichen Forums](https://forum.freecodecamp.org/c/contributors)
|
||||
- [Unser öffentlicher Chatroom für Contributor auf Gitter](https://gitter.im/FreeCodeCamp/Contributors)
|
||||
|
||||
Wir helfen dir sehr gerne beim Mitwirken an jeglichen Bereichen, die dich interessieren. Stelle sicher, dass du erst nach deiner Anfrage suchst, bevor du eine neue anlegst. Sei höflich und geduldig. Unsere Community von Freiwilligen und Moderatoren ist immer da, um dich bei deinen Anliegen zu führen.
|
||||
|
||||
| Name | GitHub | Twitter |
|
||||
|:----------------|:-------|:--------|
|
||||
| Mrugesh Mohapatra | [`@raisedadead`](https://github.com/raisedadead) | [`@raisedadead`](https://twitter.com/raisedadead)|
|
||||
| Ahmad Abdolsaheb | [`@ahmadabdolsaheb`](https://github.com/ahmadabdolsaheb) | [`@Abdolsaheb`](https://twitter.com/Abdolsaheb) |
|
||||
| Kristofer Koishigawa | [`@scissorsneedfoodtoo`](https://github.com/scissorsneedfoodtoo) | [`@kriskoishigawa`](https://twitter.com/kriskoishigawa) |
|
||||
|
||||
> **Email: `dev@freecodecamp.org`**
|
@ -1,103 +0,0 @@
|
||||
<!-- do not translate this -->
|
||||
| [Read these guidelines in other languages](/docs/i18n-languages) |
|
||||
|-|
|
||||
<!-- do not translate this -->
|
||||
|
||||
# Lokales Abfangen ausgehender E-Mails für E-Mail-Workflows
|
||||
|
||||
> **Note:** Dies ist ein **optionaler** Schritt und wird nur bei der Arbeit mit E-Mail-Workflows benötigt.
|
||||
|
||||
## Einleitung
|
||||
|
||||
Einige E-Mail-Workflows, wie z.B. die Aktualisierung der E-Mails eines Benutzers, erfordern, dass der Backend-Api-Server ausgehende E-Mails versendet. Als Alternative zur Verwendung eines E-Mail-Dienstleisters zum Senden von eigentlichen E-Mail-Nachrichten ist MailHog ein Entwicklerwerkzeug für E-Mail-Tests, das die von ihrer freeCodeCamp-Instanz gesendeten E-Mail-Nachrichten erfasst.
|
||||
|
||||
## MailHog installieren
|
||||
|
||||
MailHog kann auf MacOS, Windows und Linux installiert werden
|
||||
|
||||
- [MailHog auf MacOS installieren](#mailhog-auf-macos-installieren)
|
||||
- [MailHog auf Windows installieren](#mailhog-auf-windows-installieren)
|
||||
- [MailHog auf Linux installieren](#mailhog-auf-linux-installieren)
|
||||
|
||||
### MailHog auf MacOS installieren
|
||||
|
||||
Installiere MailHog auf MacOS mit [Homebrew](https://brew.sh/):
|
||||
|
||||
```bash
|
||||
brew install mailhog
|
||||
brew services start mailhog
|
||||
```
|
||||
|
||||
Die obigen Befehle starten einen Mailhog-Dienst im Hintergrund.
|
||||
|
||||
Wenn die Installation abgeschlossen ist, kannst du mit [MailHog](#mailhog-benutzen) beginnen.
|
||||
|
||||
### MailHog auf Windows installieren
|
||||
|
||||
Lade die neueste Version von MailHog aus dem [offiziellen MailHog Repository](https://github.com/mailhog/MailHog/releases) herunter. Suche und klicke auf den Link für deine Windows-Version (32 oder 64 Bit) und die .exe-Datei wird auf deinen Computer heruntergeladen.
|
||||
|
||||
Wenn der Download abgeschlossen ist, klicke auf die Datei um sie zu öffnen. Es kann eine Windows-Firewall-Benachrichtigung erscheinen, die eine Zugriffsberechtigung für MailHog anfordert. Es öffnet sich eine Standard-Windows-Befehlszeile, in der MailHog ausgeführt wird, sobald der Zugriff auf die Firewall gewährt wird.
|
||||
|
||||
Schließe MailHog, indem du das Eingabeaufforderungsfenster schließt. Um MailHog erneut zu starten, klicke auf die ausführbare MailHog-Datei (.exe), die ursprünglich heruntergeladen wurde - es ist nicht notwendig, eine neue MailHog-Installationsdatei herunterzuladen.
|
||||
|
||||
Starte [MailHog](#mailhog-benutzen).
|
||||
|
||||
### MailHog auf Linux installieren
|
||||
|
||||
Als Erstes installiere [Go](https://golang.org).
|
||||
|
||||
Führe die folgenden Befehle aus, um GO auf Debian-basierten Systemen wie Ubuntu und Linux Mint zu installieren.
|
||||
|
||||
```bash
|
||||
sudo apt-get install golang
|
||||
```
|
||||
|
||||
Führe die folgenden Befehle aus, um GO auf RPM-basierten Systemen wie CentOS, Fedora, Red Hat Linux, ect. zu installieren.
|
||||
|
||||
```bash
|
||||
sudo dnf install golang
|
||||
```
|
||||
|
||||
Alternativ kannst du auch die folgenden Befehle ausführen, um GO zu installieren.
|
||||
|
||||
```bash
|
||||
sudo yum install golang
|
||||
```
|
||||
|
||||
Stelle nun mit den folgenden Befehlen den Pfad für Go ein.
|
||||
|
||||
```bash
|
||||
echo "export GOPATH=$HOME/go" >> ~/.profile
|
||||
echo 'export PATH=$PATH:/usr/local/go/bin:$GOPATH/bin' >> ~/.profile
|
||||
source ~/.profile
|
||||
```
|
||||
|
||||
Gebe abschließend die folgenden Befehle ein, um MailHog zu installieren und auszuführen.
|
||||
|
||||
```bash
|
||||
go get github.com/mailhog/MailHog
|
||||
sudo cp /home/$(whoami)/go/bin/MailHog /usr/local/bin/mailhog
|
||||
mailhog
|
||||
```
|
||||
|
||||
Starte [MailHog](#mailhog-benutzen).
|
||||
|
||||
## MailHog benutzen
|
||||
|
||||
Wenn die MailHog Installation abgeschlossen ist und MailHog ausgeführt wird, öffne eine neue Browser-Registerkarte oder ein neues Fenster und navigiere zu [http://localhost:8025](http://localhost:8025), um deinen MailHog-Eingang zu öffnen,
|
||||
|
||||

|
||||
|
||||
E-Mails die von deiner freeCodeCamp-Installation gesendet wurden, werden wie folgt angezeigt
|
||||
|
||||

|
||||
|
||||
Wenn du eine E-Mail öffnest stehen dir zwei Registerkarten zur Verfügung, Klartext oder Quellinhalte. Stelle sicher, dass die Registerkarte Klartext wie folgt, ausgewählt ist.
|
||||
|
||||

|
||||
|
||||
Alle Links in der E-Mail sollten anklickbar sein und in ihre URL aufgelöst werden.
|
||||
|
||||
## nützliche Links
|
||||
|
||||
- Weitere Informationen zu MailHog finden Sie im [MailHog Repository](https://github.com/mailhog/MailHog). Weitere Informationen zu benutzerdefinierten MailHog-Konfigurationen sind ebenfalls verfügbar.
|
@ -1,48 +0,0 @@
|
||||
<!-- do not translate this -->
|
||||
| [Read these guidelines in other languages](/docs/i18n-languages) |
|
||||
|-|
|
||||
<!-- do not translate this -->
|
||||
|
||||
# So erstellst du einen Pull Request bei uns
|
||||
|
||||
## Die richtige Titel-Formatierung für einen guten Pull Request
|
||||
|
||||
Wenn du einen Pull Request (PR) erstellst, verwende das folgende Format für den Titel:
|
||||
`Änderung(Bereich): PR-Titel`
|
||||
|
||||
Arten von Änderungen: 'fix', 'feat', 'chore', 'refactor', 'docs' oder 'perf'
|
||||
|
||||
| Bereich | Erklärung |
|
||||
|---|---|
|
||||
| `learn`,`curriculum` | Für Pull Requests, die Änderungen an den Herausforderungen des Curriculums vornehmen. |
|
||||
| `client` | Für Pull Requests, die Änderungen an der Logik der Clientplattform oder der Benutzeroberfläche vornehmen. |
|
||||
| `guide` | Für Pull Requests, die Änderungen an dem Leitfaden vornehmen. |
|
||||
| `docs` | Für Pull Requests, die Änderungen an der Projektdokumentation vornehmen. |
|
||||
|
||||
Ein Beispiel: `fix(learn): Fixed tests for the do...while loop challenge`
|
||||
|
||||
## Wichtige Schritte
|
||||
|
||||
1. Sobald du die Änderungen committet hast, wirst du aufgefordert, einen Pull Request auf der GitHub-Seite deines Forks zu erstellen.
|
||||
|
||||

|
||||
|
||||
2. Standardmäßig sollten alle Pull Requests gegen den `master` Zweig des Hauptrepositories von freeCodeCamp gerichtet sein.
|
||||
|
||||
Stelle sicher, dass dein `base fork:` auf freeCodeCamp/freeCodeCamp eingestellt ist, wenn du einen Pull Request eingibst.
|
||||
|
||||

|
||||
|
||||
3. Sende den Pull Request aus deinem Zweig an den `master` Zweig von freeCodeCamp.
|
||||
|
||||
4. Füge im Text deines PR eine detailliertere Zusammenfassung der von dir vorgenommen Änderungen und den Grund dafür hinzu.
|
||||
|
||||
- Es wird dir eine PR-Vorlage mit Checkliste angezeigt. Fülle sie aus und prüfe nochmal, ob du an alles gedacht hast.
|
||||
|
||||
- Diese Informationen werden überprüft und als Basis für die Entscheidung herangezogen, ob dein Pull Request akzeptiert wird oder nicht.
|
||||
|
||||
- Wenn der PR einen bestehenden Bug/Fehler beheben soll, dann füge am Ende der Beschreibung das Schlüsselwort `closes` und #xxxx an (wobei xxxx die 'Issue'-Nr. darstellt). Beispiel: `closes #1337`. Dadurch schließt GitHub automatisch das bestehende Issue, wenn die PR akzeptiert und zusammengeführt wird.
|
||||
|
||||
5. Gebe an, ob du auf einer lokalen Kopie der Website getestet hast oder nicht.
|
||||
|
||||
Das ist sehr wichtig, wenn du Änderungen vornimmst, die nicht die Dokumentation sondern den Code selbst betreffen. Beispiele für Änderungen, die lokale Tests erfordern, sind: JavaScript, CSS und HTML. Diese könnten die Funktionalität oder das Layout einer Seite verändern und müssen daher getestet werden.
|
@ -1,314 +0,0 @@
|
||||
<!-- do not translate this -->
|
||||
| [Read these guidelines in other languages](/docs/i18n-languages) |
|
||||
|-|
|
||||
<!-- do not translate this -->
|
||||
|
||||
# Wie man an Coding Herausforderungen arbeitet
|
||||
|
||||
Unser Ziel ist es, eine unterhaltsame und klare interaktive Lernerfahrung zu entwickeln.
|
||||
|
||||
Das Entwerfen von interaktiven Programmierherausforderungen ist schwierig. Es wäre viel einfacher, eine ausführliche Erklärung zu schreiben oder ein Video-Tutorial zu erstellen. Für unsere Kernherausforderungen halten wir jedoch an dem fest, was für die meisten Menschen am besten funktioniert - ein völlig interaktives, videospielartiges Erlebnis.
|
||||
|
||||
Wir wollen, dass du mit so wenig Schwierigkeiten wie möglich Dynamik entwickelst und unseren Lehrplan durchbrichst. Wir möchten, dass du mit Selbstvertrauen und einer großen Erfahrung mit Programmierkonzepten in die Projekte einsteigst.
|
||||
|
||||
Diese Herausforderungen zu meistern, erfordert viel Kreativität und Liebe zum Detail. Aber du wirst viel Hilfe haben. Du hast Unterstützung von einem ganzen Team von Mitwirkenden, denen du Ideen zeigen und deine Herausforderungen demonstrieren kannst. Bleibe aktiv im [Contributors Room](https://gitter.im/freecodecamp/contributors) und stelle viele Fragen.
|
||||
|
||||
Mit deiner Hilfe können wir einen interaktiven Codierungslehrplan entwerfen, der Millionen von Menschen helfen wird, das Programmieren für die nächsten Jahre zu erlernen.
|
||||
|
||||
Der Inhalt für jede Herausforderung wird in einer eigenen Markdown Datei gespeichert. Diese Markdown Datei wird später mit unseren Tools auf die Webseite übertragen, mit der du interagieren kannst. Du findest alle lehrplanmäßigen Inhalte von freeCodeCamp.org im Verzeichnis [`/curriculum`](/curriculum).
|
||||
|
||||
Es gibt zwei Möglichkeiten, wie du an diesen Herausforderungen arbeiten kannst:
|
||||
|
||||
- Wir empfehlen, das Projekt zu klonen und [lokal](https://github.com/freeCodeCamp/freeCodeCamp/blob/master/docs/how-to-setup-freecodecamp-locally.md) auf deinen Computer zu bearbeiten. Hilfreich sind dabei unsere [Beitrags Richtlinien](https://github.com/freeCodeCamp/freeCodeCamp/blob/master/docs/i18n-languages/german/CONTRIBUTING.md).
|
||||
- Oder optional kannst du eine Challenge innerhalb der GitHub-Oberfläche ändern, indem du auf das Bleistift-Symbol klickst, um mit der Bearbeitung der Datei zu beginnen.
|
||||
|
||||
## Herausforderungsvorlage
|
||||
|
||||
Nachfolgend findest du eine Vorlage, wie die Hausforderungs-Markdown-Dateien aussehen.
|
||||
|
||||
**Notes:**
|
||||
|
||||
1. In den folgenden Abschnitt findest du Beispiele für `{ext}`:
|
||||
- `html` - HTML/CSS
|
||||
- `js` - JavaScript
|
||||
- `jsx` - JSX
|
||||
|
||||
2. Für den Abschnitt `tests` unten sollten `text` und `testString` gültige YAML-Zeichenketten sein. `testString` kann eine Zeichenkettenfunktion oder ein Ausdruck sein, der möglicherweise Chai-Asserts verwendet.
|
||||
|
||||
````md
|
||||
---
|
||||
id: Unique identifier (alphanumerical, MongoDB_id)
|
||||
title: Challenge Title
|
||||
challengeType: 0
|
||||
videoUrl: 'url of video explanation'
|
||||
---
|
||||
|
||||
## Description
|
||||
<section id='description'>
|
||||
A Description of the challenge and what is required to pass
|
||||
</section>
|
||||
|
||||
## Instructions
|
||||
<section id='instructions'>
|
||||
Instructions about what exactly needs to be done.
|
||||
</section>
|
||||
|
||||
## Tests
|
||||
<section id='tests'>
|
||||
|
||||
``` yml
|
||||
tests:
|
||||
- text: Should return "foo"
|
||||
testString: 'A stringified function possibly using Chai asserts'
|
||||
```
|
||||
|
||||
</section>
|
||||
|
||||
## Challenge Seed
|
||||
<section id='challengeSeed'>
|
||||
|
||||
<div id='{ext}-seed'>
|
||||
|
||||
```{ext}
|
||||
Code displayed in the editor by default.
|
||||
|
||||
This is a required section for the challenge.
|
||||
```
|
||||
|
||||
</div>
|
||||
|
||||
### Before Test
|
||||
<div id='{ext}-setup'>
|
||||
|
||||
```{ext}
|
||||
Optional Test setup code.
|
||||
```
|
||||
|
||||
</div>
|
||||
|
||||
### After Test
|
||||
<div id='{ext}-teardown'>
|
||||
|
||||
```{ext}
|
||||
Optional Test tear down code.
|
||||
```
|
||||
|
||||
</div>
|
||||
|
||||
</section>
|
||||
|
||||
## Solution
|
||||
<section id='solution'>
|
||||
|
||||
```{ext}
|
||||
// solution required
|
||||
```
|
||||
|
||||
</section>
|
||||
````
|
||||
|
||||
## Nummerierung von Herausforderungen
|
||||
|
||||
Jede Herausforderung braucht eine `ID`. Wenn du keine angibst, erstellt MongoDB beim Speichern der Daten eine neue zufällige, aber das wollen wir nicht, da wir wollen, dass die Challenge-IDs in verschiedenen Umgebungen (Staging, Produktion, viele verschiedene Entwickler, etc.) konsistent sind.
|
||||
|
||||
Um eine neue in einer Shell zu generieren (vorausgesetzt, MongoDB läuft separat):
|
||||
|
||||
1. Run `mongo` command
|
||||
2. Run `ObjectId()` command
|
||||
|
||||
Beispiel:
|
||||
|
||||
```bash
|
||||
$ mongo
|
||||
MongoDB shell version v3.6.1
|
||||
connecting to: mongodb://127.0.0.1:27017
|
||||
MongoDB server version: 3.4.10
|
||||
...
|
||||
$ ObjectId()
|
||||
ObjectId("5a474d78df58bafeb3535d34")
|
||||
```
|
||||
|
||||
Das Ergebnis ist eine neue ID, z.B. `5a474d78df58bafeb353535d34` oben.
|
||||
|
||||
Sobald du deine ID hast, lege sie in die Markdown-Datei an den oberen Rand als "id" Feld.
|
||||
Beispiel:
|
||||
|
||||
```yml
|
||||
---
|
||||
id: 5a474d78df58bafeb3535d34
|
||||
title: Challenge Title
|
||||
```
|
||||
|
||||
## Herausforderungen bennnen
|
||||
|
||||
Dinge zu benennen ist schwierig. Wir haben es einfacher gemacht, indem wir einige Einschränkungen eingeführt haben.
|
||||
|
||||
Alle Challenge-Titel sollten explizit und auf Englisch sein und dem folgenden Muster folgen:
|
||||
|
||||
[Verb] [Sache]
|
||||
|
||||
Hier sind ein paar Beispiele für Herausforderungsnamen:
|
||||
|
||||
- Use Clockwise Notation to Specify the Padding of an Element
|
||||
- Condense arrays with .reduce
|
||||
- Use Bracket Notation to Find the First Character in a String
|
||||
|
||||
|
||||
## Schreiben von Challenge-Beschreibungen/Anweisungen
|
||||
|
||||
Die Sätze sollten klar und prägnant und mit minimalem Fachjargon sein. Bei Verwendung sollte der Fachjargon sofort in Klartext definiert werden.
|
||||
|
||||
Halte Absätze kurz (ca. 1-4 Sätze). Die Wahrscheinlichkeit, dass die Leute mehrere kurze Absätze statt einer Wand voll Text lesen, ist höher.
|
||||
|
||||
Der Herausforderungstext sollte die zweite Person ("Du") verwenden, um ihr einen persönlichen Gesprächston zu geben. Auf diese Weise scheinen der Text und die Anweisungen direkt mit dem Benutzer zu sprechen, der die Herausforderung bewältigt. Versuche die erste Person nicht zu benutzen ("Ich", "wir", "lasst uns" und "uns").
|
||||
|
||||
Verwende keine ausgehenden Links. Diese unterbrechen den Fluss. Der Benutzer sollten bei diesen Herausforderungen nie etwas googlen müssen. Wenn es Ressourcen gibt, von denen du denkst, dass diese für den Benutzer von Nutzen sein könnten, füge sie dem Artikel über den Leitfaden der Herausforderung hinzu.
|
||||
|
||||
Bei Bedarf können Diagramme hinzugefügt werden.
|
||||
|
||||
Verwende keine Emojis oder Emoticons in Herausforderungen. freeCodeCamp hat eine globale Gemeinschaft, und die kulturelle Bedeutung eines Emojis oder Emoticons kann weltweit unterschiedlich sein. Außerdem können Emojis auf verschiedenen Systemen unterschiedlich darstellen.
|
||||
|
||||
Richtige Substantive sollten nach Möglichkeit eine korrekte Groß-/Kleinschreibung verwenden. Nachfolgend finden Sie eine Liste von Wörtern, wie sie in den Herausforderungen vorkommen sollten.
|
||||
|
||||
- JavaScript (Großbuchstaben in "J" und "S" und keine Abkürzungen)
|
||||
- Node.js
|
||||
- Frontend-Entwicklung (Adjektivform mit einem Bindestrich) ist, wenn Sie am Frontend arbeiten (Substantivform ohne Bindestrich). Das Gleiche gilt für "Backend", "Full Stack" und viele andere zusammengesetzte Begriffe.
|
||||
|
||||
### Die 2-Minuten Regel
|
||||
|
||||
Jede Herausforderung sollte innerhalb von 120 Sekunden für einen englischen Muttersprachler lösbar sein, der die vor ihm liegenden Herausforderungen gemeistert hat. Dazu gehört auch die Zeit, die benötigt wird, um die Anweisungen zu lesen, den gesetzten Code zu verstehen, einen eigenen Code zu schreiben und alle Tests bestehen zu lassen.
|
||||
|
||||
Wenn es länger als zwei Minuten dauert, die Herausforderung zu bestehen, hast du zwei Möglichkeiten:
|
||||
|
||||
- Vereinfache die Herausforderung, oder
|
||||
- Teile die Herausforderung in zwei Herausforderungen auf.
|
||||
|
||||
Die 2-Minuten-Regel zwingt dich, den Herausforderungs-Designer, die Anweisungen kurz und bündig zu formulieren, deinen Startcode klar zu formulieren und deine Tests einfach durchzuführen.
|
||||
|
||||
Wir haben JavaScript-Ereignisse, die verfolgen, wie lange es dauert, bis die Benutzer die Herausforderungen lösen, und wir können diese nutzen, um Herausforderungen zu identifizieren, die vereinfacht oder aufgeteilt werden müssen.
|
||||
|
||||
### Modularität
|
||||
|
||||
Jede Herausforderung sollte genau ein Konzept vermitteln, und dieses Konzept sollte sich aus dem Namen der Herausforderung ergeben.
|
||||
|
||||
Wir können zuvor abgedeckte Konzepte durch Wiederholung und Variationen verstärken - zum Beispiel die Einführung von h1-Elementen in eine Herausforderung, dann h3-Elemente ein paar Herausforderungen später.
|
||||
|
||||
Unser Ziel ist es, Tausende von 2-minütigen Herausforderungen zu bewältigen. Diese können zusammenfließen und zuvor abgedeckte Konzepte wiederholen.
|
||||
|
||||
### Formatieren des Herausforderungstextes
|
||||
|
||||
Hier sind spezifische Formatierungsrichtlinien für Herausforderungstexte und Beispiele:
|
||||
|
||||
- Sprach-Keywords gehen in `<code>` Tags. Zum Beispiel HTML-Tag-Namen oder CSS-Eigenschaftsnamen.
|
||||
- Die erste Instanz eines Schlüsselwortes, wenn es definiert wird, oder allgemeine Schlüsselwörter (z.B. "object" oder "immutable") gehen in `<dfn>` Tags.
|
||||
- Verweise auf Codeteile (z.B. Funktions-, Methoden- oder Variablennamen) sollten in `<code>` Tags eingeschlossen werden. Siehe Beispiel unten:
|
||||
- Verwende <code>parseInt</code>, um die Variable <code>realNumber</code> in eine ganze Zahl zu konvertieren.
|
||||
- Mehrzeilige Codeblöcke **müssen durch eine leere Zeile** eingeleitet werden. Die nächste Zeile muss mit drei Backticks beginnen, gefolgt von einer der [ unterstützten Sprachen ](https://prismjs.com/#unterstützten-sprachen). Um den Codeblock zu vervollständigen, müssen Sie eine "Newline" beginnen, die nur drei Backticks und **eine weitere Leerzeile** hat.
|
||||
**Note:** Wenn Sie einen Beispielcode in YAML verwenden möchten, verwenden Sie `yaml` anstelle von `yml` für die Sprache rechts von den Backticks.
|
||||
|
||||
Siehe Beispiel unten:
|
||||
|
||||
````md
|
||||
The following is an example of code:
|
||||
|
||||
```{language}
|
||||
|
||||
[HIER DEINEN CODE]
|
||||
|
||||
```
|
||||
````
|
||||
|
||||
- Zusätzliche Informationen in Form einer Notiz sollten wie folgt formatiert werden: `<strong>Note:</strong> Rest of note text...`
|
||||
- Wenn mehrere Notizen benötigt werden, liste alle Notizen in separaten Sätzen im folgenden Format auf: `<strong>Notes:</strong> First note text. Second note text.`.
|
||||
- Verwende gegebenenfalls doppelte Anführungszeichen.
|
||||
|
||||
## Schreiben von Tests
|
||||
|
||||
Die Herausforderungen sollten so viele Tests wie möglich umfassen, um sicherzustellen, dass ein Benutzer ein Konzept versteht.
|
||||
|
||||
Unser Ziel ist es Wissen zu vermitteln und dann zu überprüfe, ob du alles verstanden hast.
|
||||
|
||||
Challenge-Tests können die Assertionsbibliotheken Node.js und Chai.js verwenden. Bei Bedarf kann auch auf benutzergenerierten Code in der Variablen "code" zugegriffen werden.
|
||||
|
||||
## Startcode formatieren
|
||||
|
||||
Hier sind spezifische Formatierungsrichtlinien für den Startcode:
|
||||
|
||||
- Zwei Leerzeichen zum Einrücken verwenden
|
||||
- JavaScript-Anweisungen enden mit einem Semikolon.
|
||||
- Verwende gegebenenfalls doppelte Anführungszeichen.
|
||||
- Kommentare sollten ein Leerzeichen zwischen den Kommentarzeichen und dem Kommentar selbst haben.
|
||||
|
||||
Beispiel: `// Fix this line`
|
||||
|
||||
## Tipps und Lösungen zur Curriculum Herausforderung
|
||||
|
||||
Jede Challenge hat eine Schaltfläche "Get a Hint", so dass ein Benutzer auf alle Hinweise/Lösungen zugreifen kann, die für die Challenge erstellt wurden. Curriculum Hinweise/Lösungsinhalte findest du auf [unseren Forum](https://forum.freecodecamp.org/c/guide) unter der Kategorie "Guide".
|
||||
|
||||
Wenn du einen Fehler in einem Hinweis/Lösungsinhalt zu einer bestehenden Herausforderung findest, kannst du Vorschläge unter der Kategorie [Beitragende](https://forum.freecodecamp.org/c/contributors) machen. Moderatoren und Benutzer mit Vertrauensstufe 3 überprüfen die Kommentare und entscheiden, ob die Änderungen in der entsprechende Vorschlag aufgenommen werden sollen oder nicht.
|
||||
|
||||
### Hinzufügen neuer Herausforderungs-Hinweise/Lösungen Themenbereiche
|
||||
|
||||
Führe die folgenden Schritte aus, wenn ein neues Problem mit Hinweisen/Lösungen hinzufügt werden soll.
|
||||
|
||||
1. Beginne mit den gleichen Schritten wie bei [Erstellung eines neuen Themas](creating-a-new-guide-topic), aber überprüfe den nächsten für das Erstellen des Titels.
|
||||
2. Der Titel des Themas sollte mit "freeCodeCamp Challenge Guide" beginnen: " verkettet mit dem eigentlichen Titel der Lehrplanherausforderung. Wenn die Herausforderung beispielsweise "Chunky Monkey" heißt, lautet der Thementitel "freeCodeCamp Challenge Guide": Chunky Monkey".
|
||||
3. `camperbot` sollte der Besitzer dieser Themen/Posts sein, also musst du einen Admin bitten, den Besitzer des Hauptposts in `camperbot` zu ändern.
|
||||
4. Sobald das neue Thema erstellt wurde, wird eine Forum-Themen-ID erstellt. Sie befindet sich am Ende der URL des Forums. Diese ID muss über den normalen Pull-Request-Prozess für die Schaltfläche "Get a Hint" zur Frontmaterie der Curriculum Herausforderungs-Datei hinzugefügt werden, um auf das Thema zu verweisen.
|
||||
|
||||
### Richtlinien für den Inhalt von Hinweisen und Lösungsthemen
|
||||
|
||||
Wenn du eine Lösung für ein Curriculum Herausforderungs bezogenen Leitfaden vorschlagen willst, muss der vollständige Code hinzugefügt werden. Dies beinhaltet den gesamten ursprünglichen Startcode sowie alle Änderungen, die erforderlich sind, um alle Herausforderungs-Tests zu bestehen. Die folgende Vorlage sollte bei der Erstellung neuer Hinweise/Lösungsvorschläge verwendet werden:
|
||||
|
||||
````md
|
||||
# Challenge Name Goes Here
|
||||
|
||||
---
|
||||
## Problem Explanation
|
||||
|
||||
This summarizes what need to be done without just restating the challenge description and/or instructions. This is an optional section
|
||||
|
||||
#### Relevant Links
|
||||
- [Link Text](link_url_goes_here)
|
||||
- [Link Text](link_url_goes_here)
|
||||
|
||||
---
|
||||
## Hints
|
||||
|
||||
### Hint 1
|
||||
Hint goes here
|
||||
|
||||
### Hint 2
|
||||
Hint goes here
|
||||
|
||||
---
|
||||
## Solutions
|
||||
|
||||
<details><summary>Solution 1 (Click to Show/Hide)</summary>
|
||||
|
||||
```js
|
||||
function myFunc() {
|
||||
console.log('Hello World!');
|
||||
}
|
||||
```
|
||||
|
||||
#### Code Explanation
|
||||
|
||||
- Code explanation goes here
|
||||
- Code explanation goes here
|
||||
|
||||
#### Relevant Links
|
||||
|
||||
- [Link Text](link_url_goes_here)
|
||||
- [Link Text](link_url_goes_here)
|
||||
|
||||
</details>
|
||||
````
|
||||
|
||||
### nützliche Links
|
||||
|
||||
Erstellen und Bearbeiten von Herausforderungen:
|
||||
|
||||
1. [Herausforderungstypen](https://github.com/freeCodeCamp/freeCodeCamp/blob/master/client/utils/challengeTypes.js#L1-L13) - was die Werte der numerischen Challenge-Typen bedeuten (Enum).
|
||||
|
||||
2. [Beim FreeCodeCamp mitwirken - ES6 Challenge Tests schreiben](https://www.youtube.com/watch?v=iOdD84OSfAE#t=2h49m55s) - ein Video nach [Ethan Arrowood](https://twitter.com/ArrowoodTech), in dem er zur alten Version des Curriculum beiträgt.
|
@ -1,135 +0,0 @@
|
||||
<!-- do not translate this -->
|
||||
| [Read these guidelines in other languages](/docs/i18n-languages) |
|
||||
|-|
|
||||
<!-- do not translate this -->
|
||||
|
||||
# Le Linee guida per la contribuzione
|
||||
|
||||
Ciao 👋!
|
||||
|
||||
freeCodeCamp.org è possibile grazie a migliaia di volontari come te. Siamo grati per il tuo contributo e siamo lieti di accoglierti a bordo.
|
||||
|
||||
Applichiamo rigorosamente il nostro ["Codice di condotta"](https://www.freecodecamp.org/code-of-conduct). Prenditi un momento per leggerlo. È lungo solo 196 parole.
|
||||
|
||||
Ti auguriamo un felice contributo 🎉!
|
||||
|
||||
## Ecco alcuni modi divertenti in cui ci puoi aiutare
|
||||
|
||||
Puoi scegliere di contribuire a qualsiasi area che ti interessa:
|
||||
|
||||
1. [Contribuisci a questo codice open source.](#contribuisci-a-questo-codice-open-source). Aiuta a modificare gli [articoli guida](https://guide.freecodecamp.org/), [sfide di codifica](https://learn.freecodecamp.org/), o correggi i bug/errori sulla piattaforma di apprendimento.
|
||||
|
||||
2. Aiuta i colleghi sul nostro [forum pubblico](https://forum.freecodecamp.org/). [Rispondi alle loro domande di codifica](https://forum.freecodecamp.org/?max_posts=1) o [dai loro feedback sui loro progetti di codifica](https://forum.freecodecamp.org/c/project-feedback?max_posts=1)
|
||||
|
||||
3. Aiutaci ad aggiungere i sottotitoli ai nostri [video del canale YouTube](https://www.youtube.com/channel/UC8butISFwT-Wl7EV0hUK0BQ/videos).
|
||||
|
||||
## Contribuisci a questo codice open source
|
||||
|
||||
Abbiamo un enorme numero di codice open source nelle migliaia di [sfide di codifica](https://learn.freecodecamp.org) e [articoli guida](https://guide.freecodecamp.org).
|
||||
|
||||
Puoi aiutarci:
|
||||
|
||||
- [📝 Ricerca, scrivi e aggiorna i nostri articoli guida](#ricerca-scrivi-e-aggiorna-i-nostri-articoli-guida)
|
||||
|
||||
|
||||
- [💻 Crea, aggiorna e correggi i bug nelle nostre sfide di codifica](#crea-aggiorna-e-correggi-i-bug-nelle-nostre-sfide-di-codifica)
|
||||
|
||||
- [🌐 Traduci gli articoli guida e le sfide di codifica](#traduci-gli-articoli-guida-e-le-sfide-di-codifica)
|
||||
|
||||
- [🛠 Aiutaci a correggere i bug nella piattaforma di apprendimento di freeCodeCamp.org](#aiutaci-a-correggere-i-bug-nella-piattaforma-di-apprendimento-di-freecodecamporg)
|
||||
|
||||
### Ricerca, scrivi e aggiorna i nostri articoli guida
|
||||
|
||||
**Cosa sono gli articoli Guida?**
|
||||
|
||||
Gli articoli guida ti aiutano a comprendere rapidamente il concetto di tecnologia. Queste sono brevi spiegazioni in un italiano semplice che è possibile leggere prima di passare a risorse più approfondite.
|
||||
|
||||
Puoi trovare un [articolo di esempio sull'elemento Ancora HTML qui](https://github.com/freeCodeCamp/freeCodeCamp/blob/master/guide/english/html/elements/a-tag/index.md).
|
||||
|
||||
**Cosa posso scrivere in un articolo?**
|
||||
|
||||
Ogni tuo aiuto nello scrivere questi articoli è ben accolto. Non devi essere un esperto in un argomento per scriverne: questa intera guida è open source, quindi anche se commetti un errore, qualcun altro contribuirà per correggerlo.
|
||||
|
||||
Per aiutare, trova un articolo abbozzato ("stub") sul nostro [sito web di guida](https://www.freecodecamp.org/guide), scrivi l'articolo, quindi apri una pull request delle modifiche per sostituire la bozza con il tuo articolo. Una [pull request](https://help.github.com/articles/about-pull-requests/) è il modo in cui suggerirai le modifiche. Permette agli altri di conoscere le tue modifiche, rivederle e adottarle.
|
||||
|
||||
Se non riesci a trovare uno stub sull'argomento di cui vorresti scrivere, puoi aprire un PR che crea lo stub e include il tuo articolo di brutta copia.
|
||||
|
||||
Se vuoi contribuire a migliorare gli articoli guida, ecco [come lavorare sugli articoli guida](/docs/how-to-work-on-guide-articles.md).
|
||||
|
||||
### Crea, aggiorna e correggi i bug nelle nostre sfide di codifica
|
||||
|
||||
Tutte le nostre sfide di programmazione sono curate dalla comunità, portando la conoscenza di esperti da volontari come te.
|
||||
|
||||
Puoi aiutarli ad espanderli e rendere più chiara la loro formulazione. Puoi aggiornare le storie degli utenti per spiegare meglio il concetto e persino rimuovere quelli ridondanti/ripetitivi. È inoltre possibile migliorare i test di sfida per renderli più accurati dei test del codice degli altri.
|
||||
|
||||
Se sei interessato a migliorare queste sfide di programmazione, ecco [come lavorare sulle sfide di programmazione](/docs/how-to-work-on-coding-challenges.md).
|
||||
|
||||
### Traduci gli articoli guida e le sfide di programmazione
|
||||
|
||||
Puoi aiutarci a tradurre i nostri articoli guida e le sfide di programmazione per una lingua che parli. Attualmente abbiamo tradotto le versioni in:
|
||||
|
||||
- [Cinese (中文)](https://github.com/freeCodeCamp/freeCodeCamp/tree/master/curriculum/challenges/chinese)
|
||||
- [Russo (русский)](https://github.com/freeCodeCamp/freeCodeCamp/tree/master/curriculum/challenges/russian)
|
||||
- [Arabo (عربى)](https://github.com/freeCodeCamp/freeCodeCamp/tree/master/curriculum/challenges/arabic)
|
||||
- [Spagnolo (Español)](https://github.com/freeCodeCamp/freeCodeCamp/tree/master/curriculum/challenges/spanish)
|
||||
- [Portoghese (Português)](https://github.com/freeCodeCamp/freeCodeCamp/tree/master/curriculum/challenges/portuguese)
|
||||
- [Italiano (Italiano)](https://github.com/freeCodeCamp/freeCodeCamp/tree/master/curriculum/challenges/italian)
|
||||
|
||||
Ci piacerebbe ricevere il tuo aiuto per migliorare la qualità di queste traduzioni. Milioni di persone usano la versione in lingua inglese di freeCodeCamp.org, e ci aspettiamo che altri milioni usino anche queste versioni tradotte.
|
||||
|
||||
### Aiutaci a correggere i bug nella piattaforma di apprendimento di freeCodeCamp.org
|
||||
|
||||
La nostra piattaforma di apprendimento funziona su un moderno stack JavaScript. Dispone di vari componenti, strumenti e librerie inclusi, tra l'altro però senza limitarsi, Node.js, MongoDB, LoopBack, OAuth 2.0, React, Gatsby, Webpack e altri.
|
||||
|
||||
In linea di massima,
|
||||
|
||||
- Abbiamo un server API basato su Node.js.
|
||||
- Un set di applicazioni client basate su React.
|
||||
- Uno script che usiamo per valutare i nostri progetti di Frontend.
|
||||
|
||||
Contribuire a questo richiede una certa comprensione delle API, ES6 Sintassi e molta curiosità.
|
||||
|
||||
In sostanza, ci aspettiamo una certa familiarità di base, con alcune delle tecnologie, strumenti e librerie sopra citate. Detto questo, non è necessario che tu sia un esperto riguardo a questi argomenti.
|
||||
|
||||
Sentiti libero di farci domande, nei relativi thread, e saremo lieti di chiarire. In caso di dubbio, puoi raggiungere Mrugesh Mohapatra [`@raisedadead`](https://github.com/raisedadead) o Stuart Taylor [`@bouncey`](https://github.com/bouncey) dalla nostra piattaforma dev team per aiutarti.
|
||||
|
||||
Se vuoi aiutarci a migliorare il nostro codebase, ecco [come installare freeCodeCamp localmente](/docs/how-to-setup-freecodecamp-locally.md).
|
||||
|
||||
## Domande frequenti
|
||||
|
||||
**Come posso segnalare un bug/errore, che non è sulla lavagna?**
|
||||
|
||||
Se pensi di aver trovato un bug/errore, leggi prima l'articolo ["Aiuto! Ho trovato un bug/errore"](https://forum.freecodecamp.org/t/how-to-report-a-bug/19543) e segui le sue istruzioni.
|
||||
|
||||
Se sei sicuro che sia un nuovo bug, vai avanti e crea un nuovo issue su GitHub. Assicurati di includere quante più informazioni possibili in modo che noi possiamo riprodurre il bug. Abbiamo un modello di problema predefinito per aiutarti con questo.
|
||||
|
||||
Si prega di notare che eventuali problemi che richiedono aiuto nella programmazione per una sfida saranno chiusi. Il tracker dei problemi è strettamente correlato ai problemi e alle discussioni relativi al codebase. Dovresti [cercare assistenza sul forum](https://forum.freecodecamp.org) prima di segnalare ogniqualvolta ci sono dubbi.
|
||||
|
||||
**Come posso segnalare un problema di sicurezza?**
|
||||
|
||||
Si prega di non creare issue su GitHub per problemi di sicurezza. Invece, si prega di inviare una mail a `security@freecodecamp.org` e lo esamineremo immediatamente.
|
||||
|
||||
**Mi sono bloccato su qualcosa che non è in questa documentazione. Come posso ottenere aiuto?**
|
||||
|
||||
Sentiti libero di chiedere aiuto su:
|
||||
|
||||
- [La categoria "Contributori" dell nostro forum pubblico](https://forum.freecodecamp.org/c/contributors)
|
||||
- [La nostra chat room dei contributori pubblici su Gitter](https://gitter.im/FreeCodeCamp/Contributors)
|
||||
|
||||
Siamo lieti di aiutarti a contribuire a uno qualsiasi degli argomenti su cui vorresti lavorare. Assicurati di cercare la tua domanda prima di pubblicarne una nuova. Sii educato e paziente. I nostri volontari e moderatori della comunità sono sempre in giro per guidarti nelle tue domande.
|
||||
|
||||
**Sono nuovo su GitHub e nell'Open Source in generale:**
|
||||
|
||||
Leggi la nostra [Guida su come contribuire all'open source](https://github.com/freeCodeCamp/how-to-contribute-to-open-source).
|
||||
|
||||
**Che cosa significano le diverse etichette che sono taggate sui problemi?**
|
||||
|
||||
I nostri moderatori della comunita' [smistano](https://en.wikipedia.org/wiki/Software_bug#Bug_management) i problemi e le pull request in base alla loro priorità, gravità e altri fattori. Puoi [trovare qui un glossario completo dei loro significati](https://github.com/freecodecamp/freecodecamp/labels).
|
||||
|
||||
Dovresti esaminare gli argomenti **`Help Wanted`** oppure **`first timers only`** per una rapida ricerca di ciò che è disponibile e su cui puoi lavorare. Sono tutti problemi aperti e non c'è bisogno di chiedere il pemesso prima di lavorarci su.
|
||||
|
||||
Se questi problemi mancano di chiarezza su ciò che deve essere fatto, sentiti libero di porre domande nei commenti.
|
||||
|
||||
**Ho trovato un errore di battitura, dovrei segnalare un problema prima di poter effettuare una pull request?**
|
||||
|
||||
Per errori di battitura e altre variazioni di testo, è possibile aprire direttamente le pull request senza creare prima un issue. Gli issue sono utilizzati per discutere di problemi più grandi associati al codice, o di aspetti strutturali del curriculum.
|
@ -1,159 +0,0 @@
|
||||

|
||||
|
||||
[](http://makeapullrequest.com)
|
||||
[](http://www.firsttimersonly.com/)
|
||||
[](https://www.codetriage.com/freecodecamp/freecodecamp)
|
||||
[](https://gitpod.io/from-referrer/)
|
||||
|
||||
## Benvenuti nel programma di studio del codice open source di freeCodeCamp.org!
|
||||
|
||||
[freeCodeCamp.org](https://www.freecodecamp.org) è una comunità amichevole dove puoi imparare a programmare gratuitamente. È gestito da una [non profit finanziata dal donatore 501(c)(3)](https://donate.freecodecamp.org) con lo scopo di aiutare milioni di adulti impegnati a passare alla tecnologia. La nostra comunità ha già aiutato più di 10.000 persone a ottenere il loro primo incarico di sviluppatore.
|
||||
|
||||
Il nostro curriculum stack completo di sviluppo web è completamente gratuito e autonomo. Abbiamo migliaia di sfide di codifica interattive per aiutarti ad espandere le tue capacità.
|
||||
|
||||
## Sommario
|
||||
|
||||
- [Certificazioni](#certificazioni)
|
||||
- [La Piattaforma di apprendimento](#la-piattaforma-di-apprendimento)
|
||||
- [Trovato un bug/errore di codice](#trovato-un-bugerrore-di-codice)
|
||||
- [Trovato un problema di sicurezza](#trovato-un-problema-di-sicurezza)
|
||||
- [Come Contribuire](#come-contribuire)
|
||||
- [Stato di Piattaforma, Build e Distribuzione](#stato-di-piattaforma-build-e-distribuzione)
|
||||
- [Licenza](#licenza)
|
||||
|
||||
### Certificazioni
|
||||
|
||||
freeCodeCamp.org offre diverse certificazioni gratuite per gli sviluppatori. Ciascuna di queste certificazioni prevede la realizzazione di 5 progetti di Web app, insieme a centinaia di sfide di codifica opzionali per aiutarti a prepararti per tali progetti. Estimiamo che ogni certificazione richiederà a un programmatore principiante circa 300 ore per guadagnarle.
|
||||
|
||||
Ognuno di questi 30 progetti nel curriculum di FreeCodeCamp.org ha le proprie richieste da tenere in conto quando costruire il progetto e test automatizzati. Questi ti aiutano a sviluppare il tuo progetto in modo incrementale e assicurarti di aver soddisfatto tutte le richieste prima di inviarlo.
|
||||
|
||||
È possibile inserire queste suite di test attraverso [CDN di FreeCodeCamp](https://cdn.freecodecamp.org/testable-projects-fcc/v1/bundle.js). Ciò significa che puoi creare questi progetti su siti Web come CodePen e Glitch o persino sull'ambiente di sviluppo del tuo computer locale.
|
||||
|
||||
Una volta ottenuto un certificato, lo avrai per sempre. Sarai sempre in grado di collegarti ad esso dal tuo LinkedIn o curriculum. E quando i tuoi potenziali datori di lavoro o clienti freelance cliccano su quel link, vedranno una certificazione verificata specifica per te.
|
||||
|
||||
L'unica eccezione a questo è nel caso in cui scopriamo violazioni della nostra [Politica sull'Onestà Accademica](https://www.freecodecamp.org/academic-honesty). Quando catturiamo le persone plagiando in modo inequivocabile (sottomettendo il codice o i progetti di altre persone come loro senza citazione), facciamo ciò che dovrebbero fare tutte le rigorose istituzioni di apprendimento - revociamo le loro certificazioni e bandiamo/proibiamo quelle persone.
|
||||
|
||||
Ecco le nostre sei certificazioni di base:
|
||||
|
||||
#### 1. Certificazione di Responsive Web Design
|
||||
|
||||
- [HTML di base e HTML5](https://learn.freecodecamp.org/responsive-web-design/basic-html-and-html5)
|
||||
- [CSS di base](https://learn.freecodecamp.org/responsive-web-design/basic-css)
|
||||
- [Design Visual Applicato](https://learn.freecodecamp.org/responsive-web-design/applied-visual-design)
|
||||
- [Accessibilità applicata](https://learn.freecodecamp.org/responsive-web-design/applied-accessibility)
|
||||
- [Principi di Responsive Web Design](https://learn.freecodecamp.org/responsive-web-design/responsive-web-design-principles)
|
||||
- [CSS Flexbox](https://learn.freecodecamp.org/responsive-web-design/css-flexbox)
|
||||
- [Griglia CSS](https://learn.freecodecamp.org/responsive-web-design/css-grid)
|
||||
<br />
|
||||
<br />
|
||||
**Progetti**: La Pagina tributo, Il Modulo di indagine, La Pagina di destinazione del prodotto, La Pagina di documentazione tecnica, La Pagina web del portafoglio personale
|
||||
|
||||
#### 2. Certificazione di algoritmi JavaScript e strutture di dati
|
||||
|
||||
- [JavaScript di base](https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/basic-javascript)
|
||||
- [ES6](https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/es6)
|
||||
- [Espressioni regolari](https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/regular-expressions)
|
||||
- [Debugging](https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/debugging)
|
||||
- [Strutture dati di base](https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/basic-data-structures)
|
||||
- [Scripting dell'algoritmo](https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/basic-algorithm-scripting)
|
||||
- [Programmazione orientata agli oggetti](https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/object-oriented-programming)
|
||||
- [Programmazione funzionale](https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/functional-programming)
|
||||
- [Scripting di algoritmi intermedi](https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/intermediate-algorithm-scripting)
|
||||
<br />
|
||||
<br />
|
||||
**Progetti**: Il Correttore di Palindrome, Convertitore dei numeri romani, La cifra di Cesare, Il validatore di numero telefonico, Il registratore di cassa
|
||||
|
||||
#### 3. Certificazione di Librerie Front End
|
||||
|
||||
- [Bootstrap](https://learn.freecodecamp.org/front-end-libraries/bootstrap)
|
||||
- [jQuery](https://learn.freecodecamp.org/front-end-libraries/jquery)
|
||||
- [Sass](https://learn.freecodecamp.org/front-end-libraries/sass)
|
||||
- [React](https://learn.freecodecamp.org/front-end-libraries/react)
|
||||
- [Redux](https://learn.freecodecamp.org/front-end-libraries/redux)
|
||||
- [React e Redux](https://learn.freecodecamp.org/front-end-libraries/react-and-redux)
|
||||
<br />
|
||||
<br />
|
||||
**Progetti**: La Macchina di quote casuali, Il Visualizzatore di Markdown, La macchinetta Drum, La Calcolatrice JavaScript, L'orologio 25 + 5
|
||||
|
||||
#### 4. Certificazione visualizzazione dei dati
|
||||
|
||||
- [Visualizzazione dei dati con D3](https://learn.freecodecamp.org/data-visualization/data-visualization-with-d3)
|
||||
- [API JSON e Ajax](https://learn.freecodecamp.org/data-visualization/json-apis-and-ajax)
|
||||
<br />
|
||||
<br />
|
||||
**Progetti**: Il Grafico a barre, Il Grafico a dispersione, La Mappa di calore, Mappa di coropleta, Diagramma della Mappa ad albero
|
||||
|
||||
#### 5. Certificazione API e Microservizi
|
||||
|
||||
- [Gestione dei pacchetti con Npm](https://learn.freecodecamp.org/apis-and-microservices/managing-packages-with-npm)
|
||||
- [Node di base ed Express](https://learn.freecodecamp.org/apis-and-microservices/basic-node-and-express)
|
||||
- [MongoDB e Mongoose](https://learn.freecodecamp.org/apis-and-microservices/mongodb-and-mongoose)
|
||||
<br />
|
||||
<br />
|
||||
**Progetti**: Il Microservizio Data e ora, Il Parser di richiesta dell'intestazione, L'accorciatore dell'URL, Il tracker/tracciatore dell'esercizio, I file di Metadata del Microservizio
|
||||
|
||||
#### 6. Certificazione della sicurezza delle informazioni e della garanzia della qualità
|
||||
|
||||
- [Sicurezza delle informazioni con HelmetJS](https://learn.freecodecamp.org/information-security-and-quality-assurance/information-security-with-helmetjs)
|
||||
- [Garanzia di qualità e test con Chai](https://learn.freecodecamp.org/information-security-and-quality-assurance/quality-assurance-and-testing-with-chai)
|
||||
- [Node avanzato ed Express](https://learn.freecodecamp.org/information-security-and-quality-assurance/advanced-node-and-express)
|
||||
<br />
|
||||
<br />
|
||||
**Progetti**: Il convertitore metrico-imperiale, Il tracker/tracciatore dei problemi, La biblioteca personale, Il controllo prezzi delle azioni, Il forum dei messaggi anonimi
|
||||
|
||||
#### Certificazione per lo sviluppo di Stack completo (Full Stack Development)
|
||||
|
||||
Una volta che avrai ottenuto tutte queste 6 certificazioni, potrai richiedere la certificazione di sviluppo completo dello stack/Full Stack Development FreeCodeCamp.org. Questa distinzione finale significa che hai completato circa 1.800 ore di codifica con una vasta gamma di strumenti di sviluppo web.
|
||||
|
||||
#### Certificazioni di Legacy
|
||||
|
||||
Abbiamo anche 3 certificazioni di legacy dal nostro curriculum nel 2015, che sono ancora disponibili. Tutti i progetti richiesti per queste certificazioni di legacy rimarranno disponibili su freeCodeCamp.org.
|
||||
|
||||
- Certificazione di legacy dello sviluppo front end (Legacy Front End Development)
|
||||
- Certificazione di legacy della visualizzazione dei dati (Legacy Data Visualization Certification)
|
||||
- Certificazione di legacy del back end (Legacy Back End Development Certification)
|
||||
- Certificazione di legacy di sicurezza delle informazioni e garanzia di qualità (Legacy Information Security and Quality Assurance Certification)
|
||||
|
||||
### La piattaforma di apprendimento
|
||||
|
||||
Questo codice è in esecuzione in diretta su [freeCodeCamp.org](https://www.freecodecamp.org).
|
||||
|
||||
La nostra comunità ha tra l'altro:
|
||||
|
||||
- Un [forum](https://forum.freecodecamp.org) dove puoi ottenere aiuto su programmazione, o feedback sui tuoi progetti in alcune ore
|
||||
- Un popolare [canale YouTube](https://youtube.com/freecodecamp) con corsi gratuiti su Python, SQL, Android, e un'ampia varietà di altre tecnologie
|
||||
- Un [podcast](https://podcast.freecodecamp.org/) con approfondimenti sulla tecnologia e inspiranti storie di sviluppatori.
|
||||
- Una pubblicazione di [Developer News](https://www.freecodecamp.org/news), un sito gratuito, open source e senza pubblicità per il cross-post degli articoli del tuo blog.
|
||||
|
||||
> [Unisciti alla nostra community qui](https://www.freecodecamp.org/signin).
|
||||
|
||||
### Trovato un bug/errore di codice?
|
||||
|
||||
Se pensi di aver trovato un bug/errore di codice, leggi prima l'articolo [Aiuto ho trovato un bug/errore di codice](https://forum.freecodecamp.org/t/how-to-report-a-bug/19543) e segui le sue istruzioni.
|
||||
|
||||
Se sei sicuro che sia un nuovo bug/errore di codice e hai confermato che qualcun altro si trova di fronte allo stesso problema, procedi e crea un nuovo problema con GitHub. Assicurati di includere quante più informazioni possibili in modo che possiamo riprodurre il bug/errore di codice.
|
||||
|
||||
### Trovato un problema di sicurezza?
|
||||
|
||||
Si prega di non creare problemi GitHub per i problemi di sicurezza. Invece, si prega di inviare una mail a `security@freecodecamp.org` e lo esamineremo immediatamente.
|
||||
|
||||
Appreziamo la comunicazione responsabile delle vulnerabilità che possono avere un impatto sulla integrità della nostra piattaforma e dei nostri utenti. Anche se non offriamo nessuna taglia o premio in questo momento, saremo felici di includere il tuo nome nella nostra [lista di personaggi famosi (Hall of Fame)](../../../HoF.md) per la ricerca della sicurezza.
|
||||
|
||||
### Come Contribuire
|
||||
|
||||
La comunità di freeCodeCamp.org è possible grazie ai migliaia di meravigliosi volontari come te. Apprezziamo ogni tipo di contributo alla comunità, e siamo felici di averti a bordo.
|
||||
|
||||
> #### [Per favore segui questi step per contribuire](CONTRIBUTING.md).
|
||||
|
||||
### Stato di Piattaforma, Build e Distribuzione
|
||||
|
||||
Lo stato generale per tutte le nostre applicazioni è disponibile a [`status.freecodecamp.org`](https://status.freecodecamp.org). Gli stati di build e distribuzione sono disponibili nella [nostra Guida DevOps](../../devops.md).
|
||||
|
||||
### Licenza
|
||||
|
||||
Copyright © 2020 freeCodeCamp.org
|
||||
|
||||
Il contenuto di questa repository è vincolato dalle seguenti licenze:
|
||||
|
||||
- Il software del computer è concesso in licenza con la licenza [BSD-3-Clause](../../../LICENSE.md).
|
||||
- Le risorse didattiche nella cartella [`/curriculum`](/curriculum) e le sue sottodirectory sono concessi in licenza [CC-BY-SA-4.0](../../../curriculum/LICENSE.md).
|
@ -1,155 +0,0 @@
|
||||

|
||||
|
||||
[](http://makeapullrequest.com)
|
||||
[](http://www.firsttimersonly.com/)
|
||||
[](https://www.codetriage.com/freecodecamp/freecodecamp)
|
||||
[](https://gitpod.io/from-referrer/)
|
||||
|
||||
## freeCodeCamp.org のオープンソースコードベース、カリキュラムにようこそ!
|
||||
|
||||
[freeCodeCamp.org](https://www.freecodecamp.org) は無料でプログラミングを学べるフレンドリーなコミュニティです。技術者になろうと忙しい何百万人もの人々を助けることを目的として、 [donor-supported 501(c)(3) nonprofit](https://donate.freecodecamp.org) により運営されています。このコミュニティはすでに10,000以上の人々に対し、初めての開発者の職につくことを助けてきました。
|
||||
|
||||
私達のフルスタックのWeb開発のカリキュラムは完全に無料で、自分のペースで進められます。あなたのスキルを広げる何千ものインタラクティブなコーディング問題を用意しています。
|
||||
|
||||
## 目次
|
||||
|
||||
* [資格](#資格)
|
||||
* [学習プラットフォーム](#学習プラットフォーム)
|
||||
* [バグや問題を報告する](#バグや問題を報告する)
|
||||
* [セキュリティに関する問題を報告する](#セキュリティに関する問題を報告する)
|
||||
* [貢献する](#貢献する)
|
||||
* [ライセンス](#ライセンス)
|
||||
|
||||
|
||||
### 資格
|
||||
|
||||
freeCodeCamp.org はいくつかの無料の開発に関する資格を提供しています。それぞれの資格は5つのWebアプリのプロジェクトを含んでいて、数百のコーディング問題に沿うことで、そのプロジェクトに対して準備ができるようになっています。それぞれの資格の取得には、初心者のプログラマーであれば300時間程度かかるような想定です。
|
||||
|
||||
freeCodeCamp.org のカリキュラムにある30のプロジェクトそれぞれには、アジャイルなユーザーストーリーと自動化されたテストが含まれています。それはあなたがプロジェクトを徐々に開発していくのを助けるとともに、提出前にすべてのユーザーストーリーを満足するものにすることを保証します。
|
||||
|
||||
それらのテストケースは [freeCodeCamp CDN](https://cdn.freecodecamp.org/testable-projects-fcc/v1/bundle.js) から取得することができます。つまり CodePen や Glitch を利用して、またはあなたのローカルの開発環境からそれらのプロジェクトをビルドすることが出来るということです。
|
||||
|
||||
1度資格を取得したら、いつでもそれを利用できます。あなたはいつでも LinkedIn やレジュメから資格に対してリンクすることができます。将来の雇用主やフリーランスのクライアントがそのリンクをクリックすれば、あなたがその資格をもつと証明されていることを見られるでしょう。
|
||||
|
||||
ただし、 [Academic Honesty ポリシー](https://www.freecodecamp.org/academic-honesty) に違反していることを私達が見つけた場合、これは例外となります。明確な盗用(引用なしに他人のコードやプロジェクトを用いて提出すること)行為をする人々を見つけた際には、厳正な学習の機関としてすべき対応、つまりその人々の資格を剥奪しBANを行います。
|
||||
|
||||
以下は私達の提供する6つの資格です。
|
||||
|
||||
#### 1. レスポンシブWebデザインに関する資格
|
||||
|
||||
- [基本的なHTMLとHTML5](https://learn.freecodecamp.org/responsive-web-design/basic-html-and-html5)
|
||||
- [基本的なCSS](https://learn.freecodecamp.org/responsive-web-design/basic-css)
|
||||
- [応用的なビジュアルデザイン](https://learn.freecodecamp.org/responsive-web-design/applied-visual-design)
|
||||
- [応用的なアクセシビリティ](https://learn.freecodecamp.org/responsive-web-design/applied-accessibility)
|
||||
- [レスポンシブWebデザインの原則](https://learn.freecodecamp.org/responsive-web-design/responsive-web-design-principles)
|
||||
- [CSS Flexbox](https://learn.freecodecamp.org/responsive-web-design/css-flexbox)
|
||||
- [CSS Grid](https://learn.freecodecamp.org/responsive-web-design/css-grid)
|
||||
<br />
|
||||
<br />
|
||||
**プロジェクト**: トリビュートページ、アンケートフォーム、ランディングページ、記述的なドキュメントページ、個人のポートフォリオページ
|
||||
|
||||
#### 2. JavaScriptアルゴリズムとデータ構造に関する資格
|
||||
|
||||
- [基本的なJavaScript](https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/basic-javascript)
|
||||
- [ES6](https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/es6)
|
||||
- [正規表現](https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/regular-expressions)
|
||||
- [デバッグ](https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/debugging)
|
||||
- [基本的なデータ構造](https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/basic-data-structures)
|
||||
- [アルゴリズムスクリプティング](https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/basic-algorithm-scripting)
|
||||
- [オブジェクト指向プログラミング](https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/object-oriented-programming)
|
||||
- [関数プログラミング](https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/functional-programming)
|
||||
- [中級アルゴリズムスクリプティング](https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/intermediate-algorithm-scripting)
|
||||
<br />
|
||||
<br />
|
||||
**プロジェクト**: 回文チェッカー、ローマ数字変換器、シーザー暗号、電話番号バリデーター、レジ
|
||||
|
||||
#### 3. フロントエンドライブラリに関する資格
|
||||
|
||||
- [Bootstrap](https://learn.freecodecamp.org/front-end-libraries/bootstrap)
|
||||
- [jQuery](https://learn.freecodecamp.org/front-end-libraries/jquery)
|
||||
- [Sass](https://learn.freecodecamp.org/front-end-libraries/sass)
|
||||
- [React](https://learn.freecodecamp.org/front-end-libraries/react)
|
||||
- [Redux](https://learn.freecodecamp.org/front-end-libraries/redux)
|
||||
- [ReactとRedux](https://learn.freecodecamp.org/front-end-libraries/react-and-redux)
|
||||
<br />
|
||||
<br />
|
||||
**プロジェクト**: ランダム引用マシーン、マークダウンプレビュー、ドラムマシーン、JavaScript計算機、ポモドーロタイマー
|
||||
|
||||
#### 4. データビジュアライゼーションに関する資格
|
||||
|
||||
- [D3でのデータビジュアライゼーション](https://learn.freecodecamp.org/data-visualization/data-visualization-with-d3)
|
||||
- [JSON APIとAjax](https://learn.freecodecamp.org/data-visualization/json-apis-and-ajax)
|
||||
<br />
|
||||
<br />
|
||||
**プロジェクト**: 棒グラフ、散布図、ヒートマップ、階級区分図、ツリーマップ
|
||||
|
||||
#### 5. APIとマイクロサービスに関する資格
|
||||
|
||||
- [npmでのパッケージ管理](https://learn.freecodecamp.org/apis-and-microservices/managing-packages-with-npm)
|
||||
- [基本的なNodeとExpress](https://learn.freecodecamp.org/apis-and-microservices/basic-node-and-express)
|
||||
- [MongoDBとMongoose](https://learn.freecodecamp.org/apis-and-microservices/mongodb-and-mongoose)
|
||||
<br />
|
||||
<br />
|
||||
**プロジェクト**: タイムスタンプマイクロサービス、リクエストヘッダーパーサー、URL短縮器、エクササイズトラッカー、ファイルメタデータマイクロサービス
|
||||
|
||||
#### 6. 情報セキュリティと品質補償に関する資格
|
||||
|
||||
- [HelmetJSでの情報セキュリティ](https://learn.freecodecamp.org/information-security-and-quality-assurance/information-security-with-helmetjs)
|
||||
- [品質保証とChaiでのテスト](https://learn.freecodecamp.org/information-security-and-quality-assurance/quality-assurance-and-testing-with-chai)
|
||||
- [発展的なNodeとExpress](https://learn.freecodecamp.org/information-security-and-quality-assurance/advanced-node-and-express)
|
||||
<br />
|
||||
<br />
|
||||
**プロジェクト**: メートル/ヤード変換器、イシュートラッカー、個人ライブラリ、株価チェッカー、匿名掲示板
|
||||
|
||||
#### フルスタック開発に関する資格
|
||||
|
||||
6つすべての資格を取得したら、freeCodeCamp.orgのフルスタック開発に関する資格を請求することができます。この最後の栄誉は、さまざまなWeb開発ツールを用いて1800時間の開発を完遂したことを証明するものです。
|
||||
|
||||
#### レガシーな資格
|
||||
|
||||
他にも、2015年からのカリキュラムでまだ有効な3つの資格があります。freeCodeCamp.org では、それぞれのレガシーな資格に必要なすべてのプロジェクトは引き続き有効であるでしょう。
|
||||
|
||||
- レガシーなフロントエンド開発に関する資格
|
||||
- レガシーなデータビジュアライゼーションに関する資格
|
||||
- レガシーなバックエンド開発に関する資格
|
||||
|
||||
### 学習プラットフォーム
|
||||
|
||||
このコードは [freeCodeCamp.org](https://www.freecodecamp.org) で実行されています。
|
||||
|
||||
私達のコミュニティには他にも
|
||||
|
||||
- [フォーラム](https://forum.freecodecamp.org) 通常数時間以内にプログラミングやプロジェクトに関するフィードバックが得られます。
|
||||
- [YouTube チャンネル](https://youtube.com/freecodecamp) Python、SQL、Android、その他いろいろな技術に関する無料のコース。
|
||||
- [ポッドキャスト](https://podcast.freecodecamp.org/) 開発者からの気づきや、刺激的なお話。
|
||||
- [ローカルの勉強会](https://study-group-directory.freecodecamp.org/) 世界中にあるコードを一緒に書ける人々の集まり。
|
||||
- 広汎的な [何千ものプログラミングトピックに対するガイド](https://guide.freecodecamp.org/)
|
||||
- [開発者ニュース](https://www.freecodecamp.org/news) 無料でオープンソース、かつ広告なしであなたのブログ記事をクロスポストできる場所。
|
||||
- [Facebook グループ](https://www.facebook.com/groups/freeCodeCampEarth/permalink/428140994253892/) 100,000以上の世界中のメンバー。
|
||||
|
||||
> ### [こちらから私達のコミュニティに加わりましょう](https://www.freecodecamp.org/signin)。
|
||||
|
||||
### バグや問題を報告する
|
||||
|
||||
もしバグをを発見したときには、 [How to Report a Bug](https://forum.freecodecamp.org/t/how-to-report-a-bug/19543) の記事を閲覧し、その内容に従ってください。もしそのバグが新しいものであって同様の問題を他の誰かが直面していないと革新するのであれば、そのまま GitHub のイシューを作成してください。私達がバグを再現できるよう、必ず必要十分な情報を含めるようにしてください。
|
||||
|
||||
### セキュリティに関する問題を報告する
|
||||
|
||||
もし脆弱性を見つけたときには、責任を持って報告をお願いします。セキュリティの問題に関しては GitHub のイシューを作成しないでください。その代わりに、`security@freecodecamp.org`へのメールをお願いします。すぐにチェックをします。
|
||||
|
||||
### 貢献する
|
||||
|
||||
> ### [貢献するには、こちらのステップに従ってください。](CONTRIBUTING.md)
|
||||
|
||||
### プラットフォーム、ビルドとデプロイの状況
|
||||
|
||||
ビルドやデプロイの状況に関しては [our DevOps Guide](/docs/devops.md) にて閲覧可能です。 このアプリコーションに関する一般的なプラットフォームの状態は [`status.freecodecamp.org`](https://status.freecodecamp.org) にて閲覧可能です。
|
||||
|
||||
### ライセンス
|
||||
|
||||
Copyright © 2020 freeCodeCamp.org
|
||||
|
||||
このリポジトリの内容は以下のライセンスにより法的に拘束されてます。
|
||||
|
||||
- コンピューターソフトウェアに関して、[BSD-3-Clause](LICENSE.md) ライセンス。
|
||||
- 教材のリソース([`/curriculum`](/curriculum) とそのサブディレクトリ)は [CC-BY-SA-4.0](/curriculum/LICENSE.md) ライセンスの元に許可されています。
|
@ -1,105 +0,0 @@
|
||||
<!-- do not translate this -->
|
||||
| [Read these guidelines in other languages](/docs/i18n-languages) |
|
||||
|-|
|
||||
<!-- do not translate this -->
|
||||
|
||||
# 기여 지침
|
||||
|
||||
안녕하세요. 👋
|
||||
|
||||
freeCodeCamp.org는 여러분과 같은 수천 명의 친절한 자원봉사자 덕분에 운영할 수 있습니다. 우리는 여러분의 기여를 환영하며 감사하고 기쁘게 생각합니다.
|
||||
|
||||
우리는 [행동 강령](https://www.freecodecamp.org/code-of-conduct)을 엄격히 시행하고 있습니다. 잠시 시간을 내어 읽어주세요. 196단어밖에 되지 않습니다.
|
||||
|
||||
행복한 기여가 되길 바랍니다.
|
||||
|
||||
## 기여할 수 있는 몇 가지 재미있는 방법들
|
||||
|
||||
여러분은 어느 방법으로도 기여할 수 있습니다.
|
||||
|
||||
1. [오픈소스 코드 베이스에 기여](#contribute-to-this-open-source-codebase)할 수 있습니다. 코딩 챌린지를 편집하거나 학습 플랫폼의 버그를 수정해 도움을 주세요.
|
||||
|
||||
2. [공개 포럼](https://forum.freecodecamp.org/)에서 학습자들을 도와주세요. [코딩 질문에 답변](https://forum.freecodecamp.org/?max_posts=1)해주거나 [코딩 프로젝트에 대한 피드백을 제공](https://forum.freecodecamp.org/c/project-feedback?max_posts=1)할 수 있습니다.
|
||||
|
||||
3. [유튜브 채널 비디오](https://www.youtube.com/channel/UC8butISFwT-Wl7EV0hUK0BQ/videos)에 자막 (숨겨진 캡션)을 추가할 수 있습니다.
|
||||
|
||||
## 오픈소스 코드 베이스에 기여하기
|
||||
|
||||
우리의 코드 베이스는 수천 개의 [코딩 챌린지](https://learn.freecodecamp.org)와 막대한 오픈소스 코드 베이스를 가지고 있습니다.
|
||||
|
||||
### 코딩 챌린지 만들기, 업데이트하기, 버그 수정하기
|
||||
|
||||
모든 코딩 챌린지는 커뮤니티가 엄선한 것이며, 여러분과 같은 자원봉사자들이 기여한 전문 지식입니다.
|
||||
|
||||
여러분은 코딩 챌린지에 자세한 설명을 덧붙이거나 명확한 표현으로 바꿀 수도 있습니다. 개념을 더 잘 설명하기 위해 유저 스토리를 업데이트 할 수도 있고 중복되는 내용을 삭제할 수도 있습니다. 또한 챌린지 테스트의 정확성을 높여 테스트를 개선할 수도 있습니다.
|
||||
|
||||
**이러한 코딩 챌린지를 개선하는 데 관심이 있으시다면, [코딩 챌린지 작업 방법](/docs/how-to-work-on-coding-challenges.md)를 참고해주세요.**
|
||||
|
||||
### freeCodeCamp.org 학습 플랫폼의 버그 수정하기
|
||||
|
||||
우리의 학습 플랫폼은 모던 자바스크립트 스택으로 운영됩니다. 플랫폼은 Node.js, MongoDB, LoopBack, OAuth 2.0, React, Gatsby, Webpack 외에도 다양한 컴포넌트, 도구, 라이브러리로 구성되어 있습니다.
|
||||
|
||||
간단히 말해, 이렇게 이루어져 있습니다.
|
||||
|
||||
- Node.js 기반 API 서버
|
||||
- 일련의 React 기반 클라이언트 애플리케이션
|
||||
- 프론트엔드 프로젝트를 평가하기 위해 사용하는 스크립트
|
||||
|
||||
이러한 학습 플랫폼에 기여하기 위해서는 API와 ES6 문법에 대한 이해와 많은 호기심이 필요합니다.
|
||||
|
||||
기본적으로 앞서 언급한 기술, 도구 및 라이브러리에 대한 기초 지식이 필요합니다. 말하자면, 여러분은 기여하기 위해 전문가가 될 필요가 없습니다.
|
||||
|
||||
**코드 베이스를 개선하는 데 도움을 주고 싶다면 [로컬에서 freeCodeCamp를 설치](/docs/how-to-setup-freecodecamp-locally.md)하거나 Gitpod이나 무료 온라인 개발 환경을 사용하면 됩니다.**
|
||||
|
||||
[](https://gitpod.io/#https://github.com/freeCodeCamp/freeCodeCamp)
|
||||
|
||||
(여러분의 브라우저에서 freecodecamp의 개발 환경을 실행합니다.)
|
||||
|
||||
## 자주 묻는 질문
|
||||
|
||||
**새로운 버그를 어떻게 신고할 수 있나요?**
|
||||
|
||||
만약 새로운 버그를 발견했다고 생각한다면, 먼저 ["Help I've Found a Bug"](https://forum.freecodecamp.org/t/how-to-report-a-bug/19543) 문서를 읽고 지시를 따르세요.
|
||||
|
||||
새로운 버그라고 확신이 든다면, 먼저 새로운 GitHub 이슈를 만드세요. 우리가 그 버그를 재현할 수 있도록 가능한 많은 정보를 포함해야 한다는 것을 명심하세요. 이때 도움이 될 수 있도록 미리 이슈 템플릿을 만들어 놓았습니다.
|
||||
|
||||
코딩 챌린지에 대한 도움을 요청하는 이슈는 닫힌다는 점을 유의하세요. 이슈 트래커는 코드베이스 관련 이슈와 논의만을 위한 것입니다. 잘 모르겠다면, 보고를 하기 전에 [포럼에서 도움을 요청](https://forum.freecodecamp.org)하세요.
|
||||
|
||||
**보안 이슈를 어떻게 신고할 수 있나요?**
|
||||
|
||||
보안 이슈로 GitHub 이슈를 만들지 말아 주세요. 대신 `security@freecodecamp.org`로 이메일을 보내주시면 즉시 확인하겠습니다.
|
||||
|
||||
**이슈에 붙은 다양한 라벨은 무엇을 의미하나요?**
|
||||
|
||||
커뮤니티 중재자는 우선순위, 심각성 및 기타 요인에 따라 이슈를 [분류](https://en.wikipedia.org/wiki/Software_bug#Bug_management)하고 PR을 보냅니다. [여기서 모든 라벨의 의미를 찾아볼 수 있습니다](https://github.com/freecodecamp/freecodecamp/labels).
|
||||
|
||||
여러분이 작업할 수 있는 이슈를 빠르게 찾고 싶다면 [**`help wanted`**](https://github.com/freeCodeCamp/freeCodeCamp/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22) 또는 [**`first timers only`**](https://github.com/freeCodeCamp/freeCodeCamp/issues?q=is%3Aopen+is%3Aissue+label%3A%22first+timers+only%22) 라벨이 달린 이슈를 살펴보세요. 이 이슈들은 누구에게나 열려 있으며 작업하기 전에 허락을 구할 필요가 없습니다.
|
||||
|
||||
만약 이슈의 설명이 불명확하다면 코멘트 란에 자유롭게 질문하세요.
|
||||
|
||||
**오타를 찾았는데 PR을 보내기 전에 이슈를 만들어야 하나요?**
|
||||
|
||||
오타나 단어 표현 변경과 관련해서는 이슈를 만들 필요 없이 바로 PR을 보내면 됩니다. 이슈는 커리큘럼의 코드나 구조적인 측면과 관련된 더 큰 문제들을 논의하기 위함입니다.
|
||||
|
||||
**GitHub과 오픈소스가 처음이에요.**
|
||||
|
||||
[오픈소스 가이드에 기여하는 방법](https://github.com/freeCodeCamp/how-to-contribute-to-open-source)을 읽어 보세요.
|
||||
|
||||
**문서에 포함되지 않은 문제가 있다면 어떻게 도움을 받을 수 있나요?**
|
||||
|
||||
자유롭게 도움을 요청하세요.
|
||||
|
||||
- [공개 포럼의 "Contributors" 카테고리](https://forum.freecodecamp.org/c/contributors)
|
||||
- [Gitter에 있는 컨트리뷰터들의 대화방](https://gitter.im/FreeCodeCamp/Contributors)
|
||||
|
||||
우리는 여러분이 관심 있는 분야에 기여할 수 있도록 도와드릴 수 있어 대단히 기쁩니다. 관련된 이슈 스레드에 자유롭게 질문하시면, 반갑게 설명해드리겠습니다. 다만 기존에 같은 질문이 있었는지 먼저 검색해주세요. 공손함과 인내심도 필요합니다. 자원봉사자와 중재자들로 이 커뮤니티는 여러분을 도와드리기 위해 항상 대기하고 있습니다.
|
||||
|
||||
궁금한 사항이 있다면, 플랫폼 개발팀에 연락을 주세요.
|
||||
|
||||
| Name | GitHub | Twitter |
|
||||
|:----------------|:-------|:--------|
|
||||
| Mrugesh Mohapatra | [`@raisedadead`](https://github.com/raisedadead) | [`@raisedadead`](https://twitter.com/raisedadead)|
|
||||
| Ahmad Abdolsaheb | [`@ahmadabdolsaheb`](https://github.com/ahmadabdolsaheb) | [`@Abdolsaheb`](https://twitter.com/Abdolsaheb) |
|
||||
| Kristofer Koishigawa | [`@scissorsneedfoodtoo`](https://github.com/scissorsneedfoodtoo) | [`@kriskoishigawa`](https://twitter.com/kriskoishigawa) |
|
||||
|
||||
> **Email: `dev@freecodecamp.org`**
|
@ -1,148 +0,0 @@
|
||||

|
||||
[](https://travis-ci.org/freeCodeCamp/freeCodeCamp)
|
||||
[](http://makeapullrequest.com)
|
||||
[](http://www.firsttimersonly.com/)
|
||||
[](https://www.codetriage.com/freecodecamp/freecodecamp)
|
||||
|
||||
## freeCodeCamp.org의 오픈소스 코드 베이스와 커리큘럼에 오신 것을 환영합니다.
|
||||
|
||||
[freeCodeCamp.org](https://www.freeCodecamp.org)는 무료로 코드를 배울 수 있는 커뮤니티입니다. freeCodeCamp.org는 수백만 명의 사람들이 기술 쪽으로 전환하도록 돕는 것을 목표로 기부자가 지원하는 [501(c)(3)의 비영리 단체](https://donate.freecodecamp.org/)가 운영합니다. 이 커뮤니티는 이미 만 명이 넘는 사람들이 첫 번째로 개발자 직업을 가지는 것을 도왔습니다.
|
||||
|
||||
우리의 풀스택 웹 개발 커리큘럼은 완전히 무료이고 자기주도적 학습입니다. 우리는 기술의 확장을 도와줄 수천 가지의 상호작용식의 코딩 문제가 있습니다.
|
||||
|
||||
## 목차
|
||||
|
||||
* [인증](#certifications)
|
||||
* [학습 플랫폼](#the-learning-platform)
|
||||
* [버그 찾기](#found-a-bug)
|
||||
* [보안 문제 찾기](#found-a-security-issue)
|
||||
* [기여](#contributing)
|
||||
* [라이선스](#license)
|
||||
|
||||
### 자격증
|
||||
|
||||
freeCodeCamp.org는 몇 가지 무료 개발자 자격증을 제공합니다. 이러한 각 자격증에는 5가지의 필수 웹 앱 프로젝트 구축과 해당 프로젝트를 준비하는 것을 도와줄 수백 개의 선택적 코딩 과제가 포함되어 있습니다. 각각의 자격증은 초보 프로그래머에게 약 300시간이 걸릴 것으로 예상합니다.
|
||||
|
||||
freeCodeCamp.org 커리큘럼의 30개의 프로젝트에는 각각 휼륭한 사용자 스토리와 자동화된 테스트들이 있습니다. 이러한 기능은 프로젝트를 점진적으로 구축하고 제출하기 전 사용자의 스토리를 이행했는지 확인하는 데 도움을 줍니다.
|
||||
|
||||
[freeCodeCamp.org의 CDN](https://cdn.freecodecamp.org/testable-projects-fcc/v1/bundle.js)을 통해 이러한 테스트 묶음들을 가져올 수 있습니다. 즉, CodePen 및 Gitch와 같은 웹사이트 또는 로컬 컴퓨터의 개발 환경에서도 이러한 프로젝트를 구축할 수 있습니다.
|
||||
|
||||
자격증을 한번 취득하면 항상 사용할 수 있습니다. LinkedIn 또는 이력서에서 항상 첨부할 수 있습니다. 미래의 고용주 또는 프리랜서 고객이 해당 링크를 클릭하면 입증된 자격증을 볼 수 있습니다.
|
||||
|
||||
단 하나의 예외사항은 [Academic Honesty Policy](https://www.freecodecamp.org/academic-honesty)를 위반하였을 때입니다. 다른 사람의 코드를 분명하게 표절(다른 사람의 코드 또는 프로젝트 출처 없이 자신의 것으로 제출) 할 경우, 철저하게 교육기관이 해야 할 일(자격 박탈 및 사용 정지)을 할 것입니다.
|
||||
|
||||
다음은 6가지의 핵심 자격증입니다 :
|
||||
|
||||
#### 1. Responsive Web Design(반응형 웹디자인) 자격증
|
||||
|
||||
- [기본 HTML 및 HTML5](https://learn.freecodecamp.org/responsive-web-design/basic-html-and-html5)
|
||||
- [기본 CSS](https://learn.freecodecamp.org/responsive-web-design/basic-css)
|
||||
- [응용 Visual Design(시각 디자인)](https://learn.freecodecamp.org/responsive-web-design/applied-visual-design)
|
||||
- [응용 Accessibility(접근성)](https://learn.freecodecamp.org/responsive-web-design/applied-accessibility)
|
||||
- [Responsive Web Design(반응형 웹디자인) 원리](https://learn.freecodecamp.org/responsive-web-design/responsive-web-design-principles)
|
||||
- [CSS Flexbox](https://learn.freecodecamp.org/responsive-web-design/css-flexbox)
|
||||
- [CSS Grid](https://learn.freecodecamp.org/responsive-web-design/css-grid)
|
||||
<br />
|
||||
<br />
|
||||
**프로젝트** : Tribute 페이지, 설문조사 양식, 제품 소개 페이지, 기술 문서 페이지, 개인 포트폴리오 웹 페이지
|
||||
|
||||
#### 2. 자바스크립트 알고리즘 및 자료 구조 자격증
|
||||
|
||||
- [기본 자바스크립트](https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/basic-javascript)
|
||||
- [ES6](https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/es6)
|
||||
- [정규 표현식](https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/regular-expressions)
|
||||
- [디버깅](https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/debugging)
|
||||
- [기본 자료 구조](https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/basic-data-structures)
|
||||
- [알고리즘 스크립팅](https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/basic-algorithm-scripting)
|
||||
- [객체 지향 프로그래밍](https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/object-oriented-programming)
|
||||
- [함수형 프로그래밍](https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/functional-programming)
|
||||
- [중급 알고리즘 스크립팅](https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/intermediate-algorithm-scripting)
|
||||
|
||||
**프로젝트** : Palindrome Checker, 로마 숫자 변환기, 카이사르 암호 전화번호 검사기, 금전 등록기
|
||||
|
||||
#### 3. Front End Libraries 자격증**
|
||||
|
||||
- [Bootstrap](https://learn.freecodecamp.org/front-end-libraries/bootstrap)
|
||||
- [jQuery](https://learn.freecodecamp.org/front-end-libraries/jquery)
|
||||
- [Sass](https://learn.freecodecamp.org/front-end-libraries/sass)
|
||||
- [React](https://learn.freecodecamp.org/front-end-libraries/react)
|
||||
- [Redux](https://learn.freecodecamp.org/front-end-libraries/redux)
|
||||
- [React and Redux](https://learn.freecodecamp.org/front-end-libraries/react-and-redux)
|
||||
<br />
|
||||
<br />
|
||||
**프로젝트** : 랜덤 명언 기계, Markdown Previewer, 드럼 기계, 자바스크립트 계산기, 25 + 5 시계
|
||||
|
||||
#### 4. 데이터 시각화 자격증
|
||||
|
||||
- [D3를 이용한 데이터 시각화](https://learn.freecodecamp.org/data-visualization/data-visualization-with-d3)
|
||||
- [JSON APIs and Ajax](https://learn.freecodecamp.org/data-visualization/json-apis-and-ajax)
|
||||
<br />
|
||||
<br />
|
||||
**프로젝트** : 막대그래프, 산점도 그래프, 히트 맵, 단계 구분도, 트리 맵 다이어그램
|
||||
|
||||
#### 5. APIs 및 마이크로 서비스 자격증
|
||||
|
||||
- [NPM을 이용한 패키지 관리](https://learn.freecodecamp.org/apis-and-microservices/managing-packages-with-npm)
|
||||
- [기본 Node 및 Express](https://learn.freecodecamp.org/apis-and-microservices/basic-node-and-express)
|
||||
- [MongoDB 및 Mongoose](https://learn.freecodecamp.org/apis-and-microservices/mongodb-and-mongoose)
|
||||
<br />
|
||||
<br />
|
||||
**프로젝트** : 타임스탬프 마이크로 서비스, Request Header Parser, URL 단축 서비스, 운동 트래커, File Metadata 마이크로 서비스
|
||||
|
||||
#### 6. 정보 보안 및 품질 보증 자격증
|
||||
|
||||
- [HelmetJS을 이용한 정보 보안](https://learn.freecodecamp.org/information-security-and-quality-assurance/information-security-with-helmetjs)
|
||||
- [Chai를 이용한 품질 보증 및 테스트](https://learn.freecodecamp.org/information-security-and-quality-assurance/quality-assurance-and-testing-with-chai)
|
||||
- [고급 Node 및 Express](https://learn.freecodecamp.org/information-security-and-quality-assurance/advanced-node-and-express)
|
||||
<br />
|
||||
<br />
|
||||
**프로젝트** : 미터-야드 변환기, 이슈 트래커, 개인 라이브러리, 주식 가격 검사기, 익명 게시판
|
||||
|
||||
#### 풀스택 개발 자격증
|
||||
|
||||
6가지 자격증을 모두 취득하면 freeCodeCamp.org 풀스택 개발 자격증을 신청할 수 있습니다. 이 마지막 자격증은 광범위한 웹 개발 도구를 사용하여 약 1800시간의 코딩을 완료했다는 것을 의미합니다.
|
||||
|
||||
#### 기존 자격증
|
||||
|
||||
2015년도의 커리큘럼의 3가지 기존 자격증이 있으며 아직 사용할 수 있습니다. 이 자격증에 필요한 모든 프로젝트는 freeCodeCamp.org에서 계속 사용할 수 있습니다.
|
||||
|
||||
- 기존 Front End 개발 자격증
|
||||
- 기존 데이터 시각화 자격증
|
||||
- 기존 Back End 개발 자격증
|
||||
|
||||
### 학습 플랫폼
|
||||
|
||||
이 코드는 [freeCodeCamp.org](https://www.freecodecamp.org/)에서 실시간으로 실행됩니다.
|
||||
|
||||
이 커뮤니티는:
|
||||
|
||||
- 몇 시간 안에 프로그래밍을 도와주고 프로젝트 피드백을 받을 수 있는 [포럼](https://forum.freecodecamp.org)
|
||||
- Python, SQL, Android 및 기타 다양한 기술에 대한 무료 강좌가 있는 [YouTube 채널](https://youtube.com/freecodecamp)
|
||||
- 기술 통찰력과 영감을 주분 개발자의 스토리가 담긴 [팟 캐스트](https://podcast.freecodecamp.org/)
|
||||
- 함께 코드를 작성할 수 있는 세계 각지의 [지역 스터디 그룹](https://study-group-directory.freecodecamp.org/)
|
||||
- 수천 개의 프로그래밍 주제에 대한 [포괄적인 가이드](https://guide.freecodecamp.org/)
|
||||
- [개발자 뉴스](https://www.freecodecamp.org/news) 간행물, 무료, 오픈 소스, 블로그 기사를 교차 게시 할 수있는 비 광고 공간.
|
||||
- 전 세계 100,000명이 넘는 [페이스북 그룹](https://www.facebook.com/groups/freeCodeCampEarth/permalink/428140994253892/) 입니다.
|
||||
|
||||
### [여기에서 가입하세요](https://www.freecodecamp.org/signin)
|
||||
|
||||
### 버그 찾기란?
|
||||
|
||||
버그를 찾았다고 생각되면 [How to Report a Bug](https://forum.freecodecamp.org/t/how-to-report-a-bug/19543)를 읽고 지침을 따라야 합니다. 자신이 새로운 버그라고 확신하면 다른 사람이 같은 문제를 겪고 있는지 확인하고 새로운 GitHub 이슈를 만드십시오. 가능한 한 많은 정보를 포함시켜 버그를 재현할 수 있게 하십시오.
|
||||
|
||||
### 보안 문제 찾기란?
|
||||
|
||||
보안 문제에 대해 GitHub 이슈를 만들지 마십시오. 대신 security@freecodecamp.org로 이메일을 보내 주시면 즉시 검토하겠습니다.
|
||||
|
||||
### 기여
|
||||
|
||||
#### [기여를 위해 다음 단계를 따르세요](CONTRIBUTING.md)
|
||||
|
||||
**라이선스**
|
||||
|
||||
Copyright © 2020 freeCodeCamp.org
|
||||
|
||||
이 저장소는 다음 라이선스에 의해 구속됩니다.
|
||||
|
||||
- 컴퓨터 소프트웨어는 [BSD-3-Clause 라이선스](LICENSE.md)에 따라 라이선스가 부여됩니다.
|
||||
- 하위 디렉터리를 포함한 [`/curriculum`](/curriculum) 디렉터리 및 [`/guide`](/guide) 디렉터리를 포함한 학습 리소스는 [CC-BY-SA-4.0 라이선스](/curriculum/LICENSE.md)에 따라 라이선스가 부여됩니다.
|
@ -1,542 +0,0 @@
|
||||
<!-- do not translate this -->
|
||||
| [Read these guidelines in other languages](/docs/i18n-languages) |
|
||||
|-|
|
||||
<!-- do not translate this -->
|
||||
|
||||
# freeCodeCamp를 로컬 시스템에 설치하기
|
||||
local 시스템에 freeCodeCamp를 설치하려고 하신다면 이 가이드라인을 따라 주세요. 주기적으로 기여 해 주실 생각이라면 이를 추천해 드립니다.
|
||||
|
||||
예를 들어서 가이드나 코딩챌린지 페이지 미리 보기라든지 코드를 디버깅하거나 버그를 고치는 등의 몇 가지 기여 흐름도는 여러분에게 freeCodeCamp를 local하게 진행하기를 기대합니다.
|
||||
|
||||
## GitHub에 있는 저장소를 복사하기
|
||||
['Forking'](https://help.github.com/articles/about-forks/)은 여러분만의 GitHub에 있는 freeCodeCamp의 주요 저장소의 복사본을 갖게 해 줍니다.
|
||||
|
||||
이는 아주 중요합니다. GitHub에 있는 freeCodeCamp의 복사본을 갖게 해 주거나 저장소를 다운받아 local하게 작업하도록 도와주기 때문입니다. 후에, 여러분이 local하게 작업한 결과물을 fork를 통해 여러분이 가지고 있는 복사본에서 메인 저장소로 옮기는 것을 pull request를 통해 요청할 수 있습니다.
|
||||
|
||||
> **Pro Tip:**
|
||||
> `https://github.com/freeCodeCamp/freeCodeCamp`에 있는 메인 저장소는 `upstream` 저장소로도 불립니다.
|
||||
> `https://github.com/YOUR_USER_NAME/freeCodeCamp`에 있는 fork(역주: 복사본)는 `origin`이라고 불리기도 합니다.
|
||||
|
||||
#### 저장소 `https://github.com/freeCodeCamp/freeCodeCamp`를 fork 하는 방법
|
||||
1. GitHub에 있는 freeCodeCamp 저장소로 갑니다: <https://github.com/freeCodeCamp/freeCodeCamp>
|
||||
2. 오른쪽 위에 위치한 "Fork" 버튼을 누릅니다. ([More Details Here](https://help.github.com/articles/fork-a-repo/))
|
||||
3. 저장소가 제대로 fork되었다면, `https://github.com/YOUR_USER_NAME/freeCodeCamp`에서 freeCodeCamp 저장소의 복사본을 확인하실 수 있습니다.
|
||||
|
||||

|
||||
|
||||
## 개발환경 준비하기
|
||||
사전에 필요한 것들을 설치했다면 개발 환경을 준비해 봅시다. 이는 흔한 개발 작업 방식이며 한 번만 하시면 됩니다.
|
||||
|
||||
#### 개발 환경 준비하는 방법:
|
||||
1. 아직 [Git](https://git-scm.com/)이나 Git 클라이언트(서버로부터 정보나 서비스를 받는 컴퓨터)가 없다면 설치하세요. 컴퓨터에 운영체제와 함께 깔려있던 버전이 오래된 것일 수 있으니 최신 버전으로 업데이트해 주세요.
|
||||
|
||||
2. (선택사항이나 추천해 드립니다) [GitHub에 SSH 키 셋업하기](https://help.github.com/articles/generating-an-ssh-key/)
|
||||
|
||||
3. 자신에게 맞는 에디터 설치하기
|
||||
[VS Code](https://code.visualstudio.com/)나 [Atom](https://atom.io/)을 추천해 드립니다. 이 두 에디터는 잘 만들어졌으며 무료이고 오픈 소스 에디터들입니다.
|
||||
|
||||
4. 에디터에 linting 설치하기
|
||||
반드시 [ESLint running in your editor](http://eslint.org/docs/user-guide/integrations.html)를 설치해 주세요. 이는 [freeCodeCamp의 자바스크립트 스타일 가이드](http://forum.freecodecamp.org/t/free-code-camp-javascript-style-guide/19121)와 일치하지 않는 부분을 표시해 줄 겁니다.
|
||||
|
||||
> linting 에러들을 그냥 지나치지 말아 주세요. 이것들은 여러분을 **도와주려는** 목적이며, 간결한 코드를 유지하도록 해 줍니다.
|
||||
|
||||
## freeCodeCamp의 복사본을 복제하기
|
||||
['Cloning'](https://help.github.com/articles/cloning-a-repository/)은 여러분 혹은 다른 사람의 소유인 '원격(remote)' 장소에서 **다운로드**한 저장소의 복사본입니다. 여러분의 경우, 이 원격 장소는 freeCodeCamp 저장소의 '분기(fork)'로 `https://github.com/YOUR_USER_NAME/freeCodeCamp`에서 확인할 수 있어야 합니다.
|
||||
|
||||
내 컴퓨터에서 아래 명령어를 실행하세요:
|
||||
|
||||
1. 터미널을 열고 / 명령어 프롬프트 / 프로젝트 디렉터리에 있는 셸
|
||||
|
||||
_예를 들어서: `/프로젝트 디렉터리/`_
|
||||
|
||||
2. `YOUR_USER_NAME`을 여러분의 깃허브 아이디로 바꾼 다음에 freeCodeCamp의 복사본을 복제하세요.
|
||||
|
||||
```sh
|
||||
git clone --depth=1 https://github.com/YOUR_USER_NAME/freeCodeCamp.git
|
||||
```
|
||||
|
||||
이는 전체 freeCodeCamp 저장소를 여러분의 디렉터리로 다운로드되도록 할 것입니다.
|
||||
|
||||
노트: `--depth=1`은 여러분이 복사한 저장소를 최근에 이루어진 history와 commit만을 겉핥기식으로 복제합니다.
|
||||
|
||||
|
||||
## 메인 저장소에 `upstream` 설치하기
|
||||
지금까지 여러분은 fork의 복사본을 다운로드했고, 이제 `upstream`을 설치할 차례입니다.
|
||||
|
||||
이전에도 언급했듯이, `https://github.com/freeCodeCamp/freeCodeCamp`에 있는 메인 저장소는 종종 `upstream` 저장소로도 종종 불립니다. `https://github.com/YOUR_USER_NAME/freeCodeCamp`에 있는 여러분의 fork(역주: 복사본)은 `origin` 저장소로도 불릴 겁니다.
|
||||
|
||||
`origin` 저장소 외에도 로컬 클론에서 `upstream` 저장소에 대한 참조가 필요합니다. 그럼으로써 여러분은 메인 저장소의 변경 사항을 번거롭게 복사와 복제를 매번 할 필요 없이 동기화시킬 수 있습니다.
|
||||
|
||||
|
||||
1. 방금 복사한 freeCodeCamp 디렉터리로 갑니다:
|
||||
|
||||
```sh
|
||||
cd freeCodeCamp
|
||||
```
|
||||
|
||||
2. freeCodeCamp 메인 저장소로의 원격 참조를 추가합니다:
|
||||
|
||||
```sh
|
||||
git remote add upstream https://github.com/freeCodeCamp/freeCodeCamp.git
|
||||
```
|
||||
|
||||
3. 제대로 되었는지 확인합니다:
|
||||
|
||||
```sh
|
||||
git remote -v
|
||||
```
|
||||
|
||||
결과물이 아래와 비슷하여야 합니다:
|
||||
|
||||
```sh
|
||||
origin https://github.com/YOUR_USER_NAME/freeCodeCamp.git (fetch)
|
||||
origin https://github.com/YOUR_USER_NAME/freeCodeCamp.git (push)
|
||||
upstream https://github.com/freeCodeCamp/freeCodeCamp.git (fetch)
|
||||
upstream https://github.com/freeCodeCamp/freeCodeCamp.git (push)
|
||||
```
|
||||
|
||||
## freeCodeCamp를 개인 컴퓨터에서 사용하기
|
||||
여러분은 freeCodeCamp 복사본을 가지고 있습니다. 아래 가이드를 따라서 오시면 local에서 이를 실행시킬 수 있습니다. 이는 여러분이 아래 사항들을 할 수 있도록 도와줍니다:
|
||||
|
||||
- 학습 플랫폼에 나타날 페이지의 편집 내용을 미리 보기
|
||||
- UI 관련 문제 및 개선 작업
|
||||
- 응용 프로그램 서버와 클라이언트 응용 프로그램 관련 문제 디버깅 및 수정
|
||||
|
||||
단순히 파일을 편집하거나 `rebase`를 수행하거나 `merge` 충돌을 해결하는 경우 local 에서 freeCodeCamp 실행을 건너뛸 수 있습니다. 나중에 언제든지 이 부분으로 돌아올 수 있습니다.
|
||||
|
||||
[내 컴퓨터에서의 freeCodeCamp 실행 건너뛰기](#making-changes-to-your-clone-of-freecodecamp-locally)
|
||||
|
||||
현재 freeCodeCamp를 local에서 실행하는 두 가지 방법이 있습니다.
|
||||
- Docker (추천)
|
||||
- Local
|
||||
|
||||
여러분에게 위의 방법 중 **하나를** 따를 것을 권해 드립니다.
|
||||
|
||||
Docker는 설치 과정에 오류가 적고 이상적인 개발자 환경을 제공합니다. Docker를 사용하여 우리에게 보이지 않지만 추가로 필요할 소프트웨어들을 설치합니다. 이는 대부분 기계/운영체제 전반에 걸쳐 일관되고 안정적으로 지원될 겁니다.
|
||||
|
||||
만약에 여러분이 위의 한 방법을 사용하는데 문제가 생긴다면, 다른 방법을 시도해 보세요. 만약에 두 가지 방법에서 모두 문제가 발생한다면, 첫 번째로 해당 문제에 관해서 인터넷 검색을 통해 해결 방법을 찾아 보세요. 찾지 못하셨다면 한 번 GitHub [issues](https://github.com/freeCodeCamp/freeCodeCamp/issues) 페이지에 다른 개발자가 같은 문제를 제기한 건 없는지 보고 이도 없으면 문제점을 보고해 주세요.
|
||||
|
||||
그리고 언제나 부담 없이 [기여자 대화방](https://gitter.im/FreeCodeCamp/Contributors)에 들러 주세요. 빠른 질문과 답변이 오고 갑니다.
|
||||
|
||||
### 사전에 필요한 것들 설치하기
|
||||
사전에 필요한 소프트웨어들을 설치하는 것으로 시작해 봅시다:
|
||||
|
||||
소프트웨어는 Docker와 local에 모두 필요합니다:
|
||||
|
||||
| Prerequisite | Version | Notes |
|
||||
| ------------ | ------- | ----- |
|
||||
| [Node.js](http://nodejs.org)| `10.x` | [LTS Schedule](https://github.com/nodejs/Release#release-schedule) |
|
||||
| npm (comes bundled with Node)| `6.x` | Does not have LTS releases, we use the version bundled with Node LTS |
|
||||
|
||||
**Docker에 추가로 필요한:**
|
||||
|
||||
| 사전에 필요한 소프트웨어 | 버전 | 노트 |
|
||||
| ------------ | ------- | ----- |
|
||||
| [Docker CE](https://docs.docker.com/install/) | `Stable` | - |
|
||||
| [Docker Compose](https://docs.docker.com/compose/install/) | `Stable` | 운영체제가 macOS나 Windows가 아니면 따로 설치해 주셔야 합니다 |
|
||||
|
||||
**local에 추가로 필요한:**
|
||||
|
||||
| 사전에 필요한 소프트웨어 | 버전 | 노트 |
|
||||
| ------------ | ------- | ----- |
|
||||
| [MongoDB Community Server](https://docs.mongodb.com/manual/administration/install-community/) | `3.6` | [Release Notes](https://docs.mongodb.com/manual/release-notes/), 노트: 현재 `3.6` 버전을 사용 중이며, [업그레이드가 필요하면](https://github.com/freeCodeCamp/freeCodeCamp/issues/18275). |
|
||||
|
||||
#### 중요:
|
||||
위의 소프트웨어들을 항상 최신 버전으로 업데이트해서 사용하실 것을 권해드립니다. 이는 Long Term Support (LTS) 로도 알려져 있습니다.
|
||||
만약에 Node.js가 컴퓨터에 설치되어있다면, 아래 명령어를 통해 현재 버전을 확인하실 수 있습니다:
|
||||
|
||||
```sh
|
||||
node -v
|
||||
npm -v
|
||||
```
|
||||
|
||||
만약 다른 버전을 가지고 있다면, 권해드리는 버전으로 설치해 주세요. 저희는 해당 버전에서 발생한 문제점만 도와드릴 수 있습니다.
|
||||
|
||||
윈도우 사용자:
|
||||
> 사용하시는 명령어 도구(예를 들어, cmd, PowerShell, Git Bash for Windows, WSL)에 올바른 사용자 권한으로 반드시 설정되어 있도록 하세요. 가능하다면, 해당 툴을 관리자 모드로 설정하세요. 윈도우에서는 관리자 모드로 변경하려면 해당 프로그램에서 오른쪽 클릭 후에 `Launch as an Administrator`를 선택하시면 됩니다.
|
||||
|
||||
#### 사전에 필요한 소프트웨어를 설치하는 데 어려움을 겪고 있습니다. 어떻게 해야 할까요?
|
||||
저희는 macOS 10.12나 Ubuntu 16.04, Windows 10처럼 많이 사용하는 운영체제의 최신 버전에 대해서 주기적으로 개발을 진행하고 있습니다. 직면하신 해당 문제점을 Google이나 Stack Overflow, Stack Exchange 등에서 검색해 보실 것을 권해드립니다. 앞서 다른 이가 같은 문제점에 대해서 도움을 구해 답을 얻었을 확률이 높습니다.
|
||||
|
||||
만약 다른 운영체제를 사용하거나 여전히 문제를 해결하지 못했다면 [contributors community on our public forum](https://forum.freecodecamp.org/c/contributors)이나 [contributor's chat room](https://gitter.im/freeCodeCamp/Contributors)으로 연락해주세요.
|
||||
|
||||
**사전에 필요한 소프트웨어들에 대한 문제점들을 GitHub 이슈화 하는 거는 삼가해 주세요. 이는 freeCodeCamp 프로젝트와는 무관하기 때문입니다.**
|
||||
|
||||
### Dependencies 환경 설정하기
|
||||
|
||||
#### 첫 번째 단계: 환경(Environment Variable File) 설정하기
|
||||
미리 설정된 API keys와 environmet variables는 `sample.env` 파일에 저장되어 있습니다. 이 파일은 설치단계에서 동적으로 접근할 수 있는 새로운 이름의 `.env` 파일로 복사되어야 합니다.
|
||||
|
||||
|
||||
```sh
|
||||
# "sample.env"를 복사해서 ".env"라고 이름 지으세요.
|
||||
# 필요한 API keys와 secrets로 채우세요:
|
||||
|
||||
# macOS / Linux
|
||||
cp sample.env .env
|
||||
|
||||
# Windows
|
||||
copy sample.env .env
|
||||
```
|
||||
|
||||
`.env` 파일에 있는 keys는 app을 local 하게 돌리기 위해 변경될 필요가 *없습니다.* `sample.env`에서 복사된 미리 설정된 값들 그대로 두셔도 됩니다.
|
||||
|
||||
다만 명심하실 것은 추가적인 서비스를 이용하려 하실 때에는 해당 서비스에 대한 개별 API keys를 획득하신 이후에 `.env` 파일을 변경해 주셔야 합니다.
|
||||
|
||||
**Docker Build:** Docker build를 이용하는데 Docker 설치가 Docker Toolbox (macOS와 Windows 오랜 버전에 적용되는)를 사용하도록 지시한다면, `.env` 파일 안에 있는 `DOCKER_HOST_LOCATION`을 `docker-machine ip` 명령어의 결과물로 변경해 주셔야 합니다. 만약 Linux처럼 Docker를 지원하는 운영체제를 사용하거나 Docker 데스크톱을 (macOS나 Windows 10의 최신 버전) 사용 중이라면 `DOCKER_HOST_LOCATION`을 이미 설정된 값으로 남겨 두셔도 됩니다.
|
||||
|
||||
#### 두 번째 단계: Dependencies 설치하기
|
||||
|
||||
이 단계에서는 애플리케이션을 실행시키기 위해서 필요한 dependencies를 설치합니다.
|
||||
|
||||
**Docker Build:**
|
||||
```shell
|
||||
npm run docker:init
|
||||
npm run docker:install
|
||||
npm run docker:seed
|
||||
```
|
||||
|
||||
위의 각 Docker 명령어는 실행을 완료하는 데 시간이 좀 필요합니다. 다음 명령어를 실행하기 전에 각 명령어가 완전히 실행 완료될 때까지 기다리셔야 합니다.
|
||||
|
||||
Docker 외에도 npm packages 몇 가지를 설치하셔야 합니다. git을 사용하지 않고 local에서만 app를 실행하실 예정이라면 건너뛰셔도 됩니다.
|
||||
|
||||
```shell
|
||||
npm ci
|
||||
```
|
||||
|
||||
위의 모든 사항은 local 개발 환경을 설정할 때 한 번만 실행하시면 됩니다.
|
||||
|
||||
**Local Build:**
|
||||
|
||||
```sh
|
||||
# Install NPM dependencies
|
||||
npm ci
|
||||
```
|
||||
|
||||
#### 세 번째 단계: MongoDB 시작하기 & 데이터베이스 준비하기 (local build만)
|
||||
|
||||
이 단계는 local build 시에만 해당하니 Docker build를 사용하시면 네 번째 단계로 가주세요.
|
||||
|
||||
MongoDB가 설치될 때 자동으로 설정된 사항과 다르지 않은 한 `.env`파일에 있는 `MONGOHQ_URL`로 저장된 URL이 잘 작동되어야 합니다. 이전에 한 번 수정한 적이 있으면, 이 단계를 실행하기 위해서 필요한 값으로 재설정해 주셔야 합니다.
|
||||
|
||||
애플리케이션을 로컬에서 실행하기 전에, MongoDB를 먼저 시작해 주셔야 합니다:
|
||||
|
||||
각기 다른 터미널에서 MongoDB 서버 시작하기:
|
||||
- On macOS & Ubuntu:
|
||||
|
||||
```sh
|
||||
mongod
|
||||
```
|
||||
|
||||
- 윈도우스에서는 전체 경로를 'mongod' binary로 구체적으로 설정해 주셔야 합니다.
|
||||
|
||||
```sh
|
||||
"C:\Program Files\MongoDB\Server\3.6\bin\mongod"
|
||||
```
|
||||
|
||||
`3.6`을 여러분의 컴퓨터에 설치된 버전으로 변경해 주세요.
|
||||
|
||||
> Pro Tip:
|
||||
> 바탕화면에 MongoDB를 설치하면 매번 시작해야 하는 수고로움을 피할 수 있습니다.
|
||||
> [MongoDB 사이트에서 각 운영체제를 위한 문서 읽어보기](https://docs.mongodb.com/manual/administration/install-community/)
|
||||
|
||||
다음으로는 데이트베이스를 준비해 봅니다. 이 단계에서는 서비스에 필요한 초기 데이터로 MongDB 서버를 채울 명령어를 실행합니다. 다른 것들과 함께 몇 가지 schemes를 포함합니다.
|
||||
|
||||
```sh
|
||||
npm run seed
|
||||
```
|
||||
|
||||
#### 네 번째 단계: freeCodeCamp client application과 API server 시작하기
|
||||
이제 API server와 client applications를 시작할 수 있습니다.
|
||||
|
||||
**Docker Build:**
|
||||
```shell
|
||||
npm run docker:develop
|
||||
```
|
||||
|
||||
**Local Build:**
|
||||
```sh
|
||||
npm run develop
|
||||
```
|
||||
|
||||
이 명령어 한 줄은 API server와 client applications를 포함해 모든 서비스를 여러분이 사용할 수 있도록 시작합니다.
|
||||
|
||||
일단 준비되면, 웹브라우저를 열어 <http://localhost:8000>로 방문하세요. app이 실행된다면 축하드립니다 - 다 하셨습니다!
|
||||
|
||||
> Pro Tip:
|
||||
> API Server는 APIs를 `http://localhost:3000`에서 지원합니다.
|
||||
> Gatsby app은 client application을 `http://localhost:8000`에서 지원합니다.
|
||||
|
||||
<http://localhost:3000/explorer>방문하시면 사용 가능한 APIs를 확인하실 수 있습니다.
|
||||
|
||||
축하드려요 🎉🎉🎉! 이제 여러분의 local 컴퓨터에서 freeCodeCamp 전체 학습 플랫폼의 복사본을 실행하실 수 있게 되었습니다.
|
||||
|
||||
## 로컬에서 작업할 때 로그인하는 방법
|
||||
로컬 설정이 자동으로 로컬 사용자를 데이터베이스에 생성합니다. `Sign In` 버튼을 클릭하면 local application으로 접속하게 해 줄 겁니다.
|
||||
|
||||
하지만 사용자 포트폴리오 페이지에 접속하는 것은 조금 다릅니다. Gatsby가 client 측 페이지를 다루기 때문에 여러분의 컴퓨터에서 사용자 포트폴리오로 접속하면 `404`페이지를 보시게 될 겁니다.
|
||||
|
||||
`Preview Custom 404 Page` 버튼을 클릭하면 올바른 화면으로 이동 시켜 줄 겁니다.
|
||||
|
||||

|
||||
|
||||
## 내 컴퓨터에서(when working locally) 개발할 때 참조하면 좋을 명령어들
|
||||
|
||||
내 컴퓨터 작업 환경에서 유용하게 참조할 수 있는 명령어들
|
||||
|
||||
**Docker Build:**
|
||||
|
||||
| command | description |
|
||||
| ------- | ----------- |
|
||||
| `npm run docker:init` | Dependencies를 설치할 자리 준비하기 |
|
||||
| `npm run docker:install` | 모든 dependencies 설치 / 재설치하기 및 다른 서비스 부트스트랩 하기(불러오기) |
|
||||
| `npm run docker:seed` | 모든 challenge markdown 파일 분석해서 MongoDB에 넣기|
|
||||
| `npm run docker:develop` | freeCodeCamp API 서버와 Client 애플리케이션 시작하기 |
|
||||
| `npm run docker:test:init` | Docker에서 테스트하는데 필요한 것들을 데려옵니다. |
|
||||
| `npm run docker:test -- -c "npm run test` | Client, 서버, lint, challenge tests를 포함한 시스템에 있는 모든 JS tests 실행하기 |
|
||||
| `npm run docker:test -- -c "npm run test:curriculum` | 커리큘럼 테스트 suite를 실행하기 |
|
||||
| `npm run docker:test -- -c "npm run test:client` | Client 테스트 suite 실행하기 |
|
||||
| `npm run docker:test -- -c "npm run test:server` | Server 테스트 suite 실행하기 |
|
||||
| `npm run docker:clean` | 모든 dependencies 삭제하고 캐시 정리하기 |
|
||||
|
||||
**Local Build:**
|
||||
|
||||
| command | description |
|
||||
| ------- | ----------- |
|
||||
| `npm ci` | 모든 dependencies 설치 / 재설치하기 및 다른 서비스 부트스트랩하기(불러오기) |
|
||||
| `npm run seed` | 모든 challenge markdown 파일 분석해서 MongoDB에 넣기 |
|
||||
| `npm run develop` | freeCodeCamp API 서버와 Client 애플리케이션 시작하기 |
|
||||
| `npm test` | Client, 서버, lint, challenge tests를 포함한 시스템에 있는 모든 JS tests 실행하기 |
|
||||
| `npm run test:client` | Client 테스트 suite 실행하기 |
|
||||
| `npm run test:curriculum` | 커리큘럼 테스트 suite를 실행하기 |
|
||||
| `npm run test:server` | Server 테스트 suite 실행하기 |
|
||||
| `npm run clean` | 모든 dependencies 삭제하고 캐시 정리하기 |
|
||||
|
||||
|
||||
## 여러분의 컴퓨터에서 freeCodeCamp 복사본을 수정하기
|
||||
이제 여러분은 파일을 수정하고 commit 할 수 있습니다.
|
||||
|
||||
아래 단계를 따라 하세요:
|
||||
|
||||
1. `master` 브랜치에 있는지 확인하세요.
|
||||
|
||||
```sh
|
||||
git status
|
||||
```
|
||||
|
||||
아래와 같은 메시지가 보여야 합니다:
|
||||
|
||||
```sh
|
||||
On branch master
|
||||
Your branch is up-to-date with 'origin/master'.
|
||||
|
||||
nothing to commit, working directory clean
|
||||
```
|
||||
|
||||
master에 있지 않거나 working directory에 처리해야 할 무언가가 있으면, 그게 파일이든 commit이든 간에 처리한 다음 `master` 브랜치로 갑니다:
|
||||
|
||||
```sh
|
||||
git checkout master
|
||||
```
|
||||
|
||||
2. freeCodeCamp upstream `master` 브랜치의 최신 변경사항을 여러분의 지역 저장소(역주: 내 컴퓨터)에 있는 master 브랜치와 동일하게 만드세요.
|
||||
|
||||
**노트:** 만약에 여러분이 fork 한 master 브랜치에 만든 Pull Request가 아직 미해결 상태이면, 이 단계 마지막에서 그 부분을 잃게 될 겁니다. 이 단계를 진행하기 전에 moderator로부터 해당 pull request가 병합될 수 있도록 하세요. 이런 일을 방지하려면 *언제나* master가 아닌 개별 브랜치에서 개발을 진행하셔야 합니다.
|
||||
|
||||
이 단계는 freeCodeCamp의 메인 저장소의 **최신 변경사항으로 동기화시킵니다**. 나중에 생길 수 있는 충돌을 피하기 위해서는 `upstream/master`로 여러분의 브랜치를 자주 rebase 시키는 게 중요합니다.
|
||||
|
||||
freeCodeCamp 원격 저장소를 복사한 여러분의 지역 저장소를 업데이트합니다:
|
||||
```sh
|
||||
git fetch upstream
|
||||
```
|
||||
|
||||
여러분의 master 브랜치를 freeCodeCamp 원격 저장소의 master 브랜치와 하드 리셋합니다:
|
||||
|
||||
```sh
|
||||
git reset --hard upstream/master
|
||||
```
|
||||
|
||||
GitHub에 있는 여러분의 fork 히스토리가 깨끗하도록 여러분의 master 브랜치를 원격 저장소로 push 합니다:
|
||||
|
||||
```sh
|
||||
git push origin master --force
|
||||
```
|
||||
|
||||
diff를 사용해서 여러분의 현재 master가 upstream/master와 일치하는지 확인할 수 있습니다:
|
||||
|
||||
```sh
|
||||
git diff upstream/master
|
||||
```
|
||||
|
||||
결과물로 아무것도 없어야 합니다.
|
||||
|
||||
3. 새로운 브랜치를 생성하세요.
|
||||
|
||||
이슈마다 브랜치를 따로 만들어 일하는 게 여러분이 개발을 깔끔하게 하도록 도와줍니다. `master`에서 절대 일을 진행하지 마세요. 이는 freeCodeCamp 복사본을 엉망으로 만들어 새로운 clone이나 fork 복사본에서 일을 다시 하게 만들 수 있습니다.
|
||||
|
||||
앞에서 설명했듯이 `master`에 있는지 확인하신 다음, 거기에다 다른 브랜치를 만드세요:
|
||||
|
||||
```sh
|
||||
git checkout -b fix/update-guide-for-xyz
|
||||
```
|
||||
|
||||
브랜치 이름은 반드시 `fix/`, `feat/`, `docs/`, 등으로 시작해야 합니다. 브랜치와 연동된 issue numbers는 사용하지 않도록 합니다. 짧고, 읽었을 때 무엇을 하려는지 짐작할 수 있으면서 다른 이름과 헷갈리지 않도록 합니다.
|
||||
|
||||
몇가 지 좋은 브랜치 이름의 예로는:
|
||||
|
||||
```md
|
||||
fix/update-challenges-for-react
|
||||
fix/update-guide-for-html-css
|
||||
fix/platform-bug-sign-in-issues
|
||||
feat/add-guide-article-for-javascript
|
||||
translate/add-spanish-basic-html
|
||||
```
|
||||
|
||||
4. 여러분이 사용하는 텍스트 에디터에서 페이지 및 코드를 수정하세요.
|
||||
|
||||
5. 수정사항이 마음에 들면 여러분의 컴퓨터에서 freeCodeCamp에 어떻게 반영되는지 미리 보기 하도록 하세요.
|
||||
|
||||
6. 여러분의 수정사항에 에러는 없는지 전체 구성이 올바른지 확인하세요. 저희는 [docs](/docs/)에 가이드 문서와 코딩 챌린지에 대한 스타일 가이드가 따로 있습니다.
|
||||
|
||||
7. 업데이트한 파일을 확인하세요.
|
||||
|
||||
```sh
|
||||
git status
|
||||
```
|
||||
|
||||
이는 여러분이 수정하였으나 아직 `unstaged` 상태의 파일 목록을 보여줍니다.
|
||||
|
||||
```sh
|
||||
On branch feat/documentation
|
||||
Your branch is up to date with 'upstream/feat/documentation'.
|
||||
|
||||
Changes not staged for commit:
|
||||
(use "git add/rm <file>..." to update what will be committed)
|
||||
(use "git checkout -- <file>..." to discard changes in working directory)
|
||||
|
||||
modified: CONTRIBUTING.md
|
||||
modified: docs/README.md
|
||||
modified: docs/how-to-setup-freecodecamp-locally.md
|
||||
modified: docs/how-to-work-on-guide-articles.md
|
||||
...
|
||||
```
|
||||
|
||||
8. 변경사항을 stage 화하고 commit 합니다.
|
||||
|
||||
이 단계에서 여러분은 여러분이 만들었거나 수정한 파일만을 작업해야 합니다. 필요한 파일만 선택적으로 작업할 수 있습니다.
|
||||
|
||||
```sh
|
||||
git add path/to/my/changed/file.ext
|
||||
```
|
||||
|
||||
아니면 모든 `unstaged` 파일을 staging area로 올릴 수 있습니다:
|
||||
|
||||
```sh
|
||||
git add .
|
||||
```
|
||||
|
||||
staging area에 올라 온 파일들만을 commit 할 수 있습니다.
|
||||
|
||||
```sh
|
||||
git status
|
||||
```
|
||||
|
||||
Output:
|
||||
```sh
|
||||
On branch feat/documentation
|
||||
Your branch is up to date with 'upstream/feat/documentation'.
|
||||
|
||||
Changes to be committed:
|
||||
(use "git reset HEAD <file>..." to unstage)
|
||||
|
||||
modified: CONTRIBUTING.md
|
||||
modified: docs/README.md
|
||||
modified: docs/how-to-setup-freecodecamp-locally.md
|
||||
modified: docs/how-to-work-on-guide-articles.md
|
||||
```
|
||||
|
||||
아래처럼 짧은 메시지와 함께 변경사항을 commit 할 수 있습니다:
|
||||
|
||||
```sh
|
||||
git commit -m "fix: 짧은 commit 메시지"
|
||||
```
|
||||
|
||||
몇가지 예:
|
||||
|
||||
```md
|
||||
fix: update guide article for Java - for loop
|
||||
feat: add guide article for alexa skills
|
||||
```
|
||||
|
||||
선택사항:
|
||||
|
||||
이미 다른 개발자들이 사용하고 있는 commit 메시지를 여러분도 사용할 것을 권해드립니다. 현재 활발하게 진행 중인 오픈 소스 저장소들에서 확인하실 수 있을 겁니다. 개발자로서 이는 권장될 만한 연습 방법입니다.
|
||||
|
||||
자주 볼 수 있는 commit 메시지의 몇 가지 예:
|
||||
|
||||
```md
|
||||
fix: update HTML guide article
|
||||
fix: update build scripts for Travis-CI
|
||||
feat: add article for JavaScript hoisting
|
||||
docs: update contributing guidelines
|
||||
```
|
||||
|
||||
50글자 이상으로 넘어가지 않도록 짧게 만듭니다. 비교적 긴 부가 설명이 필요하면 commit 메시지 외에 description을 사용하면 됩니다.
|
||||
|
||||
This does not take any additional time than an unconventional message like 'update file' or 'add index.md'
|
||||
|
||||
왜 이러한 commits를 이용해야 하는지 더 궁금하면 [here](https://www.conventionalcommits.org/en/v1.0.0-beta.2/#why-use-conventional-commits)를 읽어보세요.
|
||||
|
||||
9. commit 이후에 파일을 수정하거나 commit 메시지를 업데이트하고 싶으면:
|
||||
|
||||
```sh
|
||||
git commit --amend
|
||||
```
|
||||
|
||||
이는 `nano`나 `vi` 같이 자동 설정된 텍스트 에디터를 열어 여러분이 commit 메시지나 제목, 설명란을 추가하거나 수정할 수 있게 해 줍니다.
|
||||
|
||||
10. 다음으로, 변경사항을 여러분의 fork로 push 할 수 있습니다.
|
||||
|
||||
```sh
|
||||
git push origin branch/name-here
|
||||
```
|
||||
|
||||
## Pull Request (PR) 요청하기
|
||||
변경사항을 commit 하신 다음에는 [Pull Request 만들기](/docs/how-to-open-a-pull-request.md)를 읽어 보세요.
|
||||
|
||||
## 도움 요청하기
|
||||
도움이 필요하시면 ['Contributors' category on our forum](https://forum.freecodecamp.org/c/contributors)이나 Gitter에 있는 [Contributors chat room](https://gitter.im/FreeCodeCamp/Contributors)으로 질문을 남겨 주세요.
|
||||
|
||||
문제가 무언지 식별하도록 도와줄 브라우저 콘솔이나 Bash / 터미널 / 명령어에 에러가 있을 수 있습니다. 이러한 에러 메시지를 질문할 때 포함해 주세요. 이는 다른 이들이 여러분이 직면한 문제가 무엇인지 더 쉽게 파악해서 도움을 줄 수 있습니다.
|
||||
|
||||
### Troubleshooting
|
||||
앱은 실행되는데 보여야 할 폰트가 안 보이는 UI 쪽에 문제가 있거나 코드 에디터가 제대로 보이지 않으면 여러분의 컴퓨터(로컬)에 설정한 거에 따라 아래를 참조하세요:
|
||||
|
||||
**Docker Build:**
|
||||
```sh
|
||||
# We use a mono repo and have multiple components (server, client, tools, plugins, etc.)
|
||||
# Use this command to clean up all dependencies in all of the components
|
||||
npm run docker:clean
|
||||
|
||||
# Reinstall npm packages
|
||||
npm run docker:install
|
||||
|
||||
# Seed the database
|
||||
npm run docker:seed
|
||||
|
||||
# Restart the application
|
||||
npm run docker:develop
|
||||
```
|
||||
|
||||
**Local Build:**
|
||||
```sh
|
||||
npm run clean
|
||||
npm ci
|
||||
npm run seed
|
||||
npm run develop
|
||||
```
|
||||
|
||||
로그인되는 대신 freeCodeCamp에 보고될 거라는 에러 메시지가 있는 창을 보게 되면 내 컴퓨터 내에서 포트 3000이 다른 프로그램에 의해 사용되고 있지는 않은지 꼭 확인해 보세요.
|
||||
|
||||
|
||||
dependencies 설치하는 동안에 에러가 생기면 제한된 네트워크 환경에 있지는 않은지, 해당 자원에 접근하지 못하도록 방화벽이 설정되진 않았는지 확인해 보세요. 한 가지 해결책으로는 VPN 서비스를 해당 환경에서 사용할 수 있도록 허용하는 겁니다.
|
@ -1,117 +0,0 @@
|
||||
# Wytyczne dotyczące twojego wkładu w FreeCodeCamp
|
||||
|
||||
Cześć. 👋
|
||||
|
||||
Funkcjonowanie freeCodeCamp.org jest możliwe dzięki tysiącom życzliwych wolontariuszy takich jak Ty. Jesteśmy wdzięczni za Twój wkład i cieszymy się, że możemy powitać Cię na pokładzie.
|
||||
|
||||
Ściśle egzekwujemy nasz [„Kodeks postępowania”](https://www.freecodecamp.org/code-of-conduct). Poświęć chwilę, aby go przeczytać. Ma tylko 196 słów.
|
||||
|
||||
Szczęśliwego rozwijania kodu open source!
|
||||
|
||||
## Oto kilka fajnych sposobów, w które możesz pomóc
|
||||
|
||||
Możesz przyczynić się do jednego z tych rzeczy:
|
||||
|
||||
|
||||
1. [Rozwijaj tę otwartoźródłową bazę danych](#https://github.com/freeCodeCamp/freeCodeCamp/). Pomóż nam edytować wyzwania związane z kodowaniem lub naprawiaj błędy na platformie edukacyjnej.
|
||||
|
||||
2. Pomoc dla kamperów na naszym [forum publicznym](https://forum.freecodecamp.org/). [Odpowiedz na pytania dotyczące kodowania](https://forum.freecodecamp.org/?max_posts=1) lub [podaj im informacje zwrotne na temat ich projektów kodowania](https://forum.freecodecamp.org/c/project-feedback?max_posts=1).
|
||||
|
||||
3. Pomóż nam dodawać napisy (podpisy zamknięte) do naszych [Filmów na kanale YouTube](https://www.youtube.com/channel/UC8butISFwT-Wl7EV0hUK0BQ/videos).
|
||||
|
||||
## Przyczyniaj się do tej otwartej źródłowej bazy danych.
|
||||
|
||||
Nasza baza danych zawiera tysiące [wyzwań związanych z kodowaniem](https://learn.freecodecamp.org) oraz inne kody źródłowe, które zasilają naszą platformę edukacyjną.
|
||||
|
||||
##### Twórz, aktualizuj i naprawiaj błędy w naszych wyzwaniach związanych z kodowaniem.
|
||||
|
||||
Wszystkie nasze wyzwania związane z kodowaniem są obsługiwane przez społeczność, dostarczającą specjalistyczną wiedzę od wolontariuszy takich jak Ty.
|
||||
|
||||
Możesz pomóc je rozszerzyć i poprawić ich brzmienie. Możesz również aktualizować historie użytkowników, aby lepiej wyjaśnić koncepcję lub usunąć zbędne i poprawić testy wyzwań, aby lepiej testowały kod ludzi.
|
||||
|
||||
**Jeśli jesteś zainteresowany poprawą tych wyzwań związanych z kodowaniem, oto [jak pracować nad wyzwaniami związanymi z kodowaniem](/docs/how-to-work-on-coding-challenges.md).**
|
||||
|
||||
##### Pomóż nam naprawić błędy w platformie edukacyjnej freeCodeCamp.org
|
||||
|
||||
Nasza platforma edukacyjna działa na nowoczesnym stosie JavaScript. Posiada różne komponenty, narzędzia i biblioteki, w tym między innymi Node.js, MongoDB, LoopBack, OAuth 2.0, React, Gatsby, Webpack i wiele innych.
|
||||
|
||||
Ogólnie rzecz biorąc,
|
||||
|
||||
- Mamy serwer API oparty na Node.js.
|
||||
- Zestaw aplikacji klienckich opartych na React.
|
||||
- Skrypt, którego używamy do oceny naszych projektów front-end.
|
||||
rozwijanie naszego stacku wymaga trochę zrozumienia API, ES6 Syntax, i chęci nauki.
|
||||
|
||||
Zasadniczo oczekujemy podstawowej znajomości niektórych z wyżej wymienionych technologii, narzędzi i bibliotek. Biorąc to pod uwagę, nie jesteście zobowiązani do bycia ekspertem w tym zakresie, aby móc wnieść swój wkład.
|
||||
|
||||
**Jeśli chcesz pomóc nam udoskonalić naszą bazę danych, możesz albo [skonfigurować freeCodeCamp lokalnie](/docs/how-to-setup-freecamp-locally.md) albo użyć Gitpod, darmowego środowiska online dev.**
|
||||
|
||||
[](https://gitpod.io/#https://github.com/freeCodeCamp/freeCodeCamp)
|
||||
|
||||
(Uruchamia gotowe do kodowania środowisko dev dla freecodecamp w przeglądarce.)
|
||||
|
||||
## Najczęściej zadawane pytania
|
||||
|
||||
### Jak mogę zgłosić błąd, którego nie ma na pokładzie?
|
||||
|
||||
Jeśli uważasz, że znalazłeś błąd, przeczytaj najpierw artykuł ["Help I've Found a Bug"](https://forum.freecodecamp.org/t/how-to-report-a-bug/19543) i postępuj zgodnie z jego instrukcjami.
|
||||
|
||||
Jeśli jesteś pewien, że jest to nowy błąd, stwórz nowy problem z GitHub. Upewnij się, że dołączysz jak najwięcej informacji, abyśmy mogli odtworzyć błąd. Mamy predefiniowany szablon problemu, który pomoże Ci w jego rozwiązaniu.
|
||||
|
||||
Proszę zwrócić uwagę, że wszelkie problemy, które szukają pomocy przy kodowaniu w przypadku wyzwania, zostaną zamknięte. Śledzenie spraw jest ściśle związane z zagadnieniami związanymi z bazą danych i dyskusjami. W razie wątpliwości, przed sporządzeniem raportu należy [szukać pomocy na forum](https://forum.freecodecamp.org).
|
||||
|
||||
##### Jak mogę zgłosić problem bezpieczeństwa?
|
||||
|
||||
Proszę nie tworzyć problemów z GitHub w sprawach bezpieczeństwa. Zamiast tego, wyślij e-mail na adres `security@freecodecamp.org` i natychmiast się temu przyjrzymy.
|
||||
|
||||
##### Co oznaczają te różne etykiety, które są oznaczone na tematach?
|
||||
|
||||
Nasi moderatorzy społeczności [triage](https://en.wikipedia.org/wiki/Software_bug#Bug_management) zgłaszają problemy i wnioski w oparciu o ich priorytet, dotkliwość i inne czynniki. Możesz [znaleźć kompletny słowniczek ich znaczeń tutaj](https://github.com/freecodecamp/freecodecamp/labels).
|
||||
|
||||
Powinieneś przejść przez [**`help wanted`**](https://github.com/freeCodeCamp/freeCodeCamp/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22) lub [**`first timers only`**](https://github.com/freeCodeCamp/freeCodeCamp/issues?q=is%3Aopen+is%3Aissue+label%3A%22first+timers+only%22) w celu szybkiego przeglądu tego, nad czym możesz pracować.
|
||||
|
||||
Są one do pobrania i nie musisz ubiegać się o pozwolenie przed rozpoczęciem pracy nad nimi. Jeśli te kwestie nie są jasne, co należy zrobić, nie krępuj się zadawać pytań w komentarzach.
|
||||
|
||||
#### Znalazłem literówkę, czy powinienem zgłosić problem, zanim złożę prośbę o ciągnięcie?
|
||||
|
||||
W przypadku literówek i innych zmian w słownictwie, możesz bezpośrednio otwierać żądania ciągnięcia bez wcześniejszego tworzenia problemu. Problemy są bardziej przydatne do omówienia większych problemów związanych z kodem lub aspektami strukturalnymi programu nauczania.
|
||||
|
||||
##### Jak mogę dostać problem przypisany do mnie?
|
||||
|
||||
Zazwyczaj nie przydziela się problemów nikomu innemu niż długoletnim współpracownikom, aby uniknąć ambitnego nie dostarczenia wyników. Zamiast tego postępujemy zgodnie z poniższą polityką, aby być sprawiedliwym dla wszystkich:
|
||||
|
||||
1. Preferowane jest połączenie pierwszego wniosku o wyciągnięcie ręki w każdej sprawie.
|
||||
2. W przypadku wielokrotnych próśb o ten sam problem, dajemy pierwszeństwo jakości kodu w próśb o wyciągnięcie.
|
||||
- Czy dołączyłeś testy?
|
||||
- Czy złapałeś wszystkie przypadki?
|
||||
- Czy upewniłeś się, że wszystkie testy przeszły pomyślnie i potwierdziłeś, że wszystko działa lokalnie?
|
||||
3. W końcu popieramy prośby o pociągnięcie, które są zgodne z naszymi zaleceniami.
|
||||
- Podążał pan za listą kontrolną?
|
||||
- Czy podałeś nazwę swojej listy kontrolnej w sposób znaczący?
|
||||
|
||||
Nie potrzebujesz żadnego zezwolenia dla spraw, które są oznaczone jako "potrzebna pomoc" lub "nowicjusze mile widziani", jak wyjaśniono wcześniej. Postępuj zgodnie z wytycznymi i otwórz prośbę o pomoc.
|
||||
|
||||
##### Jestem nowy w GitHubie i Open Source, od czego powinienem zacząć?
|
||||
|
||||
Przeczytaj nasz [Poradnik jak wnieść wkład do Open Source](https://github.com/freeCodeCamp/how-to-contribute-to-open-source).
|
||||
|
||||
##### Utknąłem na czymś, co nie jest zawarte w tej dokumentacji. Jak mogę uzyskać pomoc?
|
||||
|
||||
Możesz poprosić o pomoc:
|
||||
|
||||
- [Kategoria "Współtwórcy" na naszym forum publicznym](https://forum.freecodecamp.org/c/contributors)
|
||||
- [Nasz publiczny chat room dla współpracowników na Gitterze](https://gitter.im/FreeCodeCamp/Contributors)
|
||||
|
||||
Jesteśmy podekscytowani, by pomóc Ci we wzięciu udziału we wszystkich tematach, nad którymi chciałbyś pracować. Zachęcamy do zadawania nam pytań na tematy pokrewne, a my chętnie udzielimy wyjaśnień. Upewnij się, że szukasz swojego zapytania przed wysłaniem nowego. Bądź uprzejmy i cierpliwy. Nasza społeczność wolontariuszy i moderatorów jest zawsze w pobliżu, aby poprowadzić Cię przez Twoje pytania.
|
||||
|
||||
Jeśli masz wątpliwości, możesz skontaktować się z naszym zespołem programistów platformy, aby Ci w tym pomóc:
|
||||
|
||||
|
||||
| kontakt | GitHub | Twitter |
|
||||
|:----------------|:-------|:--------|
|
||||
| Mrugesh Mohapatra | [`@raisedadead`](https://github.com/raisedadead) | [`@raisedadead`](https://twitter.com/raisedadead)|
|
||||
| Ahmad Abdolsaheb | [`@ahmadabdolsaheb`](https://github.com/ahmadabdolsaheb) | [`@Abdolsaheb`](https://twitter.com/Abdolsaheb) |
|
||||
| Kristofer Koishigawa | [`@scissorsneedfoodtoo`](https://github.com/scissorsneedfoodtoo) | [`@kriskoishigawa`](https://twitter.com/kriskoishigawa) |
|
||||
|
||||
> **Email: `dev@freecodecamp.org`**
|
||||
|
@ -1,27 +0,0 @@
|
||||
# Developer Operations at freeCodeCamp.org
|
||||
|
||||
Dziękujemy za zainteresowanie się tym, jak robimy DevOps dla platformy na freeCodeCamp.org.
|
||||
|
||||
Staraliśmy się, aby język w tym przewodniku był jak najprostszy dla wszystkich. Znaleźć możesz tutaj jednak techniczny żargon. Nie jest to wyczerpujący przewodnik po wszystkich operacjach i ma być wykorzystywany tylko jako punkt odniesienia dla zrozumienia systemów.
|
||||
|
||||
## Jak budujemy i wdrażamy bazę danych?
|
||||
|
||||
Nieprzerwanie budujemy i wdrażamy [`master`](https://github.com/freeCodeCamp/freeCodeCamp/tree/master), nasz domyślny dział rozwoju na osobnym zestawie serwerów**.
|
||||
|
||||
Zazwyczaj gałąź `master` jest łączona z gałęzią [`produkcyjny-stage`](https://github.com/freeCodeCamp/freeCodeCamp/tree/production-staging) raz dziennie i wydawana w izolowanej infrastrukturze. Nazywamy to naszą aplikacją "staging/beta".
|
||||
|
||||
Jest ona identyczna z naszym środowiskiem produkcyjnym w `freeCodeCamp.org`, innym niż wykorzystującym osobny zestaw baz danych, serwerów, web-proxy, itp. Ta izolacja pozwala nam testować ciągły rozwój i funkcje w scenariuszu "production like", bez wpływu na zwykłych użytkowników platform freeCodeCamp.org.
|
||||
|
||||
Gdy tylko zespół programistów [`@freeCodeCamp/dev-team`](https://github.com/orgs/freeCodeCamp/teams/dev-team/members) jest zadowolony ze zmian w aplikacji inscenizacyjnej, zmiany te są przenoszone co kilka dni do środowiska [`production-current`](https://github.com/freeCodeCamp/freeCodeCamp/tree/production-current). Następnie wydajemy zmiany w naszych platformach na żywo na freeCodeCamp.org.
|
||||
|
||||
Stosujemy różne poziomy testów integracyjnych i akceptacyjnych, aby sprawdzić jakość kodu. Wszystkie nasze testy są wykonywane za pomocą oprogramowania, takiego jak Travis i Azure Pipelines. Niektóre z tych zautomatyzowanych, czyli po przeniesieniu zmian do odpowiedniego oddziału, są budowane i wdrażane na platformach.
|
||||
|
||||
Zapraszamy do przetestowania tych wydań w trybie **"public beta testing "** i uzyskania wczesnego dostępu do nadchodzących funkcji na platformach. Czasami te funkcje/zmiany są nazywane **następnymi, beta, etapami, ** itd. zamiennie.
|
||||
|
||||
Twój wkład poprzez opinie i raporty o wydaniach pomoże nam uczynić platformy produkcyjne na `freeCodeCamp.org` bardziej **odpornymi**, **zgodnymi** i **stabilnymi** dla każdego.
|
||||
|
||||
Dziękujemy Ci za zgłaszanie błędów, które napotykasz, pomagasz w ten sposób w ulepszaniu freeCodeCamp.org. Rządzisz!
|
||||
|
||||
## Identyfikacja nadchodzącej wersji platformy
|
||||
|
||||
Nazwa domeny będzie inna niż **`freeCodeCamp.org`**. Obecnie ta publiczna wersja beta testowa jest dostępna na stronie
|
@ -1,52 +0,0 @@
|
||||
<!-- do not translate this -->
|
||||
| [Read these guidelines in other languages](/docs/i18n-languages) |
|
||||
|-|
|
||||
<!-- do not translate this -->
|
||||
|
||||
# Jak otworzyć Pull Request
|
||||
|
||||
# Jak przygotowac dobrą nazwę Pull Request:
|
||||
|
||||
Przy otwieraniu Pull Request(PR), użyj poniższej tabeli, aby zdecydować, jaki tytuł ma nosić Twój PR w poniższym formacie:
|
||||
`fix/feat/chore/refactor/docs/perf (zakres): Tytuł PR
|
||||
|
||||
Przykładem jest `fix(learn): Naprawiono testy dla do...while loop challenge`.
|
||||
|
||||
| Scope | Documentation |
|
||||
|---|---|
|
||||
| `learn`,`curriculum` | For Pull Requests making changes to the curriculum challenges. |
|
||||
| `client` | For Pull Requests making changes to client platform logic or user interface |
|
||||
| `guide` | For Pull Requests which make changes to the guide. |
|
||||
| `docs` | For Pull Requests making changes to the project's documentation. |
|
||||
|
||||
|
||||
# Gdy proponuijesz Pull Request (PR)
|
||||
|
||||
1. Po dokonaniu edycji zostanie wyświetlony monit o utworzenie żądania przeciągnięcia na stronie GitHub widelca.
|
||||
|
||||
[Obraz - Porównaj prośbę o wyciągnięcie na GitHub](/docs/images/github/compare-pull-request-prompt.png)
|
||||
|
||||
2. Domyślnie, wszystkie żądania pobrania powinny być skierowane przeciwko głównemu repo freeCodeCamp, gałęzi `master`.
|
||||
|
||||
Upewnij się, że twój widelec bazowy jest ustawiony na freeCodeCamp/freeCodeCamp podczas podnoszenia żądania przeciągnięcia.
|
||||
|
||||

|
||||
|
||||
3. Wyślij żądanie ściągnięcia z gałezi do gałęzi `mastera` freeCodeCamp.
|
||||
|
||||
4. W treści swojego PR zamieść bardziej szczegółowe podsumowanie wprowadzonych przez Ciebie zmian i dlaczego.
|
||||
|
||||
- Otrzymasz szablon wniosku o pull request. Jest to lista kontrolna, którą powinieneś był zastosować przed otwarciem pull request.
|
||||
|
||||
- Wypełnij szczegóły, które wydają Ci się pasować. Informacje te zostaną zweryfikowane i zadecydują, czy wniosek o pull request zostanie przyjęty, czy też nie.
|
||||
|
||||
- Jeśli PR ma na celu naprawienie istniejącego błędu/sprawy, to na końcu
|
||||
opis Twojego PR, dodaj słowo kluczowe `zamknięcia`i#xxxxxx (gdzie xxxx
|
||||
jest numerem wydania). Przykład: `zamknięcie #1337`. To mówi GitHub, aby
|
||||
automatycznie zamyka istniejącą sprawę, jeśli PR zostanie zaakceptowany i połączony.
|
||||
|
||||
5. Wskazać, czy testowałeś na lokalnej kopii strony, czy też nie.
|
||||
|
||||
Jest to bardzo ważne, gdy dokonujesz zmian, które nie ograniczają się jedynie do edycji treści tekstowych, takich jak artykuł w Przewodniku. Przykłady zmian wymagających lokalnego testowania to JavaScript, CSS lub HTML, które mogą zmienić funkcjonalność lub układ strony.
|
||||
|
||||
|
@ -1,337 +0,0 @@
|
||||
<!-- do not translate this -->
|
||||
| [Read these guidelines in other languages](/docs/i18n-languages) |
|
||||
|-|
|
||||
<!-- do not translate this -->
|
||||
|
||||
# How to work on coding challenges
|
||||
|
||||
Naszym celem jest rozwój zabawnego i przejrzystego doświadczenia interaktywnego uczenia się.
|
||||
|
||||
Projektowanie interaktywnych wyzwań związanych z kodowaniem jest trudne. Dużo łatwiej byłoby napisać długie wyjaśnienia lub stworzyć samouczek wideo, a jest miejsce dla tych na Medium i YouTube. Jednakże, jeśli chodzi o nasz podstawowy program nauczania, trzymamy się tego, co działa najlepiej dla większości ludzi - w pełni interaktywnego, przypominającego grę wideo doświadczenia.
|
||||
|
||||
Chcemy, aby obozowicze osiągnęli stan przepływu. Chcemy, aby zbudowali rozmach i prześlizgnęli się przez nasz program nauczania z jak najmniejszą liczbą rozdźwięków. Chcemy, aby uczestniczyli w projektach z pewnością siebie i z szeroką ekspozycją na koncepcje programowania.
|
||||
|
||||
Stworzenie tych wyzwań wymaga ogromnej kreatywności i dbałości o szczegóły. Ale będziesz miał mnóstwo pomocy. Masz wsparcie całego zespołu współpracowników, od których możesz odbijać pomysły i demo swoich wyzwań. Bądź aktywny w [pokoju współpracowników](https://gitter.im/freecodecamp/contributors) i zadawaj wiele pytań.
|
||||
|
||||
Z Twoją pomocą możemy zaprojektować interaktywny program nauczania kodowania, który pomoże milionom ludzi nauczyć się kodowania przez kolejne lata.
|
||||
|
||||
Zawartość każdego wyzwania jest przechowywana w jego własnym pliku markdown. Plik ten jest później publikowany przy użyciu naszych narzędzi, na stronie internetowej, z którą można się komunikować. Możesz znaleźć całą zawartość programu nauczania freeCodeCamp.org w katalogu [`/curriculum`](/curriculum).
|
||||
|
||||
Istnieją dwa sposoby pracy nad tymi wyzwaniami:
|
||||
|
||||
- Polecamy, sklonuj projekt i edytuj lokalnie na swoim komputerze. Aby uzyskać pomoc, przeczytaj nasze [wytyczne tutaj](/CONTRIBUTING.md).
|
||||
- Możesz też opcjonalnie zmodyfikować wyzwanie w interfejsie GitHub, klikając ikonę ołówka, aby rozpocząć edycję pliku.
|
||||
|
||||
## Szablon wyzwania
|
||||
|
||||
Poniżej znajduje się szablon tego, jak wyglądają pliki markdown wyzwań.
|
||||
|
||||
Uwagi:**Notatki:**
|
||||
|
||||
1. In the below sections, examples of `{ext}` are:
|
||||
- `html` - HTML/CSS
|
||||
- `js` - JavaScript
|
||||
- `jsx` - JSX
|
||||
|
||||
2. For the `Tests` section below, `text` and `testString` should be valid YAML strings. `testString` can be a stringified function or expression possibly using Chai asserts.
|
||||
|
||||
````md
|
||||
---
|
||||
id: Unique identifier (alphanumerical, MongoDB_id)
|
||||
title: Challenge Title
|
||||
challengeType: 0
|
||||
videoUrl: 'url of video explanation'
|
||||
---
|
||||
|
||||
## Description
|
||||
<section id='description'>
|
||||
A Description of the challenge and what is required to pass
|
||||
</section>
|
||||
|
||||
## Instructions
|
||||
<section id='instructions'>
|
||||
Instructions about what exactly needs to be done.
|
||||
</section>
|
||||
|
||||
## Tests
|
||||
<section id='tests'>
|
||||
|
||||
``` yml
|
||||
tests:
|
||||
- text: Should return "foo"
|
||||
testString: 'A stringified function possibly using Chai asserts'
|
||||
```
|
||||
|
||||
</section>
|
||||
|
||||
## Challenge Seed
|
||||
<section id='challengeSeed'>
|
||||
|
||||
<div id='{ext}-seed'>
|
||||
|
||||
```{ext}
|
||||
Code displayed in the editor by default.
|
||||
|
||||
This is a required section for the challenge.
|
||||
```
|
||||
|
||||
</div>
|
||||
|
||||
### Before Test
|
||||
<div id='{ext}-setup'>
|
||||
|
||||
```{ext}
|
||||
Optional Test setup code.
|
||||
```
|
||||
|
||||
</div>
|
||||
|
||||
### After Test
|
||||
<div id='{ext}-teardown'>
|
||||
|
||||
```{ext}
|
||||
Optional Test tear down code.
|
||||
```
|
||||
|
||||
</div>
|
||||
|
||||
</section>
|
||||
|
||||
## Solution
|
||||
<section id='solution'>
|
||||
|
||||
```{ext}
|
||||
// solution required
|
||||
```
|
||||
|
||||
</section>
|
||||
````
|
||||
|
||||
|
||||
# Numbering Challenges
|
||||
|
||||
Każde wyzwanie wymaga "pomocy". Jeśli go nie określisz, wtedy MongoDB utworzy nowy losowy, kiedy zapisze dane, jednak nie chcemy, aby to zrobił, ponieważ chcemy, aby wyzwania ids były spójne w różnych środowiskach (etapy, produkcja, wiele różnych programistów, itp.).
|
||||
|
||||
Aby wygenerować nowy w powłoce (zakładając, że MongoDB działa osobno):
|
||||
|
||||
|
||||
1. Run `mongo` command
|
||||
2. Run `ObjectId()` command
|
||||
|
||||
For example:
|
||||
|
||||
```bash
|
||||
$ mongo
|
||||
MongoDB shell version v3.6.1
|
||||
connecting to: mongodb://127.0.0.1:27017
|
||||
MongoDB server version: 3.4.10
|
||||
...
|
||||
$ ObjectId()
|
||||
ObjectId("5a474d78df58bafeb3535d34")
|
||||
```
|
||||
|
||||
The result is a new id, for example `5a474d78df58bafeb3535d34` above.
|
||||
|
||||
Once you have your id, put it into the markdown file as the `id` field at the top, e.g.
|
||||
|
||||
```yml
|
||||
---
|
||||
id: 5a474d78df58bafeb3535d34
|
||||
title: Challenge Title
|
||||
```
|
||||
# Naming challenges
|
||||
|
||||
Nazywanie rzeczy jest trudne. Ułatwiliśmy to poprzez nałożenie pewnych ograniczeń.
|
||||
|
||||
Wszystkie tytuły konkursowe powinny być jednoznaczne i powinny być zgodne z tym schematem:
|
||||
|
||||
[czasownik] [klauzula obiektowa]
|
||||
|
||||
Oto kilka przykładowych nazw wyzwań:
|
||||
|
||||
- Użyj zgodnie z ruchem wskazówek zegara, aby określić wypełnienie elementu
|
||||
- Tablice kondensacyjne z funkcją .reduce
|
||||
- Użyj notacji wspornikowej, aby znaleźć pierwszy znak w łańcuchu.
|
||||
|
||||
|
||||
# Writing challenge descriptionss/instructions (Pisanie opisów/instrukcji wyzwań)
|
||||
|
||||
Zdania powinny być jasne i zwięzłe z minimalnym żargonem. Jeśli jest używany, żargon powinien być natychmiast zdefiniowany w prostym języku angielskim.
|
||||
|
||||
Zachowaj krótkie akapity (około 1-4 zdań). Ludzie częściej czytają kilka krótkich akapitów nad ścianą tekstu.
|
||||
|
||||
Tekst wyzwania powinien wykorzystywać drugą osobę ("ty"), aby nadać mu ton rozmowy. W ten sposób tekst i instrukcje wydają się przemawiać bezpośrednio do osoby prowadzącej kamper, która pracuje nad wyzwaniem. Starajmy się unikać używania pierwszej osoby ("ja", "my", "pozwólmy" i "nas").
|
||||
|
||||
|
||||
Nie używaj linków wychodzących. Przerywają one przepływ. A kempingowicze nie powinni mieć nigdy obowiązku googlowania czegokolwiek podczas tych wyzwań. Jeśli istnieją zasoby, z których według ciebie kamperzy skorzystają, dodaj je do artykułu poświęconego wytycznym.
|
||||
|
||||
Możesz dodawać wykresy, jeśli jest to absolutnie konieczne.
|
||||
|
||||
freeCodeCamp ma globalną społeczność, a kulturowe znaczenie emoji lub emotikonu może być inne na całym świecie. Ponadto, emojis może być różnie renderowane na różnych systemach.
|
||||
|
||||
Właściwe rzeczowniki powinny używać poprawnej kapitalizacji, gdy jest to możliwe. Poniżej znajduje się lista słów, które powinny pojawić się w wyzwaniach.
|
||||
|
||||
- JavaScript (duże litery w "J" i "S" i brak skrótów)
|
||||
- Node.js
|
||||
- Rozwój front-endu (forma przymiotnikowa z myślnikiem) ma miejsce, gdy pracujesz na froncie (forma rzeczownika bez myślnika). To samo dotyczy terminów "back end", "full stack" i wielu innych terminów złożonych.
|
||||
|
||||
##### Zasada 2-minutowa
|
||||
|
||||
Każde wyzwanie powinno być możliwe do rozwiązania w ciągu 120 sekund przez osobę posługującą się językiem angielskim, która ukończyła zadania prowadzące do jego realizacji. Obejmuje to czas potrzebny na przeczytanie wskazówek/instrukcji, zrozumienie kodu źródłowego, napisanie własnego kodu i przejście wszystkich testów.
|
||||
|
||||
Jeśli ukończenie zadania trwa dłużej niż dwie minuty, masz dwie możliwości:
|
||||
|
||||
- Uprość zadanie, lub
|
||||
- Podziel wyzwanie na dwa wyzwania.
|
||||
|
||||
Zasada 2-minutowa zmusza Cię, projektanta wyzwań, do zwięzłego określenia kierunku, kodu nasion i prostych testów.
|
||||
|
||||
Mamy wydarzenia w języku JavaScript, które śledzą, ile czasu zajmuje kamperom rozwiązywanie wyzwań i możemy je wykorzystać do identyfikacji wyzwań, które należy uprościć lub podzielić.
|
||||
|
||||
##### Modułowość
|
||||
|
||||
Każde wyzwanie powinno nauczyć dokładnie jednej koncepcji, a koncepcja ta powinna wynikać z nazwy wyzwania.
|
||||
|
||||
Możemy wzmocnić wcześniej omówione koncepcje poprzez powtarzanie i wariacje - na przykład poprzez wprowadzenie elementów h1 w jednym wyzwaniu, a następnie elementów h3 później kilka wyzwań.
|
||||
|
||||
Naszym celem jest stawienie czoła tysiącom dwuminutowych wyzwań. Mogą one przepływać razem i powtarzać wcześniej omówione koncepcje.
|
||||
|
||||
#### Formatowanie tekstu wyzwania
|
||||
|
||||
Oto szczegółowe wytyczne dotyczące formatowania tekstu wyzwania i przykładów:
|
||||
|
||||
- Słowa kluczowe w języku idą w znacznikach `<code>`. Na przykład, nazwy tagów HTML lub nazwy właściwości CSS.
|
||||
- Pierwsza instancja słowa kluczowego, gdy jest ono definiowane, lub ogólne słowa kluczowe (np. "obiekt" lub "niezmienny") znajdują się w znacznikach `<dfn>`.
|
||||
- Odniesienia do części kodu (np. funkcja, metoda lub nazwa zmiennej) powinny być opakowane w znaczniki `<code>`. Zobacz przykład poniżej:
|
||||
- Użyj <code>parseInt</code> aby przekonwertować zmienną <code>realNumber</code> na liczbę całkowitą.
|
||||
- Wielowierszowe bloki kodu **muszą być poprzedzone pustym wierszem**. Następny wiersz musi zaczynać się od trzech wierszy wstecznych, po których natychmiast następuje jeden z [obsługiwanych języków](https://prismjs.com/#supported-languages). Aby dokończyć blok kodu, musisz uruchomić nową linię, która ma tylko trzy backticka i **inną pustą linię**.
|
||||
**Uwaga:** Jeśli zamierzasz użyć przykładowego kodu w YAML, użyj `yaml` zamiast `yml` dla języka po prawej stronie tyłków.
|
||||
|
||||
Zobacz przykład poniżej:
|
||||
|
||||
````md
|
||||
The following is an example of code:
|
||||
|
||||
```{language}
|
||||
|
||||
[YOUR CODE HERE]
|
||||
|
||||
```
|
||||
````
|
||||
|
||||
- Dodatkowe informacje w formie notatki powinny być sformatowane `<strong>Note:</strong> Pozostała część tekstu notatki...`
|
||||
- Jeśli potrzebnych jest wiele notatek, wówczas wszystkie notatki należy wymienić w osobnych zdaniach w formacie `<strong>Notes:</strong>Pierwsza notatka. Druga notatka text.`.
|
||||
- Używaj cudzysłowów podwójnych tam, gdzie ma to zastosowanie.
|
||||
|
||||
# Writing tests
|
||||
|
||||
Wyzwania powinny mieć minimalną liczbę testów niezbędnych do sprawdzenia, czy kamper rozumie koncepcję.
|
||||
|
||||
Naszym celem jest przekazanie jednego punktu, którego wyzwanie stara się nauczyć, i sprawdzenie, czy zrozumieli ten punkt.
|
||||
|
||||
Testy wyzwań mogą wykorzystywać biblioteki asertywne Node.js i Chai.js. Ponadto, w razie potrzeby, kod wygenerowany przez użytkownika może być dostępny w zmiennej `code`.
|
||||
|
||||
## Formatowanie kodu nasion
|
||||
|
||||
Oto szczegółowe wytyczne dotyczące formatowania kodu nasion wyzwania:
|
||||
|
||||
- Użyj dwóch spacji do wcięć
|
||||
- Wypowiedzi w języku JavaScript kończą się znakiem średnika.
|
||||
- W stosownych przypadkach należy stosować podwójne cudzysłowy.
|
||||
- Komentarze powinny mieć odstęp między znakami komentarza a samym komentarzem.
|
||||
|
||||
"/// Napraw tę linię
|
||||
|
||||
# Curriculum Challenge Hints and Solutions (Wyzwania programowe)
|
||||
|
||||
Każde wyzwanie posiada przycisk `Uzyskaj podpowiedź`, dzięki czemu użytkownik ma dostęp do wszelkich podpowiedzi/rozwiązań, które zostały stworzone dla wyzwania. Tematy podpowiedzi/rozwiązań programowych znajdują się na [naszym forum](https://forum.freecodecamp.org/c/guide) pod kategorią `Guide`.
|
||||
|
||||
Jeśli znajdziesz problem z istniejącym tematem podpowiedzi/rozwiązań wyzwania, możesz zgłosić sugestie w komentarzach poniżej głównego postu wiki, jeśli jesteś co najmniej użytkownikiem forum poziomu 3. Wybierz moderatorów, którzy zapoznają się z komentarzami i zdecydują, czy włączyć zmiany w istniejącym temacie.
|
||||
|
||||
##### Dodawanie nowych podpowiedzi/rozwiązań na temat wyzwań
|
||||
|
||||
Tylko moderatorzy mogą dodawać nowe podpowiedzi i rozwiązania, gdy do programu nauczania dodawane są nowe wyzwania.
|
||||
|
||||
Podejmij następujące kroki podczas dodawania nowych podpowiedzi/rozwiązań związanych z tematem związanym z wyzwaniami.
|
||||
|
||||
1. Rozpocznij od wykonania tych samych kroków w przypadku [tworzenia nowego tematu] (tworzenie nowego przewodnika tematycznego), a następnie przejrzyj następny etap tworzenia tytułu.
|
||||
2. Tytuł tematu powinien zaczynać się od "freeCodeCamp Challenge Guide: W tym celu należy zacząć od "freeCamp Challenge Guide: "freeCamp Challenge Guide: FreeCamp Challenge Guide: FreeCamp Challenge Guide: FreeCamp Challenge Guide: FreeCamp Challenge Guide: FreeCamp Challenge Guide: FreeCamp Challenge Guide. Na przykład, jeśli wyzwanie nosi nazwę "Chunky Monkey", tytuł tematu brzmiałby "freeCodeCamp Challenge Guide": Chunky Monkey".
|
||||
3. 3. `camperbot` powinien być właścicielem tych tematów/pocztów, więc będziesz musiał poprosić administratora o zmianę własności głównego postu na `camperbot`.
|
||||
4. Po utworzeniu nowego tematu, tworzony jest identyfikator tematu forum. Znajduje się on na końcu adresu URL tematu forum. Ten identyfikator musi być dodany do frontmaterii pliku wyzwania programu nauczania poprzez normalny proces pull request dla przycisku "Uzyskaj podpowiedź", aby połączyć się z tematem.
|
||||
|
||||
#### Wytyczne dotyczące treści podpowiedzi i rozwiązań tematów
|
||||
|
||||
W przypadku proponowania rozwiązania dla tematu przewodnika związanego z wyzwaniem programowym, należy dodać pełny kod. Obejmuje on wszystkie oryginalne kody zalążkowe oraz wszelkie zmiany potrzebne do przejścia wszystkich testów na wyzwania. Poniższy szablon powinien być używany podczas tworzenia nowych podpowiedzi/rozwiązań tematycznych:
|
||||
|
||||
````md
|
||||
# Challenge Name Goes Here
|
||||
|
||||
---
|
||||
## Problem Explanation
|
||||
|
||||
This summarizes what need to be done without just restating the challenge description and/or instructions. This is an optional section
|
||||
|
||||
#### Relevant Links
|
||||
- [Link Text](link_url_goes_here)
|
||||
- [Link Text](link_url_goes_here)
|
||||
|
||||
---
|
||||
## Hints
|
||||
|
||||
### Hint 1
|
||||
Hint goes here
|
||||
|
||||
### Hint 2
|
||||
Hint goes here
|
||||
|
||||
---
|
||||
## Solutions
|
||||
|
||||
<details><summary>Solution 1 (Click to Show/Hide)</summary>
|
||||
|
||||
```js
|
||||
function myFunc() {
|
||||
console.log('Hello World!');
|
||||
}
|
||||
```
|
||||
|
||||
#### Code Explanation
|
||||
|
||||
- Code explanation goes here
|
||||
- Code explanation goes here
|
||||
|
||||
#### Relevant Links
|
||||
|
||||
- [Link Text](link_url_goes_here)
|
||||
- [Link Text](link_url_goes_here)
|
||||
|
||||
</details>
|
||||
````
|
||||
# Testowanie wyzwań
|
||||
|
||||
Przed utworzeniem [prośby o wyciągnięcie](how-to-open-a-pull-request.md) dla Twoich zmian, musisz sprawdzić, czy wprowadzone zmiany nie powodują nieumyślnie problemów z wyzwaniem. Aby przetestować wszystkie wyzwania, należy wykonać "test npm run test:curriculum". Aby zaoszczędzić czas możesz ograniczyć testy do jednego wyzwania wykonując następujące kroki:
|
||||
|
||||
1. W pliku `.env` ustaw zmienną środowiskową `LOCALE` na język wyzwania (wyzwań), które musisz przetestować. Obecnie akceptowane wartości to `angielski`, `arabski`, `chiński`, `portugalski`, `rosyjski` i `hiszpański`.
|
||||
|
||||
2. Przełączyć do katalogu `curriculum`:
|
||||
|
||||
```
|
||||
cd program nauczania
|
||||
```
|
||||
|
||||
3. Wykonaj następujące czynności dla każdego pliku wyzwania, dla którego zmieniłeś dowolny `testString`s lub dodane rozwiązania:
|
||||
|
||||
```
|
||||
npm run test -- -g 'pełny angielski tytuł wyzwania'.
|
||||
```
|
||||
|
||||
Po sprawdzeniu, że każde wyzwanie, nad którym pracowałeś, przejdzie pomyślnie testy, prosimy o stworzenie wniosku o ciągnięcie.
|
||||
|
||||
#### Przydatne linki
|
||||
|
||||
Tworzenie i edycja wyzwań:
|
||||
|
||||
1. Typy wyzwań](https://github.com/freeCodeCamp/freeCodeCamp/blob/master/client/utils/challengeTypes.js#L1-L13) - co oznaczają liczbowe wartości typu wyzwania (wyliczenie).
|
||||
|
||||
2. [Przyczyniając się do FreeCodeCamp - Writing ES6 Challenge Tests](https://www.youtube.com/watch?v=iOdD84OSfAE#t=2h49m55s) - film video po [Ethan Arrowood](https://twitter.com/ArrowoodTech) jako wkład do starej wersji programu nauczania.
|
||||
|
@ -1,148 +0,0 @@
|
||||
<!-- do not translate this -->
|
||||
| [Read these guidelines in other languages](/docs/i18n-languages) |
|
||||
|-|
|
||||
<!-- do not translate this -->
|
||||
|
||||
# Orientações para Contribuição
|
||||
|
||||
Olá 👋!
|
||||
|
||||
freeCodeCamp.org é possível graças a milhares de voluntários gentis como você. Somos gratos por suas contribuições e estamos felizes em te receber.
|
||||
|
||||
Nós seguimos as diretrizes do nosso ["Código de Conduta"](https://www.freecodecamp.org/code-of-conduct). Dedique um tempo para lê-lo. Ele não é muito longo.
|
||||
|
||||
Divirta-se contribuindo 🎉!
|
||||
|
||||
## Esses são alguns jeitos divertidos de contribuir
|
||||
|
||||
Você pode contribuir para qualquer área do seu interesse:
|
||||
|
||||
1. [Contribua para essa base de códigos abertos.](#contribua-para-essa-base-de-códigos-abertos)
|
||||
|
||||
Nos ajude criando e editando [Artigos guia](https://www.freecodecamp.org/guide), [desafios de codificação](https://www.freecodecamp.org/learn), ou corrigindo bugs na plataforma de aprendizado.
|
||||
|
||||
2. Ajude campistas em nosso [fórum público](https://forum.freecodecamp.org/).
|
||||
|
||||
- ❓ Ajude campistas [respondendo suas perguntas](https://forum.freecodecamp.org/?max_posts=1).
|
||||
- 💬 [Faça comentários](https://forum.freecodecamp.org/c/project-feedback?max_posts=1) em projetos dos campistas.
|
||||
|
||||
3. Nos ajude a legendar nosso [canal no YouTube](https://www.youtube.com/channel/UC8butISFwT-Wl7EV0hUK0BQ/videos).
|
||||
|
||||
## Contribua para essa base de códigos abertos
|
||||
|
||||
Nós temos uma base de código aberto gigantesca dos [Desafios de código](https://www.freecodecamp.org/learn) e [Artigos de guia](https://www.freecodecamp.org/guide).
|
||||
Esses desafios e artigos compõem o conteúdo de aprendizado disponível na plataforma de aprendizado da freeCodeCamp.org.
|
||||
|
||||
Você pode nos ajudar:
|
||||
|
||||
- [📝 Pesquise, Escreva e Atualize nossos artigos de guia.](#pesquise-escreva-e-atualize-nossos-artigos-de-guia)
|
||||
|
||||
- [💻 Crie, Atualize e Corrija <i>Bugs</i> em nossos desafios de código.](#crie-atualize-e-corrija-bugs-em-nossos-desafios-de-código)
|
||||
|
||||
- [🌐 Traduza artigos de guia e desafios de código.](#traduza-artigos-de-guia-e-desafios-de-código)
|
||||
|
||||
- [🛠 Nos ajude a corrigir <i>bugs</i> na plataforma de aprendizado da freeCodeCamp.org.](#nos-ajude-a-corrigir-bugs-na-plataforma-de-aprendizado-da-freecodecamporg)
|
||||
|
||||
### Pesquise, Escreva e Atualize nossos artigos de guia
|
||||
|
||||
**O que são Artigos de guia?**
|
||||
|
||||
Artigos de guia ajudam você a ter um rápido entendimento sobre um conceito tecnológico. Eles são explicações em Português, curtas e diretas, que você pode ler antes de partir para recursos mais aprofundados.
|
||||
|
||||
Você pode encontrar um [artigo de exemplo sobre elementos HTML aqui](../../guide/portuguese/html/elements/index.md).
|
||||
|
||||
**Sobre o que eu posso escrever um artigo?**
|
||||
|
||||
Nós agradecemos sua ajuda na escrita desses artigos. Você não precisa ser um especialista em um tópico para escrever sobre isso - Todo o Guia é código aberto, então mesmo que você cometa um erro, outro contribuidor vai eventualmente corrigí-lo.
|
||||
|
||||
Para ajudar, encontre um `artigo provisório` na [página de Guias](https://www.freecodecamp.org/guide), escreva o artigo, e então abra um <i>pull request</i> (PR) para substituir o provisório pelo seu artigo. Um [<i>pull request</i>](https://help.github.com/articles/about-pull-requests/) é a forma como você vai sugerir mudanças. Ele permite que outros saibam das suas mudanças, revisem-nas e as adotem.
|
||||
|
||||
Se você não consegue encontrar um artigo provisório do tópico sobre o qual você gostaria de escrever, você pode abrir um PR que cria o artigo provisório e então incluir o rascunho do seu artigo.
|
||||
|
||||
**Se você gostaria de trabalhar nisso, por favor, siga as seguintes recomendações:**
|
||||
|
||||
#### [Como trabalhar em Artigos de guia.](/docs/i18n-languages/portuguese/how-to-work-on-guide-articles.md)
|
||||
|
||||
### Crie, Atualize e Corrija <i>Bugs</i> em nossos desafios de código
|
||||
|
||||
Todos os nossos Desafios de código tem curadoria da comunidade, trazendo conhecimento especializado de voluntários como você.
|
||||
Entretanto, eles precisam ser constantemente refinados para melhor qualidade. Por exemplo, você pode querer atualizar suas instruções para melhorar seu palavreado. Você pode atualizar as histórias de usuário para explicar o conceito melhor ou mesmo evitar redundâncias. Você pode querer refatorar testes que não passam em códigos válidos das histórias de usuário.
|
||||
|
||||
**Se você gostaria de trabalhar nisso, por favor, siga as seguintes recomendações:**
|
||||
|
||||
#### [Como trabalhar em desafios de código.](/docs/i18n-languages/portuguese/how-to-work-on-coding-challenges.md)
|
||||
|
||||
### Traduza artigos de guia e desafios de código
|
||||
|
||||
Você pode nos ajudar a traduzir nossos Artigos de guia e Desafios de código para uma língua que você fala. Atualmente, nós temos versões traduzidas em:
|
||||
|
||||
- [Arabic (عربي)](https://github.com/freeCodeCamp/freeCodeCamp/tree/master/guide/arabic)
|
||||
- [Chinese (中文)](https://github.com/freeCodeCamp/freeCodeCamp/tree/master/guide/chinese)
|
||||
- [Portuguese (Português)](https://github.com/freeCodeCamp/freeCodeCamp/tree/master/guide/portuguese)
|
||||
- [Russian (русский)](https://github.com/freeCodeCamp/freeCodeCamp/tree/master/guide/russian)
|
||||
- [Spanish (Español)](https://github.com/freeCodeCamp/freeCodeCamp/tree/master/guide/spanish)
|
||||
|
||||
A maioria dessas versões são traduções de máquina. Nós vamos amar sua ajuda em melhorar a qualidade dessas traduções.
|
||||
|
||||
**Se você gostaria de trabalhar nisso, por favor, siga as seguintes recomendações:**
|
||||
|
||||
**[TODO]** Nós estamos no processo de atualizar os documentos para o fluxo de tradução. Siga [`#18313`](https://github.com/freeCodeCamp/freeCodeCamp/issues/18313) para acompanhar o progresso.
|
||||
|
||||
### Nos ajude a corrigir <i>bugs</i> na plataforma de aprendizado da freeCodeCamp.org
|
||||
|
||||
Nossa plataforma de aprendizado roda em uma <i>stack</i> moderna de Javascript. Ela contém vários componentes, ferramentas e bibliotecas, incluindo, mas não limitadas a: Node.js, MongoDB, LoopBack, OAuth 2.0, React, Gatsby, Webpack, entre outras.
|
||||
|
||||
De maneira geral,
|
||||
|
||||
- Nós temos um servidor de API baseado em Node.js.
|
||||
- Um conjunto de aplicações cliente baseadas em React.
|
||||
- Um <i>script</i> que nós utilizamos para avaliar nossos projetos <i>Frontend</i>.
|
||||
|
||||
Contribuir para isso requer certo conhecimento de APIs, sintaxe ES6 e bastante curiosidade.
|
||||
|
||||
Nós esperamos certa familiaridade básica com algumas das tecnologias, ferramentas e bibliotecas mencionadas. Dito isso, não é necessário que você seja um especialista nelas.
|
||||
|
||||
Sinta-se livre para nos fazer qualquer pergunta nos tópicos de questões relacionadas, e nós seremos gratos em explicar. Quando em dúvida, você pode contatar Mrugesh Mohapatra [`@raisedadead`](https://github.com/raisedadead) ou Stuart Taylor [`@bouncey`](https://github.com/bouncey) do nosso time de desenvolvimento da plataforma para o ajudar.
|
||||
|
||||
**Se você gostaria de trabalhar nisso, por favor, siga as seguintes recomendações:**
|
||||
|
||||
#### [Como configurar freeCodeCamp localmente.](/docs/i18n-languages/portuguese/how-to-setup-freecodecamp-locally.md)
|
||||
|
||||
## Perguntas Frequentes
|
||||
|
||||
**Como eu posso reportar um <i>bug</i>?**
|
||||
|
||||
Se você acha que encontrou um <i>bug</i>, primeiro leia o artigo ["Help I've Found a Bug"](https://forum.freecodecamp.org/t/how-to-report-a-bug/19543) e siga as instruções.
|
||||
|
||||
Se você está confiante de que se trata de um <i>bug</i> novo, vá em frente e crie uma nova <i>issue</i> no GitHub. Certifique-se de incluir o máximo de informações possível para que nós possamos reproduzir o <i>bug</i>. Nós temos um modelo pré definido para <i>issues</i> para ajudá-lo nisso.
|
||||
|
||||
Por favor, repare que qualquer <i>issue</i> que esteja buscando ajuda no código de algum desafio será fechada. O acompanhador de <i>issues</i> é restrito a problemas e discussões relacionadas à base de código. Você deve [buscar ajuda no fórum](https://forum.freecodecamp.org) antes de reportar sempre que estiver em dúvida.
|
||||
|
||||
**Como eu posso reportar um problema de segurança?**
|
||||
|
||||
Por favor não crie <i>issues</i> relacionadas à segurança no GitHub. Ao invés disso, por favor envie um email para `security@freecodecamp.org` e nós iremos analisar imediatamente.
|
||||
|
||||
**Estou parado em algo que não está nessa documentação. Como posso conseguir ajuda?**
|
||||
|
||||
Sinta-se livre para pedir ajuda:
|
||||
|
||||
- [Na categoria de "Contribuidores" (<i>Contributors</i>) em nosso fórum público](https://forum.freecodecamp.org/c/contributors).
|
||||
- [Em nossa sala pública de <i>chat</i> de contribuidores no Gitter](https://gitter.im/FreeCodeCamp/Contributors).
|
||||
|
||||
Nós estamos empolgados em te ajudar a contribuir para qualquer tópico em que você queira trabalhar. Certifique-se de fazer uma busca antes de publicar um tópico novo. Seja educado e paciente. Os voluntários e moderadores da nossa comunidade estão sempre por perto para te ajudar em suas questões.
|
||||
|
||||
**Eu sou novo no GitHub e <i>Open Source</i> (Código Aberto) em geral:**
|
||||
|
||||
Leia nosso [Guia de como contribuir para <i>Open Source</i>](https://github.com/freeCodeCamp/how-to-contribute-to-open-source).
|
||||
|
||||
**O que esses rótulos diferentes marcados nas <i>issues</i> significam?**
|
||||
|
||||
Nossa comunidade de moderadores faz uma [triagem](https://en.wikipedia.org/wiki/Software_bug#Bug_management) das <i>issues</i> e <i>pull requests</i> baseada em suas prioridades, gravidade e outros fatores. Você pode [encontrar um glossário completo dos seus significados aqui](https://github.com/freecodecamp/freecodecamp/labels).
|
||||
|
||||
Você deveria passar pelas <i>issues</i> de **`Help Wanted`** (Ajuda necessária) ou **`first timers only`** (Iniciantes são bem vindos) para uma rápida consulta do que está livre para você trabalhar. Elas estão disponíveis e você não precisa de permissão para começar a trabalhar nelas.
|
||||
|
||||
Se essas <i>issues</i> possuem falta de clareza do que deve ser feito, sinta-se livre para tirar suas dúvidas nos comentários.
|
||||
|
||||
**Encontrei um erro de escrita, eu devo reportar antes de criar um <i>pull request</i>?**
|
||||
|
||||
Você pode criar diretamente um <i>pull request</i> sem ter de reportar uma <i>issue</i> em casos de erros de escrita ou pequenas mudanças de palavreado. <i>Issues</i> são ferramentas para buscar confirmação em mudanças que você gostaria de propor por meio de um <i>pull request</i>.
|
@ -1,156 +0,0 @@
|
||||

|
||||
|
||||
[](http://makeapullrequest.com)
|
||||
[](http://www.firsttimersonly.com/)
|
||||
[](https://www.codetriage.com/freecodecamp/freecodecamp)
|
||||
[](https://gitpod.io/from-referrer/)
|
||||
|
||||
## Codebase open source e currículo do freeCodeCamp.org
|
||||
|
||||
O [freeCodeCamp.org](https://www.freecodecamp.org) é uma comunidade amigável onde podes aprender a programar gratuitamente. É mantida por uma [não-lucrativa 501(c)(3) suportada por doações](https://donate.freecodecamp.org) com o objetivo de ajudar a transicionar milhões de adultos ocupados para tech. A nossa comunidade já ajudou mais que 10,000 pessoas a alcançar o seu primeiro trabalho de desenvolvedor.
|
||||
|
||||
O nosso currículo de desenvolvimento full-stack é completamente gratuito e individualizado. Temos milhares de desafios de programação interativos para ajudar a expansão das tuas competências.
|
||||
|
||||
## Tabela de Conteúdos
|
||||
|
||||
* [Certificações](#certificações)
|
||||
* [A Plataforma de Aprendizagem](#a-plataforma-de-aprendizagem)
|
||||
* [Reportar Bugs e Issues](#reportar-bugs-e-issues)
|
||||
* [Reporting Problemas de Segurança](#reportar-problemas-de-segurança)
|
||||
* [Contribuir](#contribuir)
|
||||
* [Plataforma, Build e Estado de Deployment](#platforma-build-e-estado-de-desenvolvimento)
|
||||
* [Licença](#licença)
|
||||
|
||||
|
||||
### Certificações
|
||||
|
||||
O freeCodeCamp.org oferece várias certificações de desenvolvedor gratuitas. Cada uma destas certificações envolve a construção obrigatória de 5 aplicações web, acompanhadas com centenas de desafios de programação opcionais para te ajudar a preparar para esses projetos. Estimamos que cada certificação demorará, a um programador iniciante, por volta de 300 horas a alcançar.
|
||||
|
||||
Cada um destes 30 projetos no currículo do freeCodeCamp.org tem as suas user stories ágeis e testes automáticos. Estes ajudam-te a construir o teu projeto incrementalmente e asseguram que completaste todas as user stories antes de o submeteres.
|
||||
|
||||
Consegues descarregar estas test suites através do [CDN do freeCodeCamp](https://cdn.freecodecamp.org/testable-projects-fcc/v1/bundle.js). Isto significa que podes dar build a estes projetos em websites como o CodePen e Glitch - ou até no ambiente de desenvolvimento do teu computador local.
|
||||
|
||||
Quando alcançares uma certificação, ficas com ela para sempre. Serás sempre capaz de referenciá-la desde o teu LinkedIn ou currículo. E quando os teus empregadores prospetivos ou clientes freelance clicam no link, verão uma certificação verificada específica para ti.
|
||||
|
||||
A única exceção para tal é no evento de descobrirmos violações da nossa [Política de Honestidade Académica](https://www.freecodecamp.org/academic-honesty). Quando inequivocamente apanhamos pessoas a plagiar (submetendo código ou projetos de outras pessoas como delas mesmas sem citação), fazemos o que todas as instituições de aprendizagem rigorosas deveriam fazer - retiramos-lhes as suas certificações e banimos essas pessoas.
|
||||
|
||||
Aqui estão as nossas seis certificações principais:
|
||||
|
||||
#### 1. Certificação de Web Design Responsivo
|
||||
|
||||
- [HTML e HTML5 Básico](https://learn.freecodecamp.org/responsive-web-design/basic-html-and-html5)
|
||||
- [CSS Básico](https://learn.freecodecamp.org/responsive-web-design/basic-css)
|
||||
- [Design Visual Aplicado](https://learn.freecodecamp.org/responsive-web-design/applied-visual-design)
|
||||
- [Acessibilidade Aplicada](https://learn.freecodecamp.org/responsive-web-design/applied-accessibility)
|
||||
- [Princípios de Web Design Responsivo](https://learn.freecodecamp.org/responsive-web-design/responsive-web-design-principles)
|
||||
- [CSS Flexbox](https://learn.freecodecamp.org/responsive-web-design/css-flexbox)
|
||||
- [CSS Grid](https://learn.freecodecamp.org/responsive-web-design/css-grid)
|
||||
<br />
|
||||
<br />
|
||||
**Projetos**: Página de Tributos, Formulário de Inquérito, Página Inicial de Produto, Página de Documentação Técnica, Página Web para Portfólio Pessoal
|
||||
|
||||
#### 2. Certificação de Algoritmos de JavaScript e Estruturas de Data
|
||||
|
||||
- [JavaScript Básico](https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/basic-javascript)
|
||||
- [ES6](https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/es6)
|
||||
- [Expressões Regulares](https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/regular-expressions)
|
||||
- [Debugging](https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/debugging)
|
||||
- [Estruturas de Data Básicas](https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/basic-data-structures)
|
||||
- [Scripting de Algoritmos](https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/basic-algorithm-scripting)
|
||||
- [Programação Orientada a Objetos](https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/object-oriented-programming)
|
||||
- [Programação Funcional](https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/functional-programming)
|
||||
- [Scripting de Algoritmos Intermédios](https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/intermediate-algorithm-scripting)
|
||||
<br />
|
||||
<br />
|
||||
**Projetos**: Verificador de Palindromos, Conversor de Numerais Romanos, Cifra de César, Verificador de Número de Telefone, Caixa Registadora
|
||||
|
||||
#### 3. Certificação de Bibliotecas de Front End
|
||||
|
||||
- [Bootstrap](https://learn.freecodecamp.org/front-end-libraries/bootstrap)
|
||||
- [jQuery](https://learn.freecodecamp.org/front-end-libraries/jquery)
|
||||
- [Sass](https://learn.freecodecamp.org/front-end-libraries/sass)
|
||||
- [React](https://learn.freecodecamp.org/front-end-libraries/react)
|
||||
- [Redux](https://learn.freecodecamp.org/front-end-libraries/redux)
|
||||
- [React e Redux](https://learn.freecodecamp.org/front-end-libraries/react-and-redux)
|
||||
<br />
|
||||
<br />
|
||||
**Projetos**: Máquina de Citações Aleatórias, Pré-visualizador de Markdown, Máquina de Tambores, Calculadora de JavaScript, Relógio 25 + 5
|
||||
|
||||
#### 4. Certificação de Visualização de Data
|
||||
|
||||
- [Visualização de Data com D3](https://learn.freecodecamp.org/data-visualization/data-visualization-with-d3)
|
||||
- [APIs de JSON e Ajax](https://learn.freecodecamp.org/data-visualization/json-apis-and-ajax)
|
||||
<br />
|
||||
<br />
|
||||
**Projetos**: Gráfico de Barras, Gráfico de Dispersão, Mapa de Calor, Mapa Choropleth, Diagrama Treemap
|
||||
|
||||
#### 5. Certificações de APIs e Microserviços
|
||||
|
||||
- [Gerenciar Pacotes com NPM](https://learn.freecodecamp.org/apis-and-microservices/managing-packages-with-npm)
|
||||
- [Node e Express Básico](https://learn.freecodecamp.org/apis-and-microservices/basic-node-and-express)
|
||||
- [MongoDB e Mongoose](https://learn.freecodecamp.org/apis-and-microservices/mongodb-and-mongoose)
|
||||
<br />
|
||||
<br />
|
||||
**Projetos**: Microserviço de Timestamps, Parser de Cabeçalho de Pedidos, Encolhedor de URL, Tracker de Exercício, Microserviço de Metadata de Ficheiros
|
||||
|
||||
#### 6. Certificações de Segurança de Informação e Garantia de Qualidade
|
||||
|
||||
- [Segurança de Informação com HelmetJS](https://learn.freecodecamp.org/information-security-and-quality-assurance/information-security-with-helmetjs)
|
||||
- [Garantia de Qualidade e Testes com Chai](https://learn.freecodecamp.org/information-security-and-quality-assurance/quality-assurance-and-testing-with-chai)
|
||||
- [Node e Express Avançado](https://learn.freecodecamp.org/information-security-and-quality-assurance/advanced-node-and-express)
|
||||
<br />
|
||||
<br />
|
||||
**Projetos**: Conversor Métrico-Imperial, Issue Tracker, Biblioteca Pessoal, Verificador de Preços da Bolsa, Quadro de Mensagens Anónimo
|
||||
|
||||
#### Certificação de Desenvolvimento Full Stack
|
||||
|
||||
Quando tenhas merecido todos os 6 certificados, poderás reclamar a tua freeCodeCamp.org Certificação de Desenvolvimento Full Stack. Esta última distinção significa que completaste aproximadamente 1,800 horas de código com uma larga variedade de ferramentas de desenvolvimento web.
|
||||
|
||||
#### Certificações Legacy
|
||||
|
||||
Também temos 3 certificações legacy do nosso currículo de 2015, ainda disponíveis. Todos os projetos requeridos para estas certificações legacy permanecerão disponíveis em freeCodeCamp.org.
|
||||
|
||||
- Certificação de Desenvolvimento Front End Legacy
|
||||
- Certificação de Visualização de Data Legacy
|
||||
- Certificação de Desenvolvimento Back End Legacy
|
||||
|
||||
### A Plataforma de Aprendizagem
|
||||
|
||||
Este código está a correr ao vivo em [freeCodeCamp.org](https://www.freecodecamp.org).
|
||||
|
||||
A nossa comunidade também tem:
|
||||
|
||||
- Um [fórum](https://forum.freecodecamp.org) onde consegues, usualmente, encontrar ajuda de programação ou feedback de projeto dentro de horas.
|
||||
- Um [canal de YouTube](https://youtube.com/freecodecamp) com cursos gratuitos de Python, SQL, Android, e uma larga variedade de outras tecnologias.
|
||||
- Um [podcast](https://podcast.freecodecamp.org/) com conhecimentos tecnológicos e histórias inspiradoras de desenvolvedores.
|
||||
- Um [guia compreensivo para centenas de tópicos de programação](https://guide.freecodecamp.org/)
|
||||
- Uma publicação [Developer News](https://www.freecodecamp.org/news), um local grátis, open source, sem anúncios para dar cross-post aos teus artigos de blog.
|
||||
|
||||
> ### [Junta-te à nossa comunidade aqui](https://www.freecodecamp.org/signin).
|
||||
|
||||
### Reportar Bugs e Issues
|
||||
|
||||
Se pensas que encontraste um bug, primeiro lê o artigo [como reportar um bug](https://forum.freecodecamp.org/t/how-to-report-a-bug/19543) e segue as suas instruções.
|
||||
|
||||
Se estás confiante que é um novo bug, e confirmaste que outra pessoa se está a deparar com o mesmo problema, segue em frente e cria um novo issue do GitHub. Assegura que incluis o máximo de informação possível para que consigamos replicar o erro.
|
||||
|
||||
### Reportar Problemas de Segurança
|
||||
|
||||
Se acreditas que encontraste uma vulnerabilidade, por favor reporta-a responsavelmente. Não cries issues do GitHub para problemas de segurança. Em vez disso, por favor envia um email para `security@freecodecamp.org` e olharemos para ela imediatamente.
|
||||
|
||||
### Contribuir
|
||||
|
||||
> ### [Por favor, segue estes passos para contribuir.](CONTRIBUTING.md)
|
||||
|
||||
### Plataforma, Build e Estado de Deployment
|
||||
|
||||
O estado geral da plataforma para todas as nossas aplicações está disponível em [`status.freecodecamp.org`](https://status.freecodecamp.org). A build e estado de deployment para o código está disponível no [nosso Guia DevOps](/docs/devops.md).
|
||||
|
||||
### Licença
|
||||
|
||||
Copyright © 2019 freeCodeCamp.org
|
||||
|
||||
O conteúdo deste repositório é vinculado pelas seguintes licenças:
|
||||
|
||||
- O software de computador está licenciado sob a licença [BSD-3-Clause](LICENSE.md).
|
||||
- As ferramentas de aprendizagem no diretório [`/curriculum`](/curriculum), incluíndo os seus subdiretórios, estão licenciados sob a licença [CC-BY-SA-4.0](/curriculum/LICENSE.md).
|
@ -1,105 +0,0 @@
|
||||
<!-- do not translate this -->
|
||||
| [Read these guidelines in other languages](/docs/i18n-languages) |
|
||||
|-|
|
||||
<!-- do not translate this -->
|
||||
|
||||
# Como obter localmente os emails enviados (para fluxos de emails)
|
||||
|
||||
> **Nota:** Este passo é **opcional** - Obrigatório apenas quando estiver trabalhando com fluxos de emails
|
||||
|
||||
## Introdução
|
||||
|
||||
Alguns do fluxos de email, como a atualização do email de um usuário, necessitam de uma api e/ou um servidor back-end para enviar os emails. No ambiente de desenvolvimento, você pode usar uma ferramenta para obtê-los localmente, em vez de ter que usar um provedor de email e realmente enviar o email. MailHog é uma dessas ferramentas para desenvolvedores fazerem testes com emails, que irá obter os emails que sua instância local do freeCodeCamp mandar.
|
||||
|
||||
## Instalando MailHog
|
||||
|
||||
Como instalar e rodar MailHog, de acordo com seu sistema operacional:
|
||||
|
||||
- [Instalando MailHog no macOS](#instalando-mailhog-no-macos)
|
||||
- [Instalando MailHog no Windows](#instalando-mailhog-no-windows)
|
||||
- [Instalando MailHog no Linux](#instalando-mailhog-no-linux)
|
||||
|
||||
### Instalando MailHog no macOS
|
||||
|
||||
Instalação e configuração do MailHog no macOS utilizando [Homebrew](https://brew.sh/):
|
||||
|
||||
```bash
|
||||
brew install mailhog
|
||||
brew services start mailhog
|
||||
```
|
||||
|
||||
Este comando vai iniciar o serviço MailHog em background.
|
||||
|
||||
Em seguida, você pode pular para a seção [usando MailHog](#usando-o-mailhog).
|
||||
|
||||
### Instalando MailHog no Windows
|
||||
|
||||
Faça o download da última versão no [Repositório oficial do MailHog](https://github.com/mailhog/MailHog/releases).
|
||||
Clique no link para sua versão de windows (32 ou 64 bits) e o arquivo executável (.exe) será baixado no seu computador.
|
||||
|
||||
Quando o download finalizar, clique no arquivo. Você provavelmente vai receber uma notificação no firewall do Windows onde você deve permitir o acesso para MailHog. Assim que o fizer, o prompt de comando do Windows irá aparecer com o MailHog rodando.
|
||||
|
||||
Para fechar o MailHog basta fechar o prompt de comando. Para rodar de novo é só clicar no mesmo arquivo executável baixado anteriormente. Não é necessário fazer o download novamente.
|
||||
|
||||
A seguir, você pode pular para a seção [usando MailHog](#usando-o-mailhog).
|
||||
|
||||
### Instalando MailHog no Linux
|
||||
|
||||
Primeiro, instale o [Go](https://golang.org).
|
||||
|
||||
Para sistemas baseados em Debian, como Ubuntu e Linux Mint, rode no terminal:
|
||||
|
||||
```bash
|
||||
sudo apt-get install golang
|
||||
```
|
||||
|
||||
Para CentOS, Fedora, Red Hat Linux e outros sistemas baseados em sistemas RPM, rode no terminal:
|
||||
|
||||
```bash
|
||||
sudo dnf install golang
|
||||
```
|
||||
|
||||
Ou:
|
||||
|
||||
```bash
|
||||
sudo yum install golang
|
||||
```
|
||||
|
||||
Configure o path para Go:
|
||||
|
||||
```bash
|
||||
echo "export GOPATH=$HOME/go" >> ~/.profile
|
||||
echo 'export PATH=$PATH:/usr/local/go/bin:$GOPATH/bin' >> ~/.profile
|
||||
source ~/.profile
|
||||
```
|
||||
|
||||
Em seguida, instale e inicie o MailHog:
|
||||
|
||||
```bash
|
||||
go get github.com/mailhog/MailHog
|
||||
sudo cp /home/$(whoami)/go/bin/MailHog /usr/local/bin/mailhog
|
||||
mailhog
|
||||
```
|
||||
|
||||
A seguir, você pode pular para a seção [usando MailHog](#usando-o-mailhog).
|
||||
|
||||
## Usando o MailHog
|
||||
|
||||
Uma vez que você instalou o MailHog e iniciou o serviço, você precisa abrir seu inbox MailHog no browser. Abra uma nova aba ou janela e entre em [http://localhost:8025](http://localhost:8025).
|
||||
Você deve ver agora algo semelhante com a tela abaixo:
|
||||
|
||||

|
||||
|
||||
Quando sua instalação do freeCodeCamp enviar um email ela aparecerá aqui, como mostra a imagem a seguir:
|
||||
|
||||

|
||||
|
||||
Abra o email, onde haverão duas abas: texto simples (Plain text) e fonte (Source). Assegure que você está na aba de texto simples.
|
||||
|
||||

|
||||
|
||||
Qualquer link no email deve ser clicável.
|
||||
|
||||
## Links úteis
|
||||
|
||||
- Para quaisquer dúvidas relacionadas ao MailHog, suas instruções e configurações customizadas, verifique o repositório do [MailHog](https://github.com/mailhog/MailHog).
|
@ -1,474 +0,0 @@
|
||||
<!-- do not translate this -->
|
||||
| [Read these guidelines in other languages](/docs/i18n-languages) |
|
||||
|-|
|
||||
<!-- do not translate this -->
|
||||
|
||||
# Configurando freeCodeCamp localmente
|
||||
|
||||
Siga estas instruções para configurar freeCodeCamp localmente em seu sistema. Isso é altamente recomendado se você quer contribuir regularmente.
|
||||
|
||||
Alguns _workflows_ de contribuição como pré-visualização de páginas para o Guia ou Desafios de Código, _debugging_ e correção de _bugs_ no código requerem que você rode freeCodeCamp localmente.
|
||||
|
||||
## Dê _Fork_ no repositório do GitHub
|
||||
|
||||
['Dar _fork_'](https://help.github.com/articles/about-forks/) é obter sua própria cópia do repositório principal do _freeCodeCamp_ (a.k.a _repo_) no GitHub.
|
||||
|
||||
Isso é essencial, pois assim você pode trabalhar com sua cópia do freeCodeCamp no GitHub, ou baixá-la para trabalhar localmente. Depois, você poderá requisitar que suas mudanças sejam enviadas para o repositório principal via _pull request_.
|
||||
|
||||
> **Dica:**
|
||||
> O repositório principal em `https://github.com/freeCodeCamp/freeCodeCamp` é comumente chamado de repositório `upstream`.
|
||||
> Seu fork em `https://github.com/SEU_USUARIO/freeCodeCamp` é comumente chamado de repositório `origin`.
|
||||
|
||||
**Siga estes passos para dar _fork_ no repositório `https://github.com/freeCodeCamp/freeCodeCamp`:**
|
||||
|
||||
1. Vá para o repositório do freeCodeCamp no GitHub: <https://github.com/freeCodeCamp/freeCodeCamp>
|
||||
2. Clique no botão "Fork" no canto superior direito da tela ([Mais detalhes aqui](https://help.github.com/articles/fork-a-repo/))
|
||||
3. Depois do _fork_ do repositório, você será levado à sua cópia do freeCodeCamp em `https://github.com/SEU_USUARIO/freeCodeCamp`
|
||||
|
||||

|
||||
|
||||
## Preparando o ambiente de desenvolvimento
|
||||
|
||||
Uma vez que os pré-requisitos estão instaladas, você precisa preparar seu ambiente de desenvolvimento. Isso é comum para muitos _workflows_ de desenvolvimento, e você precisará fazer isso uma única vez.
|
||||
|
||||
**Siga estes passos para preparar seu ambiente de desenvolvimento:**
|
||||
|
||||
1. Instale o [Git](https://git-scm.com/) ou seu _client_ de Git favorito, se você ainda não o possui. Atualize para a versão mais recente, já que a versão que veio em seu OS pode estar desatualizada.
|
||||
|
||||
2. (Opcional, mas recomendado) [Configure sua chave SSH](https://help.github.com/articles/generating-an-ssh-key/) para o GitHub.
|
||||
|
||||
3. Instale um editor de código da sua escolha.
|
||||
|
||||
Nós recomendamos fortemente usar o [VS Code](https://code.visualstudio.com/) ou o [Atom](https://atom.io/). Este são ótimos editores: grátis e _open source_.
|
||||
|
||||
4. Configure o _linting_ em seu editor de código.
|
||||
|
||||
Você deve ter o [ESLint rodando no seu editor](http://eslint.org/docs/user-guide/integrations.html), e isso irá destacar qualquer elemento que não segue o [Guia de Estilo para JavaScript do freeCodeCamp](http://forum.freecodecamp.org/t/free-code-camp-javascript-style-guide/19121).
|
||||
|
||||
> Por favor não ignore nenhum erro de _linting_. Eles existem para te **ajudar** e garantir um código simples e limpo.
|
||||
|
||||
## Dê _clone_ na sua cópia do freeCodeCamp
|
||||
|
||||
['Clonar'](https://help.github.com/articles/cloning-a-repository/) é **baixar** uma cópia de um repositório que pertence à você ou à outra pessoa, de um local remoto ou `remote` _location_. No seu caso, este local remoto é o seu `fork` repositório do freeCodeCamp, que deve estar disponível em `https://github.com/SEU_USUARIO/freeCodeCamp`.
|
||||
|
||||
Rode os seguintes comandos em sua máquina:
|
||||
|
||||
1. Abra o Terminal / Prompt de Comando / Bash Shell em seu diretório de projetos
|
||||
|
||||
_Por exemplo: `/seudiretoriodeprojetos/`_
|
||||
|
||||
2. _Clone_ seu _fork_ do freeCodeCamp, substituindo `SEU_USUARIO` pelo seu nome de usuário do GitHub
|
||||
|
||||
```shell
|
||||
git clone https://github.com/SEU_USUARIO/freeCodeCamp.git
|
||||
```
|
||||
|
||||
Isso irá baixar o repositório do freeCodeCamp integralmente em seu diretório de projetos.
|
||||
|
||||
## Configure um `upstream` para o repositório principal
|
||||
|
||||
Agora que você já baixou uma cópia do seu _fork_, você precisará configurar um `upstream`.
|
||||
|
||||
Como foi mencionado anteriormente, o repositório principal `https://github.com/freeCodeCamp/freeCodeCamp` é comumente chamado de repositório `upstream`. Seu _fork_ em `https://github.com/SEU_USUARIO/freeCodeCamp` é comument chamado de repositório `origin`.
|
||||
|
||||
Você precisa apontar sua cópia local para o `upstream` alem de apontar para `origin`. Isso acontece para que você possa sincronizar com mudanças do repositório principal. Dessa forma, você não precisa pelo processo de _fork_ e _clone_ várias vezes.
|
||||
|
||||
1. Mude de diretório para o diretório do freeCodeCamp:
|
||||
|
||||
```shell
|
||||
cd freeCodeCamp
|
||||
```
|
||||
|
||||
2. Adicione o repositório principal do freeCodeCamp como um local remoto ou _remote_:
|
||||
|
||||
```shell
|
||||
git remote add upstream https://github.com/freeCodeCamp/freeCodeCamp.git
|
||||
```
|
||||
|
||||
3. Verifique se a configuração está correta:
|
||||
|
||||
```shell
|
||||
git remote -v
|
||||
```
|
||||
|
||||
A saída deve ser algo parecido com:
|
||||
|
||||
```shell
|
||||
origin https://github.com/SEU_USUARIO/freeCodeCamp.git (fetch)
|
||||
origin https://github.com/SEU_USUARIO/freeCodeCamp.git (push)
|
||||
upstream https://github.com/freeCodeCamp/freeCodeCamp.git (fetch)
|
||||
upstream https://github.com/freeCodeCamp/freeCodeCamp.git (push)
|
||||
```
|
||||
|
||||
## Rodando o freeCodeCamp localmente em sua máquina
|
||||
|
||||
Agora que você tem uma cópia local do freeCodeCamp, você pode seguir essas instruções para fazê-la rodar localmente. Isso irá te ajudar a:
|
||||
|
||||
- Pré-visualizar páginas da forma que aparecerão na plataforma.
|
||||
- Trabalhar com problemas relacionados à UI e melhorias.
|
||||
- _Debuggar_ e corrigir problemas nos _application servers_ e _client apps_.
|
||||
|
||||
Você pode pular a parte de rodar o freeCodeCamp localmente se você está apenas editando arquivo, fazendo `rebase` ou resolvendo conflitos de `merge`. Você pode sempre retornar à essa parte das instruções.
|
||||
|
||||
[Pular Rodando o freeCodeCamp localmente em sua máquina](#making-changes-to-your-clone-of-freecodecamp-locally)
|
||||
|
||||
### Instalando os pré-requisitos
|
||||
|
||||
Comece instalando esses _softwares_.
|
||||
|
||||
| Pré-requisito | Versão | Comentários |
|
||||
| --------------------------------------------------------------------------------------------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
||||
| [MongoDB Community Server](https://docs.mongodb.com/manual/administration/install-community/) | `3.6` | [Notas de atualização](https://docs.mongodb.com/manual/release-notes/), Obs: Estamos atualmente na versão `3.6`, uma [nova atualização está planejada](https://github.com/freeCodeCamp/freeCodeCamp/issues/18275). |
|
||||
| [Node.js](http://nodejs.org) | `8.x` | [LTS Schedule](https://github.com/nodejs/Release#release-schedule) |
|
||||
| npm (vem junto com o Node) | `6.x` | Não possui uma versão LTS, usamos a versão que vêm com o Node LTS |
|
||||
|
||||
**Importante:**
|
||||
|
||||
Recomendamos fortemente atualizar para as versões estáveis mais recentes, ou seja, as versões _LTS_ mencionadas acima. (_LTS_ significa _Long Term Service_ ou _Suporte à longo prazo_)
|
||||
Se o Node.js or MongoDB já estiverem instaladas em sua máquina, rode os seguintes comando para verificar as versões:
|
||||
|
||||
```shell
|
||||
node -v
|
||||
mongo --version
|
||||
npm -v
|
||||
```
|
||||
|
||||
> Se você possui uma versão diferente, por favor instale as versões recomendadas. Só poderemos ajudar com problemas de instalações das versões recomendadas.
|
||||
|
||||
**Estou tendo problemas instalando os pré-requisitos recomendados. O que eu devo fazer?**
|
||||
|
||||
Normalmente, desenvolvemos utilizando sistemas operacionais mais populares e atualizados como o macOS 10.12 ou posterior, Ubuntu 16.04 ou posterior e Windows 10. É recomendado que você verifique seu problema específico em fontes como: Google, Stack Overflow ou Stack Exchange. Há chances de que haja alguém que já enfrentou o mesmo problema que o seu e que exista uma resposta pronta para o que você precisa.
|
||||
|
||||
Se você usa um sistema operacional diferente e/ou ainda está com problemas, vá para a [_contributors community_ no nosso fórum público](https://www.freeCodeCamp.org/c/contributors) ou o [Chat de Contribuidores](https://gitter.im/freeCodeCamp/Contributors). Podemos te ajudar a solucionar seu problema.
|
||||
|
||||
Não podemos prover suporte no GitHub, pois problemas de instalação de _software_ estão além do escopo deste projeto.
|
||||
|
||||
### Instalando dependências
|
||||
|
||||
Comece instalando as dependência necessárias para que a aplicação rode.
|
||||
|
||||
```shell
|
||||
# Instala dependências NPM
|
||||
npm install
|
||||
```
|
||||
|
||||
Depois você precisará adicionar as variáveis de ambiente privadas (_API Keys_)
|
||||
|
||||
```shell
|
||||
# Crie uma cópia de "sample.env" e chame-a de ".env".
|
||||
# Preencha-a com as API Keys e outras senhas necessárias:
|
||||
|
||||
# macOS / Linux
|
||||
cp sample.env .env
|
||||
|
||||
# Windows
|
||||
copy sample.env .env
|
||||
```
|
||||
|
||||
As chaves não precisam ser alteradas para rodar a aplicação localmente. Você pode deixar os valores padrão de `sample.env` como estão.
|
||||
|
||||
`MONGOHQ_URL` é a mais importante. A não ser que você tenha o MongoDB rodando em uma configuração diferente da padrão, a URL em `sample.env` deve funcionar normalmente.
|
||||
|
||||
Você pode deixar as outras chaves como estão. Tenha em mente que se você quiser usar mais serviços, você precisará obter suas próprias chaves e editá-las no arquivo `.env`.
|
||||
|
||||
Agora vamos "linkar" vários serviços como o _api-server_, o _client UI application_, etc. Você [aprender mais sobre esses serviços neste guia](#).
|
||||
|
||||
Esses serviços são semi-independentes. Significa que, em produção, o _deploy_ é feito em locais diferentes, mas estão todos disponíveis para você quando o projeto está sendo rodado localmente.
|
||||
|
||||
> Nota do Tradutor: neste trecho, é utilizado o termo _bootstrap_. Este termo foi substituído por _linkar_, já que não achei uma forma melhor para o termo.
|
||||
|
||||
```shell
|
||||
# Bootstrap ou linkar todos os projetos deste repositório
|
||||
npm run bootstrap
|
||||
```
|
||||
|
||||
### Inicie o MongoDB
|
||||
|
||||
Você precisará iniciar o MongoDB, antes que a aplicação possa rodar:
|
||||
|
||||
Inicie o servidor do MongoDB em um terminal separado:
|
||||
|
||||
- Em macOS & Ubuntu:
|
||||
|
||||
```shell
|
||||
mongod
|
||||
```
|
||||
|
||||
- No Windows, você precisa especificar o caminho completo para o binário `mongod`
|
||||
|
||||
Certifique-se de trocar `3.6` pela versão que você tem instalada.
|
||||
|
||||
```shell
|
||||
"C:\Program Files\MongoDB\Server\3.6\bin\mongod"
|
||||
```
|
||||
|
||||
> Dica:
|
||||
> Você pode evitar de ter que iniciar o MongoDB toda hora instalando-o como um _background service_.
|
||||
> Você pode [aprender mais sobre isso na documentação sobre seu respectivo sistema operacional](https://docs.mongodb.com/manual/administration/install-community/)
|
||||
|
||||
### _Seed_: popule o banco de dados
|
||||
|
||||
Agora, vamos popular o banco de dados. Neste passo, vamos rodar o comando abaixo que
|
||||
irá preencher o servidor MongoDB com alguns _data-sets_ iniciais que são necessários para outros serviços. Isso inclui alguns _schemas_, dentre outras coisas.
|
||||
|
||||
> Nota do Tradutor: nesta seção, é utilizado o termo _seed_. Quando se trata de banco de dados, _seed_ ou semente é um conjunto de configurações iniciais criadas para popular o banco de dados. Isso pode incluir entidades, relacionamentos e um conjunto de dados inicial. Então, o verbo _to seed_ foi substituído por "popular o banco de dados".
|
||||
|
||||
```shell
|
||||
npm run seed
|
||||
```
|
||||
|
||||
### Inicie o _freeCodeCamp client application_ e a _API server_
|
||||
|
||||
Agora você pode iniciar o servidor da API e a aplicação cliente.
|
||||
|
||||
```shell
|
||||
npm run develop
|
||||
```
|
||||
|
||||
Este único comando irá iniciar todos os serviços, incluindo a API e o cliente disponíveis para você trabalhar.
|
||||
|
||||
Agora abra um _browser_ e visite <http://localhost:8000>. Se a aplicação carregar, parabéns! – _you're all set_.
|
||||
|
||||
> Dica:
|
||||
>
|
||||
> O servidor da API é aberto na porta 3000 em `http://localhost:3000`
|
||||
> A aplicação Gatsby é aberta na porta 8000 em `http://localhost:8000`
|
||||
|
||||
O que significa que, se você visitar <http://localhost:3000/explorer> você deveria ver quais APIs temos.
|
||||
|
||||
Parabéns 🎉! Agora você tem uma cópia da plataforma de aprendizado do freeCodeCamp completinha e rodando na sua máquina local.
|
||||
|
||||
## Breve referência de comandos para trabalhar localmente
|
||||
|
||||
[Aqui está uma breve referência](/docs/README.md) de uma lista de comandos que você pode precisar quando estiver rodando localmente:
|
||||
|
||||
## Fazer alterações locais ao seu clone de freeCodeCamp
|
||||
|
||||
> Nota do Tradutor: esta seção utiliza vários termos relacionados ao Git em geral, que não foram traduzidos. Por exemplo: _master, origin, branch, fork, rebase, upstream_.
|
||||
|
||||
Assim, você pode alterar arquivos e "commitar" suas mudanças.
|
||||
|
||||
Siga estes passos:
|
||||
|
||||
1. Verifique se você está na _branch_ `master`
|
||||
|
||||
```shell
|
||||
git status
|
||||
```
|
||||
|
||||
Você deve ter uma saída da forma:
|
||||
|
||||
```shell
|
||||
On branch master
|
||||
Your branch is up-to-date with 'origin/master'.
|
||||
|
||||
nothing to commit, working directory clean
|
||||
```
|
||||
|
||||
Se vocẽ não está na `master` ou se seu diretório não está limpo, ou seja, se há alterações em seu diretório, resolva as mudanças de arquivo/_commits_ e dê _checkout_ para a _branch_ `master`:
|
||||
|
||||
```shell
|
||||
git checkout master
|
||||
```
|
||||
|
||||
2. Depois, você deve dar `rebase` da `upstream`.
|
||||
|
||||
Este passo **irá sincronizar as últimas alterações** do repositório principal do freeCodeCamp. É importante que você dê _rebase_ frequetemente, para evitar conflitos posteriores.
|
||||
|
||||
```shell
|
||||
git pull --rebase upstream master
|
||||
```
|
||||
|
||||
Opcionalmente, você pode dar _push_ na _branch_ de volta à _origin_, para que você um histórica limpo em seu _fork_ no GitHub.
|
||||
|
||||
```shell
|
||||
git push origin master --force
|
||||
```
|
||||
|
||||
3. Agora, você deve criar uma nova _branch_
|
||||
|
||||
Trabalhar em _branches_ separadas para cada _issue_ te ajuda a manter sua cópia local limpa. Você nunca deve trabalhar na `master`. Isso pode causar conflitos na sua cópia do freeCodeCamp e talvez seja necessário iniciar tudo novamente, criando um novo _clone_ ou _fork_.
|
||||
|
||||
Verifique se está na `master` como explicado anteriormente e crie uma nova _branch_ a partir dali:
|
||||
|
||||
```shell
|
||||
git checkout -b fix/update-guide-for-xyz
|
||||
```
|
||||
|
||||
O nome da sua _branch_ deve começar com `fix/`, `feat/`, etc. Evite usar números de _issue_ em _branches_. Os nomes de _branches_ devem ser curtos, significativos e únicos.
|
||||
|
||||
Alguns bons nomes de _branch_ são:
|
||||
|
||||
```md
|
||||
fix/update-challenges-for-react
|
||||
fix/update-guide-for-html-css
|
||||
fix/platform-bug-sign-in-issues
|
||||
feat/add-guide-article-for-javascript
|
||||
translate/add-spanish-basic-html
|
||||
```
|
||||
|
||||
4. Agora, você pode trabalhar editando páginas e código no seu editor de texto favorito.
|
||||
|
||||
5. Uma vez que você está feliz com suas alterações, você deve (opcionalmente) rodar o freeCodeCamp localmente para verificar suas mudanças.
|
||||
|
||||
6. Certifique-se de corrigir quaisquer erros, e verifique a formatação de suas mudanças. Nós temos um _style guide_ para os Guias e Desafios de Código.
|
||||
|
||||
7. Agora, verifique e confirme os arquivos que você quer atualizar
|
||||
|
||||
```shell
|
||||
git status
|
||||
```
|
||||
|
||||
Este comando deve mostrar uma lista arquivos `unstaged` que você editou.
|
||||
|
||||
```shell
|
||||
On branch feat/documentation
|
||||
Your branch is up to date with 'upstream/feat/documentation'.
|
||||
|
||||
Changes not staged for commit:
|
||||
(use "git add/rm <file>..." to update what will be committed)
|
||||
(use "git checkout -- <file>..." to discard changes in working directory)
|
||||
|
||||
modified: CONTRIBUTING.md
|
||||
modified: docs/README.md
|
||||
modified: docs/how-to-setup-freecodecamp-locally.md
|
||||
modified: docs/how-to-work-on-guide-articles.md
|
||||
...
|
||||
```
|
||||
|
||||
8. Adicione suas mudanças à _staging area_ e faça um _commit_.
|
||||
|
||||
Este passo deve mostrar apenas os arquivos que você alterou ou adicionou. Você pode dar um _reset_, e retornar ao estado original arquivos que você não pretendia alterar.
|
||||
|
||||
```shell
|
||||
git add path/to/my/changed/file.ext
|
||||
```
|
||||
|
||||
Ou, alternativamente, você pode adicionar todos os arquivos `unstaged` para a _staging area_
|
||||
|
||||
```shell
|
||||
git add .
|
||||
```
|
||||
|
||||
Apenas os arquivos que foram movidos para a _staging area_ serão adicionados quando você fizer um _commit_.
|
||||
|
||||
```shell
|
||||
git status
|
||||
```
|
||||
|
||||
Saída:
|
||||
|
||||
```shell
|
||||
On branch feat/documentation
|
||||
Your branch is up to date with 'upstream/feat/documentation'.
|
||||
|
||||
Changes to be committed:
|
||||
(use "git reset HEAD <file>..." to unstage)
|
||||
|
||||
modified: CONTRIBUTING.md
|
||||
modified: docs/README.md
|
||||
modified: docs/how-to-setup-freecodecamp-locally.md
|
||||
modified: docs/how-to-work-on-guide-articles.md
|
||||
```
|
||||
|
||||
Agora você pode _commitar_ suas mudanças com uma mensagem curta, como:
|
||||
|
||||
```shell
|
||||
git commit -m "fix: my short commit message"
|
||||
```
|
||||
|
||||
Alguns exemplos:
|
||||
|
||||
```md
|
||||
fix: update guide article for Java - for loop
|
||||
feat: add guide article for alexa skills
|
||||
```
|
||||
|
||||
Opcional:
|
||||
|
||||
Nós recomendamos fortemente que faça uma mensagem de commit convencional. Isso é uma boa prático que você pode observar em alguns repositórios _Open Source_ mais populares. Como desenvolvedor, isso te encoraja a seguir algumas práticas padrão.
|
||||
|
||||
Alguns exemplos de mensagens de _commit_ convencionais:
|
||||
|
||||
```md
|
||||
fix: update HTML guide article
|
||||
fix: update build scripts for Travis-CI
|
||||
feat: add article for JavaScript hoisting
|
||||
docs: update contributing guidelines
|
||||
```
|
||||
|
||||
Mantenha as mensagens curtas, não mais do que 50 caractéres. Você pode sempre adicionar informações na descrição da mensagem de _commit_.
|
||||
|
||||
Isso não toma nenhum tempo adicional comparado à mensagens não convencionais como 'update file' or 'add index.md'
|
||||
|
||||
Você pode aprender mais sobre [aqui](https://www.conventionalcommits.org/en/v1.0.0-beta.2/#why-use-conventional-commits).
|
||||
|
||||
9. Se você perceber que precisa editar um arquivo ou atualizar a mensagem do _commit_ depois de ter feito o _commit_, você pode fazer isso com o comando:
|
||||
|
||||
```shell
|
||||
git commit --amend
|
||||
```
|
||||
|
||||
Este comando irá abrir o editor de texto padrão como `nano` ou `vi` onde você pode editar o título mensagem de _commit_ e adicionar/editar a descrição.
|
||||
|
||||
10. Agora você pode dar _push_ nas suas alterações para o seu repositório _fork_.
|
||||
|
||||
```shell
|
||||
git push origin branch/name-here
|
||||
```
|
||||
|
||||
## Fazendo um _Pull Request_ (PR)
|
||||
|
||||
1. Uma vez que suas alterações foram enviadas, uma notificação aparecerá na página do seu repositório _fork_ para criar uma _pull request_.
|
||||
|
||||

|
||||
|
||||
2. Por padrão, todas as _pull requests_ devem se referir ao repositório principal do freeCodeCamp, `master` branch.
|
||||
|
||||
Ceritifique-se que o _Base Fork_ está apontando para freeCodeCamp/freeCodeCamp ao crair uma _Pull Request_.\*\*
|
||||
|
||||

|
||||
|
||||
3. Envie a _pull request_ da sua _branch_ para a _branch_ `master` do freeCodeCamp.
|
||||
|
||||
4. No corpo do seu PR inclua um sumário detalhando quais mudanças você fez e por que.
|
||||
|
||||
- Será apresentado a você um _template_ de _pull request_. É um checklist de coisas que você deveria ter feito antes de abrir um _pull request_.
|
||||
|
||||
- Preencha com detalhes como lhe convir. Essa informação será revisada e então será decidido se seu _pull request_ será aceito ou não.
|
||||
|
||||
- Se o PR foi criado para corrigir um problema ou _bug_ existente então, ao fim da descrição da _pull request_, adicione a _keyword_ `closes` e #xxxx (onde xxxx
|
||||
é o número da _issue_). Exemplo: `closes #1337`. Isso informa ao GitHub para fechar automaticamente a _issue_ existente, se o PR for _accepted and merged_.
|
||||
|
||||
5. Indique se você testou numa cópia local do site ou não.
|
||||
|
||||
Isso é muito importante quando você está fazendo alterações que não são copiar/editar arquivos Markdown. Por exemplo, mudanças de CSS ou código JavaScript, etc.
|
||||
|
||||
## Tenha seu PR aceito
|
||||
|
||||
## Obtendo ajuda
|
||||
|
||||
Se você está com dificuldades e precisa de ajuda, deixa-nos saber ao perguntar na [categoria 'Contributors' em nosso fórum](https://forum.freecodecamp.org/c/contributors) ou o [Chat de Contribuidores](https://gitter.im/FreeCodeCamp/Contributors) no Gitter.
|
||||
|
||||
Deve haver um erro no console do seu _browser_ ou no Bash / Terminal / Linha de Comando que pode ajudar a identificar o problema.
|
||||
|
||||
### _Troubleshooting_: solucionando problemas
|
||||
|
||||
Se sua aplicação roda, mas você está encontrando problemas com a interface em si, por exemplo, se as fontes não estão carregando ou se o editor de código não está aparecendo apropriadamente, você pode tentar os seguintes passos ao menos uma vez:
|
||||
|
||||
```shell
|
||||
# Remove todos os node modules instalados
|
||||
rm -rf node_modules ./**/node_modules
|
||||
|
||||
# Reinstala os pacotes NPM
|
||||
npm install
|
||||
|
||||
# Bootstrap, "linka" todos os projetos
|
||||
npm run bootstrap
|
||||
|
||||
# Seed, popula o banco de dados
|
||||
npm run seed
|
||||
|
||||
# Reinicia a aplicação
|
||||
npm run develop
|
||||
```
|
@ -1,99 +0,0 @@
|
||||
<!-- do not translate this -->
|
||||
| [Read these guidelines in other languages](/docs/i18n-languages) |
|
||||
|-|
|
||||
<!-- do not translate this -->
|
||||
|
||||
# Como trabalhar nos desafios de código
|
||||
|
||||
### Fazendo mudanças no GitHub
|
||||
|
||||
Cada desafio está guardado em seu próprio arquivo markdown. Isso torna fácil editar os desafios diretamente de dentro do GitHub.
|
||||
|
||||
Você pode fazer mudanças sem ter nada rodando em seu sistema local.
|
||||
|
||||
Depois que encontrar o arquivo que deseja modificar pela interface do GitHub, clique no ícone de lápis para começar a editar. Isto ira criar um fork do projeto automaticamente, se você já não tem um.
|
||||
|
||||
Você também pode clonar o projeto e editar localmente no seu computador. Para ajuda com isso, leia o artigo [Orientações de Contribuição](/docs/i18n-languages/portuguese/CONTRIBUTING.md).
|
||||
|
||||
### Modelo de Desafio
|
||||
|
||||
Aqui um modelo de como é um arquivo markdown do desafio.
|
||||
|
||||
|
||||
````md
|
||||
---
|
||||
id: Unique identifier (alphanumerical, MongoDB _id)
|
||||
title: Challenge Title
|
||||
challengeType: 0
|
||||
guideUrl: 'url of guide article'
|
||||
videoUrl: 'url of video explaination'
|
||||
---
|
||||
|
||||
## Description
|
||||
<section id='description'>
|
||||
A Description of the challenge and what is required to pass
|
||||
</section>
|
||||
|
||||
## Instructions
|
||||
<section id='instructions'>
|
||||
Instructions about what exactly needs to be done.
|
||||
</section>
|
||||
## Tests
|
||||
<section id='tests'>
|
||||
|
||||
``` yml
|
||||
- text: Should return "foo".
|
||||
testString: 'A stringified function using Chai asserts'
|
||||
```
|
||||
|
||||
</section>
|
||||
|
||||
<div id='js-seed'>
|
||||
|
||||
```js
|
||||
Code desplayed in the editor by default.
|
||||
```
|
||||
|
||||
</div>
|
||||
|
||||
### Before Test
|
||||
<div id='js-setup'>
|
||||
|
||||
```js
|
||||
Test setup code.
|
||||
```
|
||||
|
||||
</div>
|
||||
|
||||
</section>
|
||||
|
||||
### After Test
|
||||
<div id='js-teardown'>
|
||||
|
||||
```js
|
||||
Test tear down code.
|
||||
```
|
||||
|
||||
</div>
|
||||
|
||||
</section>
|
||||
|
||||
## Solution
|
||||
<section id='solution'>
|
||||
|
||||
```js
|
||||
Challenge solution code.
|
||||
```
|
||||
|
||||
</section>
|
||||
````
|
||||
|
||||
### Links Úteis
|
||||
|
||||
Criando e Editando Desafios:
|
||||
|
||||
1. [Guia de Estilo dos Desafios](/docs/style-guide-for-curriculum-challenges.md) - como criar e formatar desafios.
|
||||
|
||||
2. [Tipos de Desafio](https://github.com/freeCodeCamp/freeCodeCamp/blob/master/client/utils/challengeTypes.js#L1-L13) - o que o número do tipo de desafio significa (enum).
|
||||
|
||||
3. [Contributing to FreeCodeCamp - Writing ES6 Challenge Tests](https://www.youtube.com/watch?v=iOdD84OSfAE#t=2h49m55s) - um vídeo acompanhando [Ethan Arrowood](https://twitter.com/ArrowoodTech) enquanto ele contribui com uma versão antiga do currículo.
|
@ -1,135 +0,0 @@
|
||||
<!-- do not translate this -->
|
||||
| [Read these guidelines in other languages](/docs/i18n-languages) |
|
||||
|-|
|
||||
<!-- do not translate this -->
|
||||
|
||||
# Reguli privind contribuțiile
|
||||
|
||||
Salut 👋!
|
||||
|
||||
freeCodeCamp.org este posibil datorită miilor de voluntari binevoitori ca tine . Suntem recunoscători pentru contribuțiile voastre și suntem încântați să vă întâmpinăm la bord.
|
||||
|
||||
Aplicăm cu strictețe ["Codul nostru de conduită"](https://www.freecodecamp.org/code-of-conduct). Ia-ți un moment să îl citești. Sunt doar 196 de cuvinte de citit.
|
||||
|
||||
Iți urăm contribuție plăcută 🎉!
|
||||
|
||||
## Aici sunt câteva moduri plăcute în care ne poți ajuta
|
||||
|
||||
Poți alege să contribuiești în orice arie/domeniu care te interesează:
|
||||
|
||||
1. [Contribuiește la codul open source al aceastei pagine.](#contribute-to-this-open-source-codebase). Ajutâ la editarea [articolelor de orientare](https://guide.freecodecamp.org/), la [provocările de codare](https://learn.freecodecamp.org/) sau la corectarea erorilor de pe platforma de învățare.
|
||||
|
||||
2. Ajută-i pe colegii de pe [forumul public](https://forum.freecodecamp.org/). [Răspunde la întrebările lor de codare](https://forum.freecodecamp.org/?max_posts=1) sau [oferăle feedback cu privire la proiectele lor de codare](https://forum.freecodecamp.org/c/project-feedback?max_posts=1)
|
||||
|
||||
3. Ajută-ne să adăugăm subtitrări în [videoclipurile canalului YouTube](https://www.youtube.com/channel/UC8butISFwT-Wl7EV0hUK0BQ/videos).
|
||||
|
||||
## Contribuiește la codul open source al aceastei pagine
|
||||
|
||||
Avem o vastă bază de open source cu mii de [provocări de codare](https://learn.freecodecamp.org) și [articole de orientare](https://guide.freecodecamp.org).
|
||||
|
||||
Poți să ne ajuți în felul următor:
|
||||
|
||||
- [📝 Caută, Scrie și Actualizează Ghidul articolelor](#research-write-and-update-our-guide-articles)
|
||||
|
||||
- [💻 Crează, Actualizează și Corectează erorile în provocările noastre de codare](#create-update-and-fix-bugs-in-our-coding-challenges)
|
||||
|
||||
- [🌐 Tradu Ghidul articolelor și provocările de codare](#translate-guide-articles-and-coding-challenges)
|
||||
|
||||
- [🛠 Ajută-ne să Corectăm bug-urile în platforma de învățare a freeCodeCamp.org](#help-us-fix-bugs-in-freecodecamporgs-learning-platform)
|
||||
|
||||
### Caută, Scrie și Actualizează Ghidul articolelor
|
||||
|
||||
**Ce este ghidul articolelor?**
|
||||
|
||||
Ghidul articolelor te ajută să înțelegi rapid conceptul tehnologiei. Acestea sunt scurte explicații explicite în limba engleză pe care le poți citi înainte de a te deplasa la resurse mai aprofundate.
|
||||
|
||||
Poți găsi un [exemplu de articol despre elementele HTML aici](./client/src/pages/html/elements/index.md).
|
||||
|
||||
**Despre ce pot scrie într-un articol?**
|
||||
|
||||
Noi încurajăm ajutorul tău pentru a scrie aceste articole. Nu trebuie să fii un expert într-un subiect care să scrii despre el - întregul Ghid este open source, deci chiar dacă faci o greșeală, un alt contribuitor o va corecta în cele din urmă.
|
||||
|
||||
Pentru a-ți fi de ajutor, găsește un "articol stub/trunchi" pe site-ul [Ghidul website-ului nostru](https://www.freecodecamp.org/guide), scrie articolul, apoi deschide o solicitare de integrare a modificărilor tale pentru a înlocui stubul cu articolul tău. O [solicitare de integrare a modificărilor] (https://help.github.com/articles/about-pull-requests/) este modul în care vei sugera modificările. Permite altora să știe despre modificările tale, să le revizuiască și să le adopte.
|
||||
|
||||
Dacă nu poți găsi un articol stub/trunchi despre subiectul despee care dorești să scrii, poți deschide un PR care creează un stub și include schița articolul tău.
|
||||
|
||||
Dacă dorești să contribui la îmbunătățirea articolelor de orientare, iată [cum să lucrezi cu articole de ghid](/docs/how-to-work-on-guide-articles.md).
|
||||
|
||||
### Crează, Actualizează și Corectează erorile în provocările noastre de codare
|
||||
|
||||
Toate provocările de codare sunt întreținute de comunitate, aducând cunoștințe de specialitate de la voluntari ca tine.
|
||||
|
||||
Tu poți ajuta să le extinzi și să le clarifichezi formularea. Poți actualiza povestirile utilizatorilor pentru a explica mai bine conceptul și chiar a elimina pe cele care se repetă. De asemenea, poți îmbunătăți testele provocărilor pentru a le face mai corect când ceilalți testează codul.
|
||||
|
||||
Dacă ești interesat să îmbunătățești aceste provocări de codare, iată [cum să lucrezi la provocările de codare](/docs/how-to-work-on-coding-challenges.md).
|
||||
|
||||
### Tradu Ghidul articolelor și provocările de codare
|
||||
|
||||
Ne poți ajuta să traducem Ghidul articolelor noastre și provocările de Codare pentru o limbă pe care o vorbești. În prezent avem traduse versiuni în:
|
||||
|
||||
- [Chineză (中文)](https://github.com/freeCodeCamp/freeCodeCamp/tree/master/curriculum/challenges/chinese)
|
||||
- [Rusă (русский)](https://github.com/freeCodeCamp/freeCodeCamp/tree/master/curriculum/challenges/russian)
|
||||
- [Arabă (عربى)](https://github.com/freeCodeCamp/freeCodeCamp/tree/master/curriculum/challenges/arabic)
|
||||
- [Spaniolă (Español)](https://github.com/freeCodeCamp/freeCodeCamp/tree/master/curriculum/challenges/spanish)
|
||||
- [Portugheză (Português)](https://github.com/freeCodeCamp/freeCodeCamp/tree/master/curriculum/challenges/portuguese)
|
||||
- [Română (Română)](https://github.com/freeCodeCamp/freeCodeCamp/tree/master/curriculum/challenges/romanian)
|
||||
|
||||
Ne face plăcere ajutorul tău în îmbunătățirea calității acestor traduceri. Milioane de oameni folosesc versiunea în limba engleză a freeCodeCamp.org și ne așteptăm ca alte milioane de utilizatori să folosească și aceste versiuni traduse.
|
||||
|
||||
### Ajută-ne să Corectăm bug-urile în platforma de învățare a freeCodeCamp.org
|
||||
|
||||
Platforma noastră de învățare rulează pe un stack JavaScript modern. Dispune de diverse componente, instrumente și biblioteci, incluzând dar fără a se limita la Node.js, MongoDB, LoopBack, OAuth 2.0, React, Gatsby, Webpack și multe altele.
|
||||
|
||||
In linii mari,
|
||||
|
||||
- Avem un server API bazat pe Node.js.
|
||||
- Un set de aplicații client bazate pe React.
|
||||
- Un script pe care îl folosim pentru a evalua proiectele noastre Frontend.
|
||||
|
||||
Contribuind la acest lucru este nevoie de o înțelegere a API-urilor, sintaxei ES6 și o mulțime de curiozitate.
|
||||
|
||||
În esență, ne așteptăm la o anumită familiaritate de bază, cu unele dintre tehnologiile, instrumentele și bibliotecile menționate mai sus. Acestea fiind spuse, nu ți se cere să fii un expert la ele.
|
||||
|
||||
Simte-te liber să ne pui întrebări, cu privire la subiectele legate de acest subiect, și vom fi bucuroși să clarificăm. Când ai dubii, poți contacta pe Mrugesh Mohapatra Mrugesh Mohapatra [`@raisedadead`](https://github.com/raisedadead) sau Stuart Taylor [`@bouncey`](https://github.com/bouncey) de pe platforma noastră dev echipa pentru a te ajuta în acest sens.
|
||||
|
||||
Dacă dorești să ne ajutați să îmbunătățim codul nostru, iată [cum să configurezi freeCodeCamp local](/docs/how-to-setup-freecodecamp-locally.md).
|
||||
|
||||
|
||||
## Întrebări frecvente
|
||||
|
||||
**Cum pot raporta un bug/eroare de cod, care nu este la bord/tablă?**
|
||||
|
||||
Dacă crezi că ai găsit un bug, mai întâi citește articolul ["Ajutor am găsit un bug"](https://forum.freecodecamp.org/t/how-to-report-a-bug/19543) și urmărește instrucțiunile sale.
|
||||
|
||||
Dacă ești convins că este vorba despre un bug nou, continuă și crează o nouă problemă GitHub. Asigură-te că incluzi cât mai multe informații posibil pentru ca să putem reproduce eroarea. Avem un șablon predefinit pentru a te ajuta să faci acest lucru.
|
||||
|
||||
Te rugăm să reții că orice problemă care solicită ajutor pentru codiul provocarii, va fi închisă. Problema tracker-ului este strict pentru problemele și discuțiile legate de codul de basă. Ar trebui să [solicitezi asistență pe forum](https://forum.freecodecamp.org) înainte de a raporta ori de câte ori ai îndoieli.
|
||||
|
||||
**Cum pot raporta o problemă de securitate?**
|
||||
|
||||
Te rugăm să nu creezi probleme GitHub pentru probleme de securitate. În schimb, trimite un e-mail la adresa `security@freecodecamp.org`și o vom examina imediat.
|
||||
|
||||
**M-am impotmolit pe ceva ce nu se află în documentația respectivă. Cum pot obține ajutor?**
|
||||
|
||||
Nu ezita să ceri ajutor în:
|
||||
|
||||
- [Categoria "Colaboratori" a forumul nostru public](https://forum.freecodecamp.org/c/contributors)
|
||||
- [Camera/room noastră de discuții publice pe Gitter](https://gitter.im/FreeCodeCamp/Contributors)
|
||||
|
||||
Suntem bucuroși să te ajutăm să contribuiești la oricare dintre subiectele la care dorești să lucrezi. Asigură-te că ai căutat intrebarea ta înainte de a posta una nouă. Fii politicos și răbdător. Voluntarii și moderatorii noștri din comunitate sunt în permanență în imprejurimi pentru a te călăuzi prin intrebările tale.
|
||||
|
||||
**Sunt nou în GitHub și în Open Source în general:**
|
||||
|
||||
Citește [Cum să contribui la Ghidul Open Source](https://github.com/freeCodeCamp/how-to-contribute-to-open-source).
|
||||
|
||||
**Ce înseamnă aceste etichete diferite, care sunt atașate/anexate pe probleme?**
|
||||
|
||||
Moderatorii noștri din comunitate [triază](https://en.wikipedia.org/wiki/Software_bug#Bug_management) problemele si solicitarile de integrare a modificărilor pe baza priorității lor, gravității lor și a altor factori. Poți găsi [un glosar complet al semnificațiilor lor aici](https://github.com/freecodecamp/freecodecamp/labels).
|
||||
|
||||
Ar trebui să treci prin intermediul paginilor cu probleme **`Help Wanted/Am nevoie de ajutor`** sau **`first timers only/pagina incepatorilor`** pentru a căuta rapid ceea ce este disponibil pentru tine pentru a lucra. Acestea sunt susținute pentru a fi luate și nu trebuie să lucrați în altceva înainte de a lucra la acestea.
|
||||
|
||||
Dacă aceste aspecte nu prezintă clarificări cu privire la ceea ce trebuie făcut, nu ezita să pui întrebări în comentarii.
|
||||
|
||||
**Am găsit o greșeală de tipărire, ar trebui să raportez o problemă înainte de a putea face o solicitare de integrare a modificărilor?**
|
||||
|
||||
Pentru greșelile de tipărire și alte modificări de genul acesta, poți deschide direct solicitari de integrare a modificărilor fără a crea mai întâi o problemă. Problemele sunt mai mult pentru a discuta probleme asociate cu codul, sau mai multe aspecte structurale ale curriculumului.
|
@ -1,151 +0,0 @@
|
||||
<!-- do not translate this -->
|
||||
| [Read these guidelines in other languages](/docs/i18n-languages) |
|
||||
|-|
|
||||
<!-- do not translate this -->
|
||||
|
||||
# Рекомендации по внесению вклада в freeCodeCamp
|
||||
|
||||
Привет 👋!
|
||||
|
||||
freeCodeCamp.org возможен благодаря тысячам добровольцев, таких как Вы. Мы благодарим Вас за Ваш вклад и рады приветствовать Вас на борту.
|
||||
|
||||
Мы строго соблюдаем наш «Кодекс поведения»: ['Code of Conduct'](https://www.freecodecamp.org/code-of-conduct). Потратьте минутку, чтобы ознакомиться. Это не займет много времени.
|
||||
|
||||
Счастливого участия 🎉!
|
||||
|
||||
## Вот некоторые интересные способы, которыми вы можете помочь
|
||||
|
||||
Вы можете внести свой вклад в интересующую вас область:
|
||||
|
||||
1. [Внести вклад в этот открытый репозиторий.](#внести-свой-вклад-в-этот-open-source-проект)
|
||||
|
||||
Помогите нам в создании или редактировании обучающих статей, задач по программированию или исправлении ошибок на нашей обучающей платформе.
|
||||
|
||||
2. Помощь новичкам с нашим [форумом](https://forum.freecodecamp.org/).
|
||||
|
||||
- ❓ Помощь новичкам [отвечая на их вопросы](https://forum.freecodecamp.org/?max_posts=1).
|
||||
- 💬 [Написать отзыв](https://forum.freecodecamp.org/c/project-feedback?max_posts=1) на проекты новичков.
|
||||
|
||||
3. Помогите нам добавить субтитры на нашем [канале YouTube](https://www.youtube.com/channel/UC8butISFwT-Wl7EV0hUK0BQ/videos).
|
||||
|
||||
|
||||
## Внести свой вклад в этот open source проект
|
||||
|
||||
У нас есть огромная база с открытым исходным кодом из тысяч [задач по программированию](https://www.freecodecamp.org/learn) и [обучающих статей](https://www.freecodecamp.org/guide). Эти задачи и статьи составляют учебный контент, доступный на платформе обучения freeCodeCamp.org.
|
||||
|
||||
Вы можете помочь нам:
|
||||
|
||||
- [📝 В исследовании, написании и обновлении статей нашего руководства.](#изучение-написание-и-обновление-статей-нашего-руководства)
|
||||
|
||||
- [💻 В создании, обновлении и исправлении ошибок в наших задачах по программированию.](#создание-обновление-и-исправление-ошибок-в-наших-задачах-на-кодирование)
|
||||
|
||||
- [🌐 В переводе обучающих статей и задач по программированию.](#перевод-статей-руководства-и-задач-на-кодирование)
|
||||
|
||||
- [🛠 В исправлении ошибок на обучающей платформе freeCodeCamp.org](#помогите-нам-исправить-ошибки-в-обучающей-платформе-freecodecamporg)
|
||||
|
||||
### Изучение, написание и обновление статей нашего руководства
|
||||
|
||||
**Что за обучающие статьи?**
|
||||
|
||||
Обучающие статьи помогут вам быстро понять технологические концепции. Это краткие и простые объяснения, которые вы можете прочитать, прежде чем перейти к более глубоким темам.
|
||||
|
||||
Пример [статьи о HTML](./client/src/pages/html/elements/index.md).
|
||||
|
||||
**О чем я могу написать статью?**
|
||||
|
||||
|
||||
Мы рады Вашей помощи с написанием этих статей. Вам не обязательно быть экспертом в теме, чтобы писать об этом - все это Руководство является открытым исходным кодом, поэтому, даже если вы допустили ошибку, другой участник в конечном итоге исправит это.
|
||||
|
||||
|
||||
Чтобы помочь, найдите "заглушку" на нашем [Сайте Руководства](https://www.freecodecamp.org/guide), напишите статью, затем создайте 'pull request', чтобы заменить заглушку своей статьей. [pull request](https://help.github.com/articles/about-pull-requests/) вот как Вы можете предложить изменения. Это позволяет другим узнать о ваших изменениях, просмотреть их и принять их.
|
||||
|
||||
Если вы не можете найти заглушку по теме, о которой хотите писать, вы можете открыть PR, который создает заглушку и включает черновик Вашей статьи.
|
||||
|
||||
** Если вы хотите работать над этим, следуйте этим рекомендациям: **
|
||||
|
||||
#### [Как работать над статьями руководства](/docs/how-to-work-on-guide-articles.md)
|
||||
|
||||
### Создание, обновление и исправление ошибок в наших задачах на кодирование
|
||||
|
||||
Все наши задачи на кодирование пишутся сообществом, принося экспертные знания таких добровольцев, как Вы.
|
||||
|
||||
Тем не менее, их необходимо постоянно совершенствовать по качеству. Например, вы можете обновить инструкции, чтобы исправить их [пустословие](https://en.oxforddictionaries.com/definition/verbiage) Вы можете дополнить user stories, чтобы лучше объяснить концепцию и даже удалить лишнее. Вы можете захотеть рефакторить тесты, которые не проходят с текущим кодом для user stories.
|
||||
|
||||
** Если вы хотите работать над этим, следуйте этим рекомендациям: **
|
||||
|
||||
#### [Как работать над задачами по кодингу](/docs/how-to-work-on-coding-challenges.md)
|
||||
|
||||
### Перевод статей руководства и задач на кодирование
|
||||
|
||||
Вы можете помочь нам с переводом наших статей и задач о кодировании для языка, на котором вы говорите. В настоящее время мы переводим версии в:
|
||||
|
||||
- Chinese (中文)
|
||||
- Russian (русский)
|
||||
- Arabic (عربي)
|
||||
- Spanish (Español)
|
||||
- Portuguese (Português)
|
||||
|
||||
Большинство из этих версий переведены машиной. Мы будем рады вашей помощи в улучшении качества этих переводов.
|
||||
|
||||
** Если вы хотите работать над этим, следуйте этим рекомендациям: **
|
||||
|
||||
**[TODO]** Мы находимся в процессе обновления документов для рабочего процесса перевода. Следите [`#18313`](https://github.com/freeCodeCamp/freeCodeCamp/issues/18313) за прогрессом.
|
||||
|
||||
### Помогите нам исправить ошибки в обучающей платформе freeCodeCamp.org
|
||||
|
||||
Наша обучающая платформа работает на современном стеке JavaScript. Он использует различные компоненты, инструменты и библиотеки, включая, но не ограничиваясь Node.js, MongoDB, LoopBack, OAuth 2.0, React, Gatsby, Webpack, и другие.
|
||||
|
||||
В общем смысле,
|
||||
|
||||
- У нас есть сервер с API на Node.js.
|
||||
- Набор клиентских приложений на основе React.
|
||||
- Скрипт, который мы используем для оценки проектов Frontend.
|
||||
|
||||
Для этого требуется некоторое понимание API, синтаксиса ES6 и много любопытства.
|
||||
|
||||
Мы ожидаем некоторых базовых знаний о некоторых из вышеупомянутых технологий, инструментов и библиотек. Тем не менее, вы не обязаны быть в этом экспертом.
|
||||
|
||||
Не стесняйтесь задавать нам вопросы, о связанных проблемах, и мы будем рады прояснить. Когда вы сомневаетесь, вы можете связаться с Mrugesh Mohapatra [`@raisedadead`](https://github.com/raisedadead) или Stuart Taylor [`@bouncey`](https://github.com/bouncey) из нашей команды разработчиков платформы, чтобы помочь вам разобраться.
|
||||
|
||||
** Если вы хотите работать над этим, следуйте этим рекомендациям: **
|
||||
|
||||
#### [Как настроить freeCodeCamp локально.](/docs/how-to-setup-freecodecamp-locally.md)
|
||||
|
||||
## Часто задаваемые вопросы
|
||||
|
||||
**Как я могу сообщить об ошибке, которой не в списке?**
|
||||
|
||||
Если вы считаете, что обнаружили ошибку, сначала прочитайте ['Помощь Я нашел ошибку'](https://forum.freecodecamp.org/t/how-to-report-a-bug/19543) статью и следуйте инструкциям.
|
||||
|
||||
Если вы уверены, что это новая ошибка, продолжайте и создайте новую проблему на GitHub. Обязательно укажите как можно больше информации, чтобы мы могли воспроизвести ошибку. У нас есть предопределенный шаблон, который поможет вам в этом.
|
||||
|
||||
Обратите внимание, что любые вопросы, требующие помощи по задачам на кодирование, будут закрыты. Отслеживание проблем строго связано с вопросами и обсуждениями, связанными с кодовой базой. Вам лучше [искать помощь на форуме](https://forum.freecodecamp.org) перед тем как сообщать о любых сомнениях.
|
||||
|
||||
**Как я могу сообщить о проблеме безопасности?**
|
||||
|
||||
Пожалуйста, не создавайте проблемы на GitHub для проблем безопасности. Вместо этого отправьте электронное письмо по адресу `security@freecodecamp.org` и мы незамедлительно рассмотрим его.
|
||||
|
||||
**Я застрял в том, чего нет в этой документации. Как получить помощь?**
|
||||
|
||||
Не стесняйтесь обращаться за помощью в:
|
||||
|
||||
- [Категория «Участники» на нашем форуме](https://forum.freecodecamp.org/c/contributors).
|
||||
- [Наш чат в Gitter](https://gitter.im/FreeCodeCamp/Contributors).
|
||||
|
||||
Мы рады помочь вам внести свой вклад в любую из тем, над которыми вы хотели бы работать. Перед отправкой нового вопроса убедитесь, что его не сделал кто-то до вас. Будьте вежливы и терпеливы. Наши волонтеры и модераторы сообщества всегда рядом, чтобы ответить на ваши вопросы.
|
||||
|
||||
**Я новичок в GitHub и Open Source в целом:**
|
||||
|
||||
Читайте наше [Руководство о внесении вклада в проекты с открытым исходным кодом](https://github.com/freeCodeCamp/how-to-contribute-to-open-source).
|
||||
|
||||
**Что означают разные виды ярлыков, которыми отмечены проблемы?**
|
||||
|
||||
Наши модераторы сообщества [сортируют](https://en.wikipedia.org/wiki/Software_bug#Bug_management) проблемы и выбирают запросы в соответствии с их приоритетом, серьезности или других факторов. Вы можете [найти полный глоссарий значений здесь](https://github.com/freecodecamp/freecodecamp/labels).
|
||||
|
||||
Лучше всего искать ярлыки с названиями "Нужна помощь" (**`Help Wanted`**) или "Новички приветствуются" (**`first timers only`**) для быстрого поиска тех проблем, которым вы можете помочь. Они уже готовы к работе, и никакой дополнительной подготовки не требуется.
|
||||
|
||||
Если в этих вопросах не хватает ясности в понимании того, что нужно сделать, не стесняйтесь задавать вопросы в комментариях.
|
||||
|
||||
**Я нашел опечатку, должен ли я сообщить о проблеме, прежде чем я смогу сделать запрос на дополнение ('pull request')?**
|
||||
|
||||
Вы можете сразу создать pull request с исправлениями опечаток или небольшими изменениями в [пустословие](https://en.oxforddictionaries.com/definition/verbiage), не сообщая о каких-либо проблемах дополнительно. Трекер Проблем ('issue tracker') - это инструмент для поиска существующих проблем, исправление которых вы можете предложить посредством pull request.
|
@ -1,110 +0,0 @@
|
||||
<!-- do not translate this -->
|
||||
| [Read these guidelines in other languages](/docs/i18n-languages) |
|
||||
|-|
|
||||
<!-- do not translate this -->
|
||||
|
||||
# Как локально отлавливать получение исходящих электронных писем без их реальной отправки (требуется только для рабочих процессов электронной почты)
|
||||
|
||||
> **Заметка:** Это **необязательный** шаг - требуется только при работе с рабочими процессами электронной почты
|
||||
|
||||
## Вступление
|
||||
|
||||
Некоторые рабочие процессы электронной почты (например обновление электронной почты пользователя) требуют чтобы внутренний сервер через api отправлял электронные письма. Во время разработки вы можете использовать инструмент для локального отлавливания электронной почты, вместо того чтобы использовать реального поставщика электронной почты и отправлять реальные электронные письма. MailHog - это один из таких средств тестирования электронной почты для разработчиков, который ловит электронные письма, отправляемые вашим локальным экземпляром freeCodeCamp.
|
||||
|
||||
## Установка MailHog
|
||||
|
||||
Установите и запустите MailHog (зависит от установленной ОС):
|
||||
|
||||
|
||||
- [Установка MailHog на macOS](#installing-mailhog-on-macos)
|
||||
- [Установка MailHog на Windows](#installing-mailhog-on-windows)
|
||||
- [Установка MailHog на Linux](#installing-mailhog-on-linux)
|
||||
|
||||
### Установка MailHog на macOS
|
||||
|
||||
|
||||
Как установить MailHog на macOS с помощью [Homebrew](https://brew.sh/):
|
||||
|
||||
|
||||
|
||||
```bash
|
||||
brew install mailhog
|
||||
brew services start mailhog
|
||||
```
|
||||
|
||||
Данные команды установят и запустят службу MailHog в фоновом режиме.
|
||||
|
||||
Затем вы можете перейти к непосредственному [использованию MailHog](#using-mailhog).
|
||||
|
||||
### Установка MailHog на Windows
|
||||
|
||||
Загрузите последнюю версию MailHog с [официального репозитория](https://github.com/mailhog/MailHog/releases). Выберите ссылку для вашей версии Windows (32 или 64 бит) и файл .exe будет загружен на ваш компьютер.
|
||||
|
||||
После завершения загрузки, кликните на файл. Возможно, вы получите уведомление брандмауэра Windows где вам нужно будет разрешить доступ к MailHog. Как только вы это сделаете, стандартная подсказка командной строки Windows откроется с уже запущенным MailHog.
|
||||
|
||||
Чтобы закрыть MailHog, закройте командную строку. Чтобы запустить его снова, кликните тот же файл .exe. Вам не нужно загружать каждый раз новый файл.
|
||||
|
||||
Затем вы можете перейти к [использованию MailHog](#using-mailhog).
|
||||
|
||||
### Установка MailHog на Linux
|
||||
|
||||
Сначала установите [Go](https://golang.org).
|
||||
|
||||
Для систем на базе Debian, таких как Ubuntu и Linux Mint, выполните команду:
|
||||
|
||||
|
||||
```bash
|
||||
sudo apt-get install golang
|
||||
```
|
||||
|
||||
Для CentOS, Fedora, Red Hat Linux и других систем на основе RPM выполните команду:
|
||||
|
||||
```bash
|
||||
sudo dnf install golang
|
||||
```
|
||||
|
||||
Или:
|
||||
|
||||
```bash
|
||||
sudo yum install golang
|
||||
```
|
||||
|
||||
|
||||
Задайте путь к Go:
|
||||
|
||||
```bash
|
||||
echo "export GOPATH=$HOME/go" >> ~/.profile
|
||||
echo 'export PATH=$PATH:/usr/local/go/bin:$GOPATH/bin' >> ~/.profile
|
||||
source ~/.profile
|
||||
```
|
||||
|
||||
Затем установите и запустите MailHog:
|
||||
|
||||
```bash
|
||||
go get github.com/mailhog/MailHog
|
||||
sudo cp /home/$(whoami)/go/bin/MailHog /usr/local/bin/mailhog
|
||||
mailhog
|
||||
```
|
||||
Теперь вы можете перейти к [использованию MailHog](#using-mailhog).
|
||||
|
||||
## Использование MailHog
|
||||
|
||||
После того, как вы установили MailHog и запустили его, вам нужно открыть почтовый ящик MailHog в своем браузере, открыть новую вкладку или окно и перейти по адресу [http://localhost:8025](http://localhost:8025).
|
||||
|
||||
Теперь вы должны увидеть экран, как показано ниже:
|
||||
|
||||

|
||||
|
||||
Когда ваша freeCodeCamp сборка отправит электронное письмо, вы увидите его на экране, как показано ниже:
|
||||
|
||||

|
||||
|
||||
Откройте почту, и вы увидите две вкладки, где вы можете просмотреть содержимое: обычный текст и источник. Убедитесь, что вы находитесь на вкладке обычного текста.
|
||||
|
||||

|
||||
|
||||
Любые ссылки в письме так же должны быть доступны для просмотра.
|
||||
|
||||
## Полезные ссылки
|
||||
|
||||
- По любым другим вопросам, связанным с MailHog или инструкциями по пользовательским настройкам, вы можете ознакомиться в [официальном репозитории MailHog](https://github.com/mailhog/MailHog).
|
@ -1,46 +0,0 @@
|
||||
<!-- do not translate this -->
|
||||
| [Read these guidelines in other languages](/docs/i18n-languages) |
|
||||
|-|
|
||||
<!-- do not translate this -->
|
||||
|
||||
# Как создать Pull Request (Пулл Реквест)
|
||||
|
||||
## Как сделать хороший заголовок для Pull Request:
|
||||
|
||||
Создавая Pull Request (PR), воспользуйтесь данной таблицей, чтобы решить, как правильно озаглавить PR в формате:
|
||||
`fix/feat/chore/refactor/docs/perf (scope): PR Title`
|
||||
|
||||
Например: `fix(learn): Fixed tests for the do...while loop challenge`.
|
||||
|
||||
| Область | Описание |
|
||||
|---|---|
|
||||
| `learn`,`curriculum` | Для PR'ов, которые вносят изменения в учебный план. |
|
||||
| `client` | Для PR'ов, которые вносят изменения в логику клиентской платформы или пользовательский интерфейс. |
|
||||
| `guide` | Для PR'ов, которые вносят изменения в инстукции. |
|
||||
| `docs` | Для PR'ов, которые вносят изменения в документацию. |
|
||||
|
||||
## Создание Пулл Реквеста (PR)
|
||||
|
||||
1. После того, как вы внесёте какие-нибудь изменения в свой форк репозитория, GitHub предложит вам создать PR
|
||||
|
||||

|
||||
|
||||
2. По умолчанию все PR создаются в ветку `master` основного репозитория freeCodeCamp
|
||||
|
||||
При создании PR, убедитесь, что в поле "base fork" указан репозиторий freeCodeCamp/freeCodeCamp
|
||||
|
||||

|
||||
|
||||
3. Нажать на кнопку "Create pull request", для создания PR из вашей верки в ветку `master` freeCodeCamp.
|
||||
|
||||
4. В поле описания PR добавьте более подробный отчёт сделанных вами изменений и причины по которым появилась такая необходимость
|
||||
|
||||
- Вам будет предоставлен шаблон, который содержит контрольные список пунктов, которые вам необходимо выполнить, прежде чем вы создадите PR.
|
||||
|
||||
- Заполните эти пункты. Опираясь на них, будет приниматься решение о рассмотрении и принятии вашего PR
|
||||
|
||||
- Если PR предназначен для исправления существующей ошибки/проблемы, то в конце описание вашего PR добавьте ключевое слово `closes` и #xxxx (где xxxx это номер выпуска). Например: `closes #1337`. Так GitHub поймёт, что при успешном принятии PR нужно автоматически закрыть Issue с указанным номером
|
||||
|
||||
5. Укажите, тестировали ли вы локальную копию сайта или нет.
|
||||
|
||||
Тестирование необходимо, когда вы не просто меняете какой-то текст (например, статью руководства), а изменяете JavaScript, HTML или CSS файлы, которые могут изменить функциональность или макет страницы.
|
@ -1,465 +0,0 @@
|
||||
<!-- do not translate this -->
|
||||
| [Read these guidelines in other languages](/docs/i18n-languages) |
|
||||
|-|
|
||||
<!-- do not translate this -->
|
||||
|
||||
# Локальная настройка freeCodeCamp
|
||||
|
||||
Следуйте этим рекомендациям для работы с freeCodeCamp локально на вашей системе. Это необходимо сделать, если вы хотите регулярно вносить свой вклад.
|
||||
|
||||
Некоторые рабочие процессы, такие как предварительный просмотр страниц руководства или испытания по программированию, отладка и исправление ошибок в кодовой базе, требуют, чтобы freeCodeCamp работал локально.
|
||||
|
||||
## Форк репозитория на GitHub
|
||||
|
||||
['Форк'](https://help.github.com/articles/about-forks/) – действие, при котором вы получаете свою собственную копию основного репозитория freeCodeCamp на GitHub.
|
||||
|
||||
Это очень важно, потому что таким образом вы можете работать над своей копией freeCodeCamp на GitHub или загрузить её для работы локально. Позже, вы сможете вносить изменения в основной репозиторий через пулл-реквест.
|
||||
|
||||
> **Подсказка:**
|
||||
> Основной репозиторий `https://github.com/freeCodeCamp/freeCodeCamp` часто называют `upstream` репозиторий.
|
||||
> Ваш форк `https://github.com/YOUR_USER_NAME/freeCodeCamp` называют `origin` репозиторий.
|
||||
|
||||
**Выполните следующие действия для `https://github.com/freeCodeCamp/freeCodeCamp` репозитория:**
|
||||
|
||||
1. Перейдите в репозиторий freeCodeCamp на GitHub: <https://github.com/freeCodeCamp/freeCodeCamp>
|
||||
2. Нажмите кнопку "Fork" в правом верхнем углу интерфейса ([Подробнее здесь](https://help.github.com/articles/fork-a-repo/))
|
||||
3. После того, как репозиторий будет форкнут, вы попадете в свою копию freeCodeCamp по адресу `https://github.com/YOUR_USER_NAME/freeCodeCamp`
|
||||
|
||||

|
||||
|
||||
## Подготовка среды разработки
|
||||
|
||||
После установки необходимых компонентов необходимо подготовить среду разработки. Это является общим для многих рабочих процессов разработки, и вам нужно будет сделать это только один раз.
|
||||
|
||||
**Выполните следующие действия, чтобы подготовить среду разработки:**
|
||||
|
||||
1. Установить [Git](https://git-scm.com/) или ваш любимый Git-клиент, если вы еще этого не сделали. Обновите до последней версии, идущий в комплекте с вашей ОС может быть устаревшим.
|
||||
|
||||
2. (Необязательно, но рекомендуется) [Настройка SSH-ключа](https://help.github.com/articles/generating-an-ssh-key/) для GitHub.
|
||||
|
||||
3. Установите редактор кода по вашему выбору.
|
||||
|
||||
Мы рекомендуем использовать [VS Code](https://code.visualstudio.com/) или [Atom](https://atom.io/). Это отличные бесплатные редакторы с открытым исходным кодом.
|
||||
|
||||
4. Настройка линтинг для редактора кода.
|
||||
|
||||
Вы должны иметь [ESLint работающий в вашем редакторе](http://eslint.org/docs/user-guide/integrations.html) который будет выделять все несоответствия вашего кода с [нашим руководство по стилю](http://forum.freecodecamp.org/t/free-code-camp-javascript-style-guide/19121).
|
||||
|
||||
> Пожалуйста, не игнорируйте ошибки линтинга. Они предназначены для **помощи** вам и для обеспечения чистой и простой кодовой базы.
|
||||
|
||||
## Клонирование вашей копии репозитория freeCodeCamp
|
||||
|
||||
['Клонирование'](https://help.github.com/articles/cloning-a-repository/) – это шаг, на котором вы **загружаете** копию репозитория, который принадлежит вам или кому-то другому из `удаленного` местоположения. В вашем случае, это удаленное расположение является вашим `форком` репозитория freeCodeCamp, который должен быть доступен по адресу `https://github.com/YOUR_USER_NAME/freeCodeCamp`.
|
||||
|
||||
Выполните эти команды на локальном компьютере:
|
||||
|
||||
1. Откройте терминал / командную строку / оболочку Bash в каталоге проектов
|
||||
|
||||
_например: `/yourprojectdirectory/`_
|
||||
|
||||
2. Клонируйте ваш форк freeCodeCamp, заменив `YOUR_USER_NAME` вашим именем пользователя на GitHub
|
||||
|
||||
```shell
|
||||
git clone https://github.com/YOUR_USER_NAME/freeCodeCamp.git
|
||||
```
|
||||
|
||||
Так вы скачаете весь репозиторий freeCodeCamp в каталог ваших проектов.
|
||||
|
||||
## Настройка `upstream` для главного репозитория
|
||||
|
||||
Теперь, когда вы загрузили копию вашего форка, вам нужно будет настроить `upstream`.
|
||||
|
||||
Как упоминалось ранее, основной репозиторий `https://github.com/freeCodeCamp/freeCodeCamp` часто называется как `upstream` репозиторий. Форк `https://github.com/YOUR_USER_NAME/freeCodeCamp` часто называют `origin` репозиторий.
|
||||
|
||||
Вам нужно указать своему склонированному репозиторию на `upstream` в дополнение к `origin`. Это позволяет синхронизировать изменения из основного репозитория. Таким образом, вам не придется делать форк и клонирование снова и снова.
|
||||
|
||||
1. Зайти в каталог
|
||||
|
||||
```shell
|
||||
cd freeCodeCamp
|
||||
```
|
||||
|
||||
2. Добавить связь с основным репозиторием freeCodeCamp:
|
||||
|
||||
```shell
|
||||
git remote add upstream https://github.com/freeCodeCamp/freeCodeCamp.git
|
||||
```
|
||||
|
||||
3. Проверьте конфигурацию:
|
||||
|
||||
```shell
|
||||
git remote -v
|
||||
```
|
||||
|
||||
Вывод должен быть примерно таким:
|
||||
|
||||
```shell
|
||||
origin https://github.com/YOUR_USER_NAME/freeCodeCamp.git (fetch)
|
||||
origin https://github.com/YOUR_USER_NAME/freeCodeCamp.git (push)
|
||||
upstream https://github.com/freeCodeCamp/freeCodeCamp.git (fetch)
|
||||
upstream https://github.com/freeCodeCamp/freeCodeCamp.git (push)
|
||||
```
|
||||
|
||||
## Запуск freeCodeCamp локально на вашем компьютере
|
||||
|
||||
Теперь, когда у вас есть локальная копия freeCodeCamp, вы можете следовать этим инструкциям, чтобы запустить ее локально. Это поможет вам:
|
||||
|
||||
- Предварительный просмотр изменений в том виде, в каком они появляться на обучающей платформе.
|
||||
- Работа над вопросами и улучшениями, связанными с UI.
|
||||
- Отладка и исправление проблем в серверной и клиентской частях приложения.
|
||||
|
||||
Вы можете пропустить локальный запуск freeCodeCamp, если вы просто редактируете файлы, делаете `rebase` или разрешаете конфликты (`merge` conflicts). Вы всегда можете вернуться к этой части инструкций позже.
|
||||
|
||||
[Пропустить локальный запуск freeCodeCamp](#Внесение-изменений-в-вашу-локальную-копию-freecodecamp)
|
||||
|
||||
### Установка необходимых компонентов
|
||||
|
||||
Начните с установки необходимого программного обеспечения.
|
||||
|
||||
| Программное обеспечение | Версия | Описание |
|
||||
| - | - | - |
|
||||
| [MongoDB Community Server](https://docs.mongodb.com/manual/administration/install-community/) | `3.6` | [Примечания к выпуску](https://docs.mongodb.com/manual/release-notes/). Примечание: Мы используем версию `3.6`, но [планируем обновление](https://github.com/freeCodeCamp/freeCodeCamp/issues/18275).
|
||||
| [Node.js](http://nodejs.org) | `8.x` | [LTS релиз](https://github.com/nodejs/Release#release-schedule) |
|
||||
| npm (поставляется в комплекте с Node) | `6.x` | Не имеет LTS релизов, мы используем версию в комплекте Node LTS |
|
||||
|
||||
**Важно:**
|
||||
|
||||
Мы настоятельно рекомендуем обновиться до последних стабильных выпусков (долгосрочная поддержка (LTS)) вышеуказанных версий.
|
||||
Если Node.js или MongoDB уже установлен на вашем компьютере, выполните следующие команды для проверки версий:
|
||||
|
||||
```shell
|
||||
node -v
|
||||
mongo --version
|
||||
npm -v
|
||||
```
|
||||
|
||||
> Если у вас есть другая версия, пожалуйста, установите рекомендуемую версию. Мы можем помочь с вопросами по установке только для рекомендуемых версий
|
||||
|
||||
**У меня возникли проблемы с установкой рекомендуемого программного обеспечения. Что мне следует делать?**
|
||||
|
||||
Мы регулярно разрабатываем на популярных и новейших операционных системах, таких как mac OS 10.12 (или более новая версии), Ubuntu 16.04 (или более новая версии), а так же Windows 10. Рекомендуем для поиска воспользоваться такими ресурсами как Google, Stack Overflow или Stack Exchange. Скорее всего, кто-то столкнулся с той же проблемой, и уже есть решение вашего вопроса.
|
||||
|
||||
Если вы используете другую ОС и / или все еще сталкиваетесь с проблемами, обратитесь к [сообществу участников на нашем публичном форуме](https://www.freeCodeCamp.org/c/contributors) или в [чат участников](https://gitter.im/freeCodeCamp/Contributors). Мы можем помочь с решением некоторых общих проблем.
|
||||
|
||||
Мы не можем поддержать вас на GitHub, потому что вопросы установки программного обеспечения выходят за рамки этого проекта.
|
||||
|
||||
### Установка зависимостей
|
||||
|
||||
Начните с установки зависимостей, необходимых для запуска приложения.
|
||||
|
||||
```shell
|
||||
# Установка NPM зависимостей
|
||||
npm install
|
||||
```
|
||||
|
||||
Затем необходимо добавить частные переменные среды (ключи API):
|
||||
|
||||
```shell
|
||||
# Сделайте копию "sample.env" и переименуйте её в ".env".
|
||||
# Заполните его необходимыми ключами API и секретными данными:
|
||||
|
||||
# macOS / Linux
|
||||
cp sample.env .env
|
||||
|
||||
# Windows
|
||||
copy sample.env .env
|
||||
```
|
||||
|
||||
Ключи не требуется изменять, чтобы запустить приложение локально. Вы можете оставить значения по умолчанию из `sample.env`.
|
||||
|
||||
`MONGOHQ_URL` является наиболее важным. Если у вас нет MongoDB, работающей с настройками, отличными от настроек по умолчанию, URL-адрес в `sample.env` должна работать нормально.
|
||||
|
||||
Остальные ключи можно оставить как есть. Имейте в виду, если вы хотите использовать больше сервисов, вам нужно будет получить свои собственные ключи API для этих сервисов и добавить эти ключи в файле `.env`.
|
||||
|
||||
Далее давайте запустим различные сервисы, например api-сервер, клиентское UI-приложение и т.д. Вы можете [узнать больше об этих услугах в этом руководстве](#)
|
||||
|
||||
При запуске устанавливаются связи между сервисами. Они полунезависимы. Это означает, что в рабочей среде эти службы развертываются в по отдельности, но при локальном запуске они запускаются вместе.
|
||||
|
||||
```shell
|
||||
# Запуск всех проектов внутри этого репозитория
|
||||
npm run bootstrap
|
||||
```
|
||||
|
||||
## Запуск MongoDB
|
||||
|
||||
Вам нужно будет запустить MongoDB, прежде чем вы сможете запустить приложение:
|
||||
|
||||
Запустите сервер MongoDB в отдельном терминале
|
||||
|
||||
- На macOS или Ubuntu:
|
||||
|
||||
```shell
|
||||
mongod
|
||||
```
|
||||
|
||||
- На Windows нужно указывать полный путь к бинарному файлу `mongod`
|
||||
|
||||
Замените `3.6` на установленную у вас версию
|
||||
|
||||
```shell
|
||||
"C:\Program Files\MongoDB\Server\3.6\bin\mongod"
|
||||
```
|
||||
|
||||
> Подсказка:
|
||||
> Вы можете избежать необходимости запускать MongoDB каждый раз, установив его в качестве фоновой службы.
|
||||
> Вы можете [узнать больше из документации для вашей ОС](https://docs.mongodb.com/manual/administration/install-community/)
|
||||
|
||||
### Заполнение базы данных
|
||||
|
||||
Далее, рассмотрим базу данных. На этом шаге мы запускаем следующую команду, которая заполнит сервер MongoDB некоторыми необходимыми начальными данными, требуемыми другими службами. Это так же включает в себя несколько схем.
|
||||
|
||||
```shell
|
||||
npm run seed
|
||||
```
|
||||
|
||||
### Запуск клиентского приложение freeCodeCamp и API
|
||||
|
||||
Теперь можно запустить API-сервер и клиентские приложения.
|
||||
|
||||
```shell
|
||||
npm run develop
|
||||
```
|
||||
|
||||
Эта единственная команда запустит все службы, включая API-сервер и клиентские приложения, доступные для работы.
|
||||
|
||||
Теперь откройте веб-браузер и зайдите на <http://localhost:8000>. Если приложение загружается, поздравляем – все готово.
|
||||
|
||||
> Подсказка:
|
||||
>
|
||||
> API-сервер разворачивается на `http://localhost:3000`
|
||||
> Клиентское приложение разворачивается при помощи Gatsby на `http://localhost:8000`
|
||||
|
||||
Если вы посетите <http://localhost:3000/explorer>, вы увидите API, которые у нас есть.
|
||||
|
||||
Поздравляем 🎉! Теперь у вас есть копия всей учебной платформы freeCodeCamp, работающей на вашем локальном компьютере.
|
||||
|
||||
## Краткий справочник по командам при работе локально
|
||||
|
||||
[Вот краткий справочник](/docs/russian/README.md) списка команд, которые могут понадобиться локально время от времени.
|
||||
|
||||
## Внесение изменений в вашу локальную копию freeCodeCamp
|
||||
|
||||
Далее, вы можете вносить изменения в файлы и зафиксировать их.
|
||||
|
||||
Выполните следующие действия:
|
||||
|
||||
1. Убедитесь, что вы находитесь в ветке `master`
|
||||
|
||||
```shell
|
||||
git status
|
||||
```
|
||||
|
||||
Вы должны получить такой результат:
|
||||
|
||||
```shell
|
||||
On branch master
|
||||
Your branch is up-to-date with 'origin/master'.
|
||||
|
||||
nothing to commit, working directory clean
|
||||
```
|
||||
|
||||
Если вы не находитесь не в `master` или ваш рабочий каталог не пуст, разрешить любые различия в файлах/коммитах и переключитесь в ветку `master`:
|
||||
|
||||
```shell
|
||||
git checkout master
|
||||
```
|
||||
|
||||
2. Далее, вам необходимо сделать `rebase` из `upstream`.
|
||||
|
||||
Это действие **синхронизирует последние изменения** с главном репозиторием freeCodeCamp. Важно, чаще делать `rebase`, чтобы избежать конфликтов.
|
||||
|
||||
```shell
|
||||
git pull --rebase upstream master
|
||||
```
|
||||
|
||||
Вы так же можете добавить эти изменения к себе в удалённый репозиторий, чтобы иметь чистую историю коммитов в вашем форке на GitHub.
|
||||
|
||||
```shell
|
||||
git push origin master --force
|
||||
```
|
||||
|
||||
3. Далее, вам нужно создать новую ветку.
|
||||
|
||||
Работа в отдельной ветке для каждой отдельной проблемы помогает поддерживать чистоту локальной рабочей копии. Вы никогда не должны работать в `master`. Это испортит вашу копию freeCodeCamp, и вам, возможно, придется начать все сначала со свежего клона или форка.
|
||||
|
||||
Убедитесь, что вы находитесь в `master`, как объяснялось ранее, и сделайте новую ветку от неё:
|
||||
|
||||
```shell
|
||||
git checkout -b fix/update-guide-for-xyz
|
||||
```
|
||||
|
||||
Ваше имя ветки должно начаться с `fix/`, `feat/` и т. д. Избегайте использования номеров вопросов в ветках. Держите их короткими, значимыми и уникальными.
|
||||
|
||||
Вот некоторые примеры хороших имен:
|
||||
|
||||
```md
|
||||
fix/update-challenges-for-react
|
||||
fix/update-guide-for-html-css
|
||||
fix/platform-bug-sign-in-issues
|
||||
feat/add-guide-article-for-javascript
|
||||
translate/add-spanish-basic-html
|
||||
```
|
||||
|
||||
4. Далее, вы можете работать на страницах редактирования и работы над кодом в вашем любимом текстовом редакторе.
|
||||
|
||||
5. После того, как вы будете довольны изменениями, необходимо запустить freeCodeCamp локально для предварительного просмотра изменений.
|
||||
|
||||
6. Обязательно исправьте ошибки и проверьте форматирование ваших изменений. У нас есть руководство по стилю для статей руководства и проблем с кодом.
|
||||
|
||||
7. Затем проверьте и подтвердите файлы, которые вы обновляете:
|
||||
|
||||
```shell
|
||||
git status
|
||||
```
|
||||
|
||||
Должен показаться список неиндексированных файлов, которые вы редактировали.
|
||||
|
||||
```shell
|
||||
On branch feat/documentation
|
||||
Your branch is up to date with 'upstream/feat/documentation'.
|
||||
|
||||
Changes not staged for commit:
|
||||
(use "git add/rm <file>..." to update what will be committed)
|
||||
(use "git checkout -- <file>..." to discard changes in working directory)
|
||||
|
||||
modified: CONTRIBUTING.md
|
||||
modified: docs/README.md
|
||||
modified: docs/how-to-setup-freecodecamp-locally.md
|
||||
modified: docs/how-to-work-on-guide-articles.md
|
||||
...
|
||||
```
|
||||
|
||||
8. Подготовьте изменения и сделайте коммит.
|
||||
|
||||
На этом шаге необходимо отметить только файлы, которые были отредактированы или добавлены. Можно выполнить сброс и разрешить файлы, которые не предполагалось изменять:
|
||||
|
||||
```shell
|
||||
git add path/to/my/changed/file.ext
|
||||
```
|
||||
|
||||
Или же можно добавить все `неиндексированные` файлы в индексацию:
|
||||
|
||||
```shell
|
||||
git add .
|
||||
```
|
||||
|
||||
При фиксации будут добавлены только файлы, имеющие индексацию:
|
||||
|
||||
```shell
|
||||
git status
|
||||
```
|
||||
|
||||
Вывод:
|
||||
```shell
|
||||
On branch feat/documentation
|
||||
Your branch is up to date with 'upstream/feat/documentation'.
|
||||
|
||||
Changes to be committed:
|
||||
(use "git reset HEAD <file>..." to unstage)
|
||||
|
||||
modified: CONTRIBUTING.md
|
||||
modified: docs/README.md
|
||||
modified: docs/how-to-setup-freecodecamp-locally.md
|
||||
modified: docs/how-to-work-on-guide-articles.md
|
||||
```
|
||||
|
||||
Теперь вы можете зафиксировать изменения с помощью короткого сообщения:
|
||||
|
||||
```shell
|
||||
git commit -m "fix: my short commit message"
|
||||
```
|
||||
|
||||
Примеры:
|
||||
|
||||
```md
|
||||
fix: update guide article for Java - for loop
|
||||
feat: add guide article for alexa skills
|
||||
```
|
||||
|
||||
Не обязательно:
|
||||
|
||||
Мы настоятельно рекомендуем делать обычное название коммитов. Это хорошая практика, которую вы увидите в некоторых популярных репозиториях с открытым исходным кодом. Как разработчика, это побуждает вас следовать стандартным практикам.
|
||||
|
||||
Примеры стандартных названий коммитов:
|
||||
|
||||
```md
|
||||
fix: update HTML guide article
|
||||
fix: update build scripts for Travis-CI
|
||||
feat: add article for JavaScript hoisting
|
||||
docs: update contributing guidelines
|
||||
```
|
||||
|
||||
Делайте их короткими, не более 50 символов. Вы всегда можете добавить дополнительную информацию в описании коммита.
|
||||
|
||||
Это не займет больше времени, чем нетрадиционное сообщение типа 'update file' или 'add index.md'
|
||||
|
||||
Вы можете узнать больше об [именовании коммитов здесь](https://www.conventionalcommits.org/en/v1.0.0-beta.2/#why-use-conventional-commits).
|
||||
|
||||
9. Если вы понимаете, что вам нужно отредактировать файл или обновить название коммита во время фиксации, вы можете сделать это после редактирования файлов с помощью:
|
||||
|
||||
```shell
|
||||
git commit --amend
|
||||
```
|
||||
|
||||
Это откроет текстовый редактор по умолчанию, такой как `nano` или `vi`, где вы можете редактировать название коммита и добавлять/редактировать описание.
|
||||
|
||||
10. Далее, вам нужно добавить ваши изменения в ваш репозиторий
|
||||
|
||||
```shell
|
||||
git push origin branch/name-here
|
||||
```
|
||||
|
||||
## Создание пулл реквеста (PR)
|
||||
|
||||
1. После фиксации изменений вам будет предложено создать пулл реквест на странице GitHub вашего форка.
|
||||
|
||||

|
||||
|
||||
2. По умолчанию все пулл реквесты должны быть созданы в главный репозиторий freeCodeCamp, в ветку `master`.
|
||||
|
||||
Убедитесь, что **base fork:** `freeCodeCamp/freeCodeCamp` при создании пулл реквеста
|
||||
|
||||

|
||||
|
||||
3. Отправьте пулл реквест из вашей ветки в ветку `master` freeCodeCamp
|
||||
|
||||
4. В теле PR включают более подробное описание того, что было изменено и почему.
|
||||
|
||||
- Вам будет представлен шаблон пулл реквеста. Это контрольный список, который необходимо было выполнить перед открытием PR на добавление внесенных изменений.
|
||||
|
||||
- Заполните этот шаблон. Эта информация будет рассмотрена и повлияет на то, будет ли ваш пулл реквест принят.
|
||||
|
||||
- Если PR предназначен для исправления существующей ошибки/проблемы, то в конце вашего PR добавьте ключевое слово `closes` и #xxxx (где xxxx это номер проблемы). Например: `closes #1337`. Это укажет GitHub автоматически закрыть существующую проблему, если PR принят и объединён.
|
||||
|
||||
5. Укажите, тестировались ли вы на локальной копии сайта или нет.
|
||||
|
||||
- Это очень важно при внесении изменений, которые не редактируют markdown файлы. Например, изменения в CSS или JavaScript, и т. д.
|
||||
|
||||
## Ваш PR принят
|
||||
|
||||
## Получить помощь
|
||||
|
||||
Если вы застряли и вам нужна помощь, сообщите нам об этом, спросив в [категории 'участники' на нашем форуме](https://forum.freecodecamp.org/c/contributors) или в [чате участников](https://gitter.im/FreeCodeCamp/Contributors) на Gitter.
|
||||
|
||||
Может возникнуть ошибка в консоли браузера или в Bash/терминале/командной строке, которая поможет определить проблему.
|
||||
|
||||
### Устранение неисправностей
|
||||
|
||||
Если приложение запускается, но возникают ошибки с самим пользовательским интерфейсом, например, если шрифты не загружаются или если редактор кода отображается неправильно, можно попробовать следующие действия по устранению неполадок:
|
||||
|
||||
```shell
|
||||
# Удалить все установленные NPM пакеты
|
||||
rm -rf node_modules ./**/node_modules
|
||||
|
||||
# Переустановить NPM пакеты
|
||||
npm install
|
||||
|
||||
# Загрузить проект
|
||||
npm run bootstrap
|
||||
|
||||
# Заполнить базу данных
|
||||
npm run seed
|
||||
|
||||
# Перезапустить приложение
|
||||
npm run develop
|
||||
```
|
@ -1,98 +0,0 @@
|
||||
<!-- do not translate this -->
|
||||
| [Read these guidelines in other languages](/docs/i18n-languages) |
|
||||
|-|
|
||||
<!-- do not translate this -->
|
||||
|
||||
# Как работать над задачами по разработке
|
||||
|
||||
### Изменения на GitHub
|
||||
|
||||
Каждая задача хранится в собственном файле разметки. Это упрощает редактирование задач прямо из GitHub.
|
||||
|
||||
Вы можете сделать изменения без каких-либо операций в вашей локальной системе.
|
||||
|
||||
После того, как вы найдете файл, который хотите изменить в интерфейсе GitHub, щелкните значок карандаша, чтобы начать редактирование файла. Это автоматически создаст форк проекта, если у вас его еще нет.
|
||||
|
||||
Вы также можете клонировать проект и редактировать локально на своем компьютере. Для получения помощи, прочитайте [гайд для содействующих](/CONTRIBUTING.md).
|
||||
|
||||
### Шаблон задачи
|
||||
|
||||
Вот шаблон того, как выглядят файлы разметки задачи.
|
||||
|
||||
````md
|
||||
---
|
||||
id: Уникальный идентификатор (алфавитно-цифровой, MongoDB _id)
|
||||
title: Название задачи
|
||||
challengeType: 0
|
||||
guideUrl: 'url статьи руководства'
|
||||
videoUrl: 'url видео объяснения'
|
||||
---
|
||||
|
||||
## Описание
|
||||
<section id='description'>
|
||||
Описание задачи и того, что требуется для прохождения.
|
||||
</section>
|
||||
|
||||
## Инструкции
|
||||
<section id='instructions'>
|
||||
Инструкции о том, что именно нужно сделать.
|
||||
</section>
|
||||
## Тесты
|
||||
<section id='tests'>
|
||||
|
||||
``` yml
|
||||
- text: Должен возвращать "foo".
|
||||
testString: 'Строковая функция с использованием Chai'
|
||||
```
|
||||
|
||||
</section>
|
||||
|
||||
<div id='js-seed'>
|
||||
|
||||
```js
|
||||
Код, по умолчанию отображаемый в редакторе.
|
||||
```
|
||||
|
||||
</div>
|
||||
|
||||
### Перед тестом
|
||||
<div id='js-setup'>
|
||||
|
||||
```js
|
||||
Код для настройки тестирования.
|
||||
```
|
||||
|
||||
</div>
|
||||
|
||||
</section>
|
||||
|
||||
### После теста
|
||||
<div id='js-teardown'>
|
||||
|
||||
```js
|
||||
Код для проверки - пройден ли тест.
|
||||
```
|
||||
|
||||
</div>
|
||||
|
||||
</section>
|
||||
|
||||
## Решение
|
||||
<section id='solution'>
|
||||
|
||||
```js
|
||||
Код решения задачи.
|
||||
```
|
||||
|
||||
</section>
|
||||
````
|
||||
|
||||
### Полезные ссылки
|
||||
|
||||
Создание и редактирование задач:
|
||||
|
||||
1. [Руководство по оформлению задач](style-guide-for-curriculum-challenges.md) - как создавать и оформлять задачи.
|
||||
|
||||
2. [Типы задач](https://github.com/freeCodeCamp/freeCodeCamp/blob/master/client/utils/challengeTypes.js#L1-L13) - что значит номер типа задачи (перечисление).
|
||||
|
||||
3. [Помощь FreeCodeCamp - Написание тестов для ES6 задач](https://www.youtube.com/watch?v=iOdD84OSfAE#t=2h49m55s) - видео [Ethan Arrowood](https://twitter.com/ArrowoodTech) как он внес свой вклад в старую версию учебного плана.
|
@ -1,140 +0,0 @@
|
||||
<!-- do not translate this -->
|
||||
| [Read these guidelines in other languages](/docs/i18n-languages) |
|
||||
|-|
|
||||
<!-- do not translate this -->
|
||||
|
||||
# Pautas de Contribución
|
||||
|
||||
¡Hola 👋!
|
||||
|
||||
freeCodeCamp.org es posible gracias a miles de voluntarios amables como tú. Estamos muy agradecidos por tus contribuciones y nos complace darte la bienvenida a bordo.
|
||||
|
||||
Cumplimos estrictamente nuestro ["Código de conducta"](https://www.freecodecamp.org/code-of-conduct). Tómate un momento para leerlo. Sólo son 196 palabras.
|
||||
|
||||
¡Feliz contribución 🎉!
|
||||
|
||||
## Aquí hay algunas formas divertidas en las que puedes ayudar:
|
||||
|
||||
Puedes optar por contribuir a cualquier área de tu interés:
|
||||
|
||||
1. [Contribuir a esta base de código abierto](#contribuye-a-esta-base-de-código-abierto). Ayúdanos a editar desafíos de código, o corrige errores en la plataforma de aprendizaje.
|
||||
|
||||
2. Ayuda a los campistas en nuestro [foro público](https://forum.freecodecamp.org/). [Responde a sus preguntas de código](https://forum.freecodecamp.org/?max_posts=1) o [aporta comentarios a sus proyectos](https://forum.freecodecamp.org/c/project-feedback?max_posts=1).
|
||||
|
||||
3. Ayúdanos a agregar subtítulos a los vídeos de nuestro [canal de YouTube](https://www.youtube.com/channel/UC8butISFwT-Wl7EV0hUK0BQ/videos).
|
||||
|
||||
## Contribuye a esta base de código abierto
|
||||
|
||||
Tenemos una gran base de código con miles de [Desafíos de Código](https://www.freecodecamp.org/learn/) y otro código fuente que conforma nuestra plataforma de aprendizaje.
|
||||
|
||||
### Crea, actualiza y corrige errores en nuestros desafíos de programacion
|
||||
|
||||
Todos nuestros desafíos de código son seleccionados por la comunidad, reuniendo el conocimiento experto de voluntarios como tú.
|
||||
|
||||
Puedes ayudar a expandirlos y a mejorar sus enunciados. También puedes actualizar las historias de usuario para explicar mejor el concepto, o eliminar las redundantes y mejorar las pruebas de los desafíos para que evalúen el código de forma más precisa.
|
||||
|
||||
**Si estás interesado en mejorar estos desafíos de código, aquí está [cómo trabajar en los desafíos de programación](/how-to-work-on-coding-challenges.md).**
|
||||
|
||||
### Ayúdanos a corregir errores en la plataforma de aprendizaje de freeCodeCamp
|
||||
|
||||
Nuestra plataforma de aprendizaje se ejecuta sobre una moderna pila de JavaScript. Tiene varios componentes, herramientas y bibliotecas, incluyendo pero no limitándose a Node.js, MongoDB, LoopBack, OAuth 2.0, React, Gatsby, Webpack, y más.
|
||||
|
||||
A grandes rasgos,
|
||||
|
||||
- Tenemos un servidor API basado en Node.js.
|
||||
- Un conjunto de aplicaciones cliente basadas en React.
|
||||
- Un _script_ que usamos para evaluar nuestros proyectos de _front-end_.
|
||||
|
||||
Contribuir a esto requiere cierto conocimiento de APIs, sintaxis ES6, y mucha curiosidad.
|
||||
|
||||
Básicamente, esperamos una familiaridad básica con algunas de las tecnologías, herramientas y bibliotecas mencionadas. Dicho esto, no es necesario que seas un experto en ellas para contribuir.
|
||||
|
||||
**Si quieres ayudarnos a mejorar nuestro código, puedes [configurar freeCodeCamp localmente](/how-to-setup-freecodecamp-locally.md) o usar Gitpod, un entorno de desarrollo _online_ gratuito.**
|
||||
|
||||
[](https://gitpod.io/#https://github.com/freeCodeCamp/freeCodeCamp)
|
||||
|
||||
(Inicia un entorno de desarrollo para freeCodeCamp preparado para trabajar en tu navegador.)
|
||||
|
||||
## Preguntas frecuentes
|
||||
|
||||
### ¿Dónde están los artígulos de Guía (guide.freecodecamp.org)? ¿Cómo puedo contribuir a ellos?
|
||||
|
||||
Ya no tendremos artículos generales de guía. En lugar de eso planeamos publicar estas guías como tutoriales seleccionados por el equipo editorial. Estos tutoriales podrán ser publicados por el equipo en las _Developer News_.
|
||||
|
||||
### ¿Puedo traducir el contenido de freeCodeCamp?
|
||||
|
||||
Tenemos la intención de tener el contenido disponible en más idiomas, ahora mismo no tenemos una planificación para ello.
|
||||
|
||||
Comenzaremos por tener el contenido disponible en Chino. Esto nos permitirá entender las particularidades y homogeneizar los flujos de trabajo del desarrollo. China es una de las regiones demográficas más grandes en cuanto a nuestra audiencia no inglesa. Es por tanto una candidata ideal para la internacionalización (i18n). Ahora mismo tenemos cientos de miles de usuarios usando una versión antigua de la plataforma.
|
||||
|
||||
Los siguientes idiomas serán el *Árabe, Español, Portugués y Ruso* sin un orden particular. Para el Portugués y el Español nos centraremos en América Latina como la región demográfica objetivo basado en la audiencia que tenemos.
|
||||
|
||||
Aunque puedes trabajar en las traducciones, no podemos lanzarlas hasta más adelante, sin contar con la versión china que está planeada inicialmente para lanzarse a principios de 2020.
|
||||
|
||||
**Podríamos** aceptar _pull requests_ (solo traducciones humanas de buena calidad), analizadas caso por caso.
|
||||
|
||||
### ¿Puedo traducir la documentación de la base de código de freeCodeCamp?
|
||||
|
||||
Te invitamos a traducir la documentación de la base de código de freeCodeCamp a cualquier idioma de tu elección y actualizar las guías traducidas hasta el momento.
|
||||
|
||||
### ¿Cómo puedo reportar un error que no está publicado?
|
||||
|
||||
Si crees que has encontrado un error, primero lee el artículo ["Ayuda, he encontrado un error"](https://forum.freecodecamp.org/t/how-to-report-a-bug/19543) y sigue las instrucciones.
|
||||
|
||||
Si estás seguro de que es un error nuevo, siga adelante y crea un nuevo problema o _Issue_ en GitHub. Asegúrate de incluir la mayor cantidad de información posible para que podamos reproducir el error.
|
||||
|
||||
Ten en cuenta que cualquier problema que se registre para resolver dudas sobre el código de un desafío se cerrará. El seguimiento de problemas es estrictamente para los temas y discusiones relacionadas con la base de código. Si tienes alguna duda, puedes [buscar ayuda en el foro](https://forum.freecodecamp.org) antes de reportar un problema.
|
||||
|
||||
### ¿Cómo puedo reportar un problema de seguridad?
|
||||
|
||||
Por favor, no crees _issues_ de GitHub para problemas de seguridad. En su lugar, envía un correo electrónico a `security@freecodecamp.org` y lo veremos de inmediato.
|
||||
|
||||
### ¿Qué significan las diferentes etiquetas que aparecen en los problemas?
|
||||
|
||||
Los moderadores de nuestra comunidad [evalúan](https://en.wikipedia.org/wiki/Software_bug#Bug_management) _issues_ y _pull requests_ y los clasifican según la prioridad, la gravedad y otros factores. Puedes [encontrar un glosario completo de sus significados aquí](https://github.com/freecodecamp/freecodecamp/labels).
|
||||
|
||||
Debes buscar los problemas con las etiquetas [**`help wanted`**](https://github.com/freeCodeCamp/freeCodeCamp/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22) o [**`first timers only`**](https://github.com/freeCodeCamp/freeCodeCamp/issues?q=is%3Aopen+is%3Aissue+label%3A%22first+timers+only%22) para localizar rápidamente lo que está disponible para que trabajes.
|
||||
|
||||
Estos están libres para todos y no necesitan permisos antes de trabajar en ellos. Si estos temas no dejan claro lo que se debe hacer no dudes en preguntar en los comentarios.
|
||||
|
||||
### Encontré un error tipográfico, ¿debo crear un _issue_ antes de poder hacer un _Pull Request_?
|
||||
|
||||
Para los errores tipográficos y otros cambios de redacción, puedes abrir directamente los pull request sin crear primero un _issue_. Los _issues_ son más bien para discutir problemas más grandes asociados con el código, o aspectos más estructurales del contenido.
|
||||
|
||||
### ¿Cómo me pueden asignar un problema o _issue_?
|
||||
|
||||
Normalmente no asignamos problemas a nadie excepto a colaboradores veteranos para evitar ausencias que dejen estos problemas sin resolver. En su lugar, nos adherimos a la siguiente política para ser justos con todo el mundo:
|
||||
|
||||
1. El primer _pull request_ para un _issue_ es el preferente para ser integrado.
|
||||
2. En caso de múltiples _pull requests_ para el mismo problema, damos prioridad a la calidad del código del _PR_.
|
||||
- ¿Has incluido tests?
|
||||
- ¿Tuviste en cuenta todos los casos de uso?
|
||||
- ¿Te aseguraste de que todos los tests pasaran, y confirmaste que todo funcionaba localmente?
|
||||
3. Finalmente, damos preferencia a _pull requests_ que siguen nuestras recomendaciones.
|
||||
- ¿Seguiste la lista de tareas para el _pull request_?
|
||||
- ¿Le has puesto un título significativo?
|
||||
|
||||
No necesitas permiso para _issues_ que estén marcados con `help wanted` o `first timers only` como se explicó anteriormente. Sigue las recomendaciones con cuidado y abre el _pull request_.
|
||||
|
||||
### Soy nuevo en GitHub y en Open Source en general
|
||||
|
||||
Lee nuestra [Guía de cómo contribuir al código abierto](https://github.com/freeCodeCamp/how-to-contribute-to-open-source/blob/master/README-ES.md).
|
||||
|
||||
### Estoy atascado en algo que no está en esta documentación. ¿Cómo puedo obtener ayuda?
|
||||
|
||||
No dudes en pedir ayuda en:
|
||||
|
||||
- [La categoría "Colaboradores" en nuestro foro público](https://forum.freecodecamp.org/c/contributors).
|
||||
- [La sala de chat de nuestros colaboradores públicos en Gitter](https://gitter.im/FreeCodeCamp/Contributors).
|
||||
|
||||
Nos emociona ayudarte a contribuir con cualquiera de los temas en los que te gustaría trabajar. Te invitamos a hacernos preguntas en el hilo del problema, y estaremos encantados de aclarar cualquier cosa. Asegúrate de buscar tu consulta antes de publicar una nueva. Sé educado y paciente. Nuestros voluntarios y moderadores de la comunidad están siempre alrededor para guiarte a través de tus consultas.
|
||||
|
||||
Si tienes dudas, puedes contactar con nuestro equipo de desarrollo de plataforma para ayudarte con ello:
|
||||
|
||||
| Name | GitHub | Twitter |
|
||||
|:----------------|:-------|:--------|
|
||||
| Mrugesh Mohapatra | [`@raisedadead`](https://github.com/raisedadead) | [`@raisedadead`](https://twitter.com/raisedadead)|
|
||||
| Ahmad Abdolsaheb | [`@ahmadabdolsaheb`](https://github.com/ahmadabdolsaheb) | [`@Abdolsaheb`](https://twitter.com/Abdolsaheb) |
|
||||
| Kristofer Koishigawa | [`@scissorsneedfoodtoo`](https://github.com/scissorsneedfoodtoo) | [`@kriskoishigawa`](https://twitter.com/kriskoishigawa) |
|
||||
|
||||
> **Email: `dev@freecodecamp.org`**
|
@ -1,155 +0,0 @@
|
||||

|
||||
[](https://travis-ci.org/freeCodeCamp/freeCodeCamp)
|
||||
[](http://makeapullrequest.com)
|
||||
[](http://www.firsttimersonly.com/)
|
||||
[](https://www.codetriage.com/freecodecamp/freecodecamp)
|
||||
|
||||
## ¡Bienvenido al plan de estudios y repositorio público de freeCodeCamp.org!
|
||||
|
||||
[freeCodeCamp.org](https://www.freecodecamp.org) es una comunidad amigable donde puedes aprender a programar gratis. Esta es administrada por una organización sin fines de lucro respaldada por donantes ([donor-supported 501(c)(3) nonprofit](https://donate.freecodecamp.org)) y cuyo objetivo es ayudar a millones de adultos en la transición laboral a campos vinculados con la tecnología. Nuestra comunidad ya ha ayudado a más de 10.000 personas a obtener su primer trabajo como desarrolladores.
|
||||
|
||||
Nuestro plan de estudios de desarrollo web full-stack es completamente gratuito y cada uno puede hacerlo a su propio ritmo. Tenemos miles de desafíos inteactivos de programación para ayudarte a expandir tus habilidades.
|
||||
|
||||
## Tabla de Contenidos
|
||||
|
||||
* [Certificaciones](#certificaciones)
|
||||
* [La plataforma de aprendizaje](#la-plataforma-de-aprendizaje)
|
||||
* [Informar de Bugs y problemas](#Informar-fallos-y-problemas)
|
||||
* [Encontraste un problema de seguridad](#Informar-problemas-de-seguridad)
|
||||
* [Contribuciones](#contribuciones)
|
||||
* [Plataforma, Creación y Estado de Desarrollo](#plataforma-creación-y-estado-de-desarrollo)
|
||||
* [Licencia](#licencia)
|
||||
|
||||
### Certificaciones
|
||||
|
||||
freeCodeCamp.org ofrece varias certificaciones de desarrollador web gratuitas. Cada una implica desarrollar 5 proyectos de aplicaciones web, junto con cientos de desafíos de programación optativos que ayudan a prepararte para dichos proyectos. Estimamos que a un programador principiante, cada certificación le llevará alrededor de 300 horas.
|
||||
|
||||
Cada uno de estos 30 proyectos del plan de estudios de freeCodeCamp.org tiene sus propias historias de usuario ágiles y tests automatizados. Éstos te ayudan a construir tu proyecto de forma incremental y garantizan que hayas cumplido con todas las historias de usuario antes de enviarlo.
|
||||
|
||||
Puedes hacer un pull de estos test desde [freeCodeCamp's CDN](https://cdn.freecodecamp.org/testable-projects-fcc/v1/bundle.js). Esto significa que puedes construir dichos proyectos en sitios web como CodePen y Glitch - o incluso localmente en tu computadora.
|
||||
|
||||
Una vez que hayas conseguido una certificación, siempre la tendrás. Siempre tendrás permitido agregar el link a ella desde tu LinkedIn o tu CV. Y cuando tus futuros empleadores o clientes hagan click en ese link, verán tu certificación verificada.
|
||||
|
||||
La única excepción a esto es en caso en que descubramos una violación a nuestras [Políticas de Honestidad Académica](https://www.freecodecamp.org/academic-honesty). Si descubrimos que una persona ha plagiado inequivocamente (presentando el código o los proyectos de otras personas como si fueran suyos sin citación), hacemos lo que deben hacer todas las instituciones de aprendizaje rigurosas: revocamos sus certificaciones y prohibimos el acceso a esas personas.
|
||||
|
||||
Éstas son nuestras seis principales certificaciones:
|
||||
|
||||
#### 1. Certificación de Diseño Web Responsive
|
||||
|
||||
- [Basic HTML and HTML5](https://learn.freecodecamp.org/responsive-web-design/basic-html-and-html5)
|
||||
- [Basic CSS](https://learn.freecodecamp.org/responsive-web-design/basic-css)
|
||||
- [Applied Visual Design](https://learn.freecodecamp.org/responsive-web-design/applied-visual-design)
|
||||
- [Applied Accessibility](https://learn.freecodecamp.org/responsive-web-design/applied-accessibility)
|
||||
- [Responsive Web Design Principles](https://learn.freecodecamp.org/responsive-web-design/responsive-web-design-principles)
|
||||
- [CSS Flexbox](https://learn.freecodecamp.org/responsive-web-design/css-flexbox)
|
||||
- [CSS Grid](https://learn.freecodecamp.org/responsive-web-design/css-grid)
|
||||
<br />
|
||||
<br />
|
||||
**Proyectos**: Tribute Page, Survey Form, Product Landing Page, Technical Documentation Page, Personal Portfolio Webpage
|
||||
|
||||
#### 2. Certificación de Algoritmos en JavaScript y Estructura de Datos
|
||||
|
||||
- [Basic JavaScript](https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/basic-javascript)
|
||||
- [ES6](https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/es6)
|
||||
- [Regular Expressions](https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/regular-expressions)
|
||||
- [Debugging](https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/debugging)
|
||||
- [Basic Data Structures](https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/basic-data-structures)
|
||||
- [Algorithm Scripting](https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/basic-algorithm-scripting)
|
||||
- [Object Oriented Programming](https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/object-oriented-programming)
|
||||
- [Functional Programming](https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/functional-programming)
|
||||
- [Intermediate Algorithm Scripting](https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/intermediate-algorithm-scripting)
|
||||
<br />
|
||||
<br />
|
||||
**Proyectos**: Palindrome Checker, Roman Numeral Converter, Caesar's Cipher, Telephone Number Validator, Cash Register
|
||||
|
||||
#### 3. Certificación de Librerías de Front End
|
||||
|
||||
- [Bootstrap](https://learn.freecodecamp.org/front-end-libraries/bootstrap)
|
||||
- [jQuery](https://learn.freecodecamp.org/front-end-libraries/jquery)
|
||||
- [Sass](https://learn.freecodecamp.org/front-end-libraries/sass)
|
||||
- [React](https://learn.freecodecamp.org/front-end-libraries/react)
|
||||
- [Redux](https://learn.freecodecamp.org/front-end-libraries/redux)
|
||||
- [React and Redux](https://learn.freecodecamp.org/front-end-libraries/react-and-redux)
|
||||
<br />
|
||||
<br />
|
||||
**Proyectos**: Random Quote Machine, Markdown Previewer, Drum Machine, JavaScript Calculator, 25 + 5 Clock
|
||||
|
||||
#### 4. Certificación de Visualización de Datos
|
||||
|
||||
- [Data Visualization with D3](https://learn.freecodecamp.org/data-visualization/data-visualization-with-d3)
|
||||
- [JSON APIs and Ajax](https://learn.freecodecamp.org/data-visualization/json-apis-and-ajax)
|
||||
<br />
|
||||
<br />
|
||||
**Proyectos**: Bar Chart, Scatterplot Graph, Heat Map, Choropleth Map, Treemap Diagram
|
||||
|
||||
#### 5. Certificación de APIs y Microservicios
|
||||
|
||||
- [Managing Packages with Npm](https://learn.freecodecamp.org/apis-and-microservices/managing-packages-with-npm)
|
||||
- [Basic Node and Express](https://learn.freecodecamp.org/apis-and-microservices/basic-node-and-express)
|
||||
- [MongoDB and Mongoose](https://learn.freecodecamp.org/apis-and-microservices/mongodb-and-mongoose)
|
||||
<br />
|
||||
<br />
|
||||
**Proyectos**: Timestamp Microservice, Request Header Parser, URL Shortener, Exercise Tracker, File Metadata Microservice
|
||||
|
||||
#### 6. Certificación de Seguridad Informática y Control de Calidad
|
||||
|
||||
- [Information Security with HelmetJS](https://learn.freecodecamp.org/information-security-and-quality-assurance/information-security-with-helmetjs)
|
||||
- [Quality Assurance and Testing with Chai](https://learn.freecodecamp.org/information-security-and-quality-assurance/quality-assurance-and-testing-with-chai)
|
||||
- [Advanced Node and Express](https://learn.freecodecamp.org/information-security-and-quality-assurance/advanced-node-and-express)
|
||||
<br />
|
||||
<br />
|
||||
**Proyectos**: Metric-Imperial Converter, Issue Tracker, Personal Library, Stock Price Checker, Anonymous Message Board
|
||||
|
||||
#### Certificación de Desarrollo Full Stack
|
||||
|
||||
Una vez que hayas obtenido las 6 de estas certificaciones,podrás reclamar tu certificación de Desarrollo Full Stack de freeCodeCamp.org. Esta última distinción significa que has completado aproximadamente 1.800 horas de programación con una amplia gama de herramientas de desarrollo web.
|
||||
|
||||
#### Certificaciones Legacy
|
||||
|
||||
Además contamos con 3 certificaciones legacy de nuestro plan de estudios del 2015, las cuales todavía se encuentran vigentes. Todos los proyectos requeridos para dichas certificaciones legacy permanecerán disponibles en freeCodeCamp.org.
|
||||
|
||||
- Certificación Legacy de Desarrollo Front End
|
||||
- Certificación Legacy de Visualización de Datos
|
||||
- Certificación Legacy de Desarrollo Back End
|
||||
|
||||
### La plataforma de aprendizaje
|
||||
|
||||
Este código está cobrando vida en [freeCodeCamp.org](https://www.freecodecamp.org).
|
||||
|
||||
Nuestra comunidad además cuenta con:
|
||||
|
||||
- Un [foro](https://forum.freecodecamp.org) donde a menudo puedes obtener ayuda en temas de programación o feedback sobre tus proyectos en cuestión de horas.
|
||||
- Un [canal de YouTube](https://youtube.com/freecodecamp) con cursos gratuitos sobre Python, SQL, Android, y una gran variedad de otras tecnologías.
|
||||
- Un [podcast](https://podcast.freecodecamp.org/) con noticias sobre tecnología e inspiradoras historias sobre programadores.
|
||||
- [Noticias sobre desarrollo](https://www.freecodecamp.org/news) publicaciones, gratis, codigo abierto, sin publicidad donde podrás subir artículos de tu blog.
|
||||
|
||||
|
||||
### [Unite a nuestra comunidad aquí](https://www.freecodecamp.org/signin).
|
||||
|
||||
### Informar fallos y problemas
|
||||
|
||||
Si piensas que encontraste un fallo, primero lee [How to Report a Bug](https://forum.freecodecamp.org/t/how-to-report-a-bug/19543) y sigue las instrucciones.
|
||||
|
||||
Si estás seguro de que es un fallo nuevo y has confirmado que afecta a otras personas, continúa y crea un ticket en GitHub. Asegúrate de incluir tanta información como sea posible para poder reproducir el fallo.
|
||||
|
||||
### Informar problemas de seguridad
|
||||
|
||||
Si crees haber encontrado una vulnerabilidad, por favor, avisanos de manera responsable. No crees un ticket en GitHub para problemas de seguridad. En lugar de ello, envía un correo electrónico a `security @ freecodecamp.org` y lo veremos de inmediato.
|
||||
|
||||
### Contribuciones
|
||||
|
||||
> ### [Por favor seguir los siguientes pasos para contribuir.](CONTRIBUTING.md)
|
||||
|
||||
|
||||
### Plataforma, Creación y Estado de Desarrollo
|
||||
|
||||
El estado general de la plataforma para todas nuestras aplicaciones está disponible en [`status.freecodecamp.org`](https://status.freecodecamp.org).El estado de creación y desarrollo para el código está disponible en [nuestra Guía de DevOps](/docs/devops.md).
|
||||
|
||||
### Licencia
|
||||
|
||||
Copyright © 2020 freeCodeCamp.org
|
||||
|
||||
El contenido de este repositorio está sujeto a las siguientes licencias:
|
||||
|
||||
- Los recursos de software se encuentran registrados bajo la licencia [BSD-3-Clause](LICENSE.md).
|
||||
- Los recursos de aprendizaje en las carpetas [`/curriculum`](/curriculum) y [`/guide`](/guide) incluyendo sus subcarpetas se encuentran registrados bajo la licencia [CC-BY-SA-4.0](/curriculum/LICENSE.md).
|
@ -1,42 +0,0 @@
|
||||
<!-- do not translate this -->
|
||||
| [Read these guidelines in other languages](/docs/i18n-languages) |
|
||||
|-|
|
||||
<!-- do not translate this -->
|
||||
|
||||
# Documentación de referencia rápida
|
||||
|
||||
¡Hola 👋 !
|
||||
|
||||
Este directorio contiene toda la documentación sobre cómo contribuir a freeCodeCamp.org
|
||||
|
||||
|
||||
## [Si estás empezando, comienza por leer esto primero.](/CONTRIBUTING.md)
|
||||
|
||||
---
|
||||
|
||||
## Artículos de referencia rápida
|
||||
|
||||
1. Cómo trabajar en las Guías
|
||||
2. Cómo trabajar en los Desafíos de programación.
|
||||
3. Cómo instalar freeCodeCamp en local.
|
||||
4. Cómo capturar los email salientes en local.
|
||||
|
||||
## Guías de estilo
|
||||
|
||||
1. Guía de estilo sobre cómo crear Guías.
|
||||
2. Guía de estilo sobre cómo crear Desafíos de programación.
|
||||
|
||||
## Referencia rápida de comandos para trabajar en local
|
||||
|
||||
Una referencia rápida de los comandos que necesitarás cuando trabajes en local.
|
||||
|
||||
| comando | descripción |
|
||||
| ------- | ----------- |
|
||||
| `npm run bootstrap` | Inicia los diferentes servicios |
|
||||
| `npm run seed` | Parsea los archivos con el markdown de los desafíos y los inserta en MongoDB. |
|
||||
| `npm run develop` | Arranca el Servidor de la API freeCodeCamp y las Aplicaciones Cliente |
|
||||
| `npm test` | Ejecuta todo los test JS en el sistema, incluyendo los tests de cliente, servidor, lint y desafíos |
|
||||
| `npm run test:client` | Ejecuta los tests del cliente |
|
||||
| `npm run test:curriculum` | Ejecuta los tests del curriculum |
|
||||
| `npm run test:server` | Ejecuta los tests del servidor |
|
||||
| `npm run commit` | Herramienta interactiva que ayuda a crear un buen mensaje para el commit |
|
@ -1,106 +0,0 @@
|
||||
<!-- do not translate this -->
|
||||
| [Read these guidelines in other languages](/docs/i18n-languages) |
|
||||
|-|
|
||||
<!-- do not translate this -->
|
||||
|
||||
# Como trabajar con correos salientes localmente (para flujos de trabajo de correo electrónico)
|
||||
|
||||
> **Nota:** Este es un paso **Opcional** - Solo es requerido cuando trabajamos con flujos de trabajo de correo electrónico
|
||||
|
||||
## Introducción
|
||||
|
||||
Algunos flujos de trabajo de correo electrónico, como actualizar el correo electrónico de un usuario, requieren que la API del servidor back-end envíe correos electrónicos. Durante el proceso de desarrollo podemos usar una herramienta para obtenerlos localmente, en lugar de tener que usar un proveedor de correo electrónico y enviar un correo electrónico real. **MailHog** es una de las muchas herramientas de prueba de correo electrónico para desarrolladores, que detectará los correos electrónicos que envíe tu instancia local de freeCodeCamp.
|
||||
|
||||
|
||||
## Instalando MailHog
|
||||
|
||||
El proceso para instalar y usar MailHog depende de tu sistema operativo
|
||||
|
||||
- [Instalando MailHog en macOS](#instalando-mailhog-en-macos)
|
||||
- [Instalando MailHog en Windows](#instalando-mailhog-en-windows)
|
||||
- [Instalando MailHog en Linux](#instalando-mailhog-en-linux)
|
||||
|
||||
### Instalando MailHog en MacOS
|
||||
|
||||
Aquí podemos ver cómo instalar MailHog en macOS con [Homebrew](https://brew.sh/):
|
||||
|
||||
|
||||
```bash
|
||||
brew install mailhog
|
||||
brew services start mailhog
|
||||
```
|
||||
|
||||
Esto iniciará un servicio de MailHog en segundo plano.
|
||||
|
||||
Siguiente, puedes ir a [usando MailHog](#usando-mailhog).
|
||||
|
||||
### Instalando MailHog en Windows
|
||||
|
||||
Descarga la versión más reciente de MailHog en [el repositorio oficial](https://github.com/mailhog/MailHog/releases). Clic en el link dependiendo de tu versión de Windows (32 ó 64 bit) y el archivo .exe será descargado a tu computadora.
|
||||
|
||||
Una vez que termine la descarga, haz clic en el archivo. Probablemente recibirás una notificación del firewall de Windows donde tendrás que permitir el acceso a MailHog. Una vez que lo hagas, se abrirá una línea de comando estándar de Windows con MailHog ya en ejecución.
|
||||
|
||||
Para cerrar MailHog, cierra el símbolo del sistema. Para volver a ejecutarlo, haz clic en el mismo archivo .exe. No necesitas descargar uno nuevo.
|
||||
|
||||
Siguiente, puedes ir a [usando MailHog](#usando-mailhog).
|
||||
|
||||
### Instalando MailHog en Linux
|
||||
|
||||
Primero debes instalar [Go](https://golang.org).
|
||||
|
||||
Para sistemas basados en Debian como Ubuntu y Linux Mint, ejecuta en la terminal:
|
||||
|
||||
```
|
||||
bash
|
||||
sudo apt-get install golang
|
||||
```
|
||||
|
||||
Para CentOS, Fedora, Red Hat Linux y otros sistemas basados en RPM, ejecuta en la terminal:
|
||||
|
||||
```bash
|
||||
sudo dnf install golang
|
||||
```
|
||||
|
||||
O:
|
||||
|
||||
```bash
|
||||
sudo yum install golang
|
||||
```
|
||||
|
||||
Establece la ruta de directorio para Go:
|
||||
|
||||
```bash
|
||||
echo "export GOPATH=$HOME/go" >> ~/.profile
|
||||
echo 'export PATH=$PATH:/usr/local/go/bin:$GOPATH/bin' >> ~/.profile
|
||||
source ~/.profile
|
||||
```
|
||||
|
||||
Finalmente, instala y corre MailHog:
|
||||
|
||||
```bash
|
||||
go get github.com/mailhog/MailHog
|
||||
sudo cp /home/$(whoami)/go/bin/MailHog /usr/local/bin/mailhog
|
||||
mailhog
|
||||
```
|
||||
|
||||
Siguiente, puedes ir a [usando MailHog](#usando-mailhog).
|
||||
|
||||
## Usando MailHog
|
||||
|
||||
Una vez que hayas instalado MailHog y lo hayas iniciado, debes abrir tu bandeja de entrada de MailHog en tu navegador, abriendo una nueva pestaña o ventana y navegar a [http://localhost:8025] (http://localhost:8025). Ahora deberías ver una pantalla como la siguiente:
|
||||
|
||||

|
||||
|
||||
Cuando la instalación de freeCodeCamp envíe un correo electrónico, verás que aparece aquí. Como se muestra en la siguiente imagen:
|
||||
|
||||

|
||||
|
||||
Abre el correo y verás dos pestañas donde puedes ver el contenido: **plain text** (texto sin formato) y **source** (fuente). Asegúrate de que estás en la pestaña de texto sin formato.
|
||||
|
||||

|
||||
|
||||
Cualquier enlace en el correo electrónico debe redireccionar.
|
||||
|
||||
## Enlaces útiles
|
||||
|
||||
- Para cualquier otra pregunta relacionada con MailHog o para obtener instrucciones sobre configuraciones personalizadas, consulte el repositorio de [MailHog](https://github.com/mailhog/MailHog).
|
@ -1,469 +0,0 @@
|
||||
<!-- do not translate this -->
|
||||
| [Read these guidelines in other languages](/docs/i18n-languages) |
|
||||
|-|
|
||||
<!-- do not translate this -->
|
||||
|
||||
# Configura freeCodeCamp localmente en tu sistema
|
||||
|
||||
Sigue esta guía para poder configurar freeCodeCamp localmente en tu sistema. Esto es altamente recomendable si quieres realizar contribuciones regularmente.
|
||||
|
||||
El flujo de trabajo de las contribuciones puede desear y mostrar vistas previas de las páginas para la guía o los desafíos de programación. La depuración o el arreglo de errores en la base de código requiere que tengamos freeCodeCamp ejecutándose de manera local.
|
||||
|
||||
## Como hacer Forking a un repositorio en GitHub
|
||||
|
||||
['Forking'](https://help.github.com/articles/about-forks/) es un paso donde obtienes tu propia copia del repositorio principal de freeCodeCamp (también conocido como _repo_) en GitHub.
|
||||
|
||||
Esto es esencial, porque de esta manera puedes trabajar en tu propia copia de freeCodeCamp en GitHub, o descargarla para trabajar con ella de manera local. Despues, podrias solicitar que los cambios sean extraídos al repositorio principal al realizar un _pull request_ o solicitud de cambio.
|
||||
|
||||
> **ProTip:**
|
||||
> El repositorio principal en https://github.com/freeCodeCamp/freeCodeCamp es a menudo referido como `upstream` repositorio. Tu fork en > https://github.com/YOUR_USER_NAME/freeCodeCamp es a menudo conocido como `origin` repositorio.
|
||||
|
||||
**Sigue estos pasos para hacer fork en el repositorio de `https://github.com/freeCodeCamp/freeCodeCamp`:**
|
||||
|
||||
1. Ve al repositorio de freeCodeCamp en GitHub: <https://github.com/freeCodeCamp/freeCodeCamp>
|
||||
2. Haga click en el botón "Fork" en la parte superior derecha de la interfaz ([mas detalles aquí](https://help.github.com/articles/fork-a-repo/))
|
||||
3. Despues serás llevado a tu copia de freeCodeCamp en `https://github.com/YOUR_USER_NAME/freeCodeCamp`
|
||||
|
||||

|
||||
|
||||
## Preparando el entorno de desarrollo
|
||||
|
||||
Una vez que tengas los requisitos previos instalados, necesitas preparar tu entorno de desarrollo. Esto es común para muchos flujos de trabajo, y tendrás que hacer esto solo una vez.
|
||||
|
||||
**Sigue estos pasos para tener tu entorno de desarrolloo listo:**
|
||||
|
||||
1. Instala [Git](https://git-scm.com/) o tu cliente favorito de Git, si tu no lo tienes aun. Actualiza a la ultima version, el que vino con tu OS se puede quedar obsoleto.
|
||||
|
||||
2. (Opcional pero recomendado) [Configura una SSH Key](https://help.github.com/articles/generating-an-ssh-key/) para GitHub.
|
||||
|
||||
3. Instala un editor de código de tu elección.
|
||||
|
||||
Nosotros recomendamos usar [VS Code](https://code.visualstudio.com/) o [Atom](https://atom.io/). Estos son unos grandes editores de código fuente libre.
|
||||
|
||||
4. Configuración de linting para su editor de códigos.
|
||||
|
||||
Tu deberías tener [ESLint corriendo en tu editor](http://eslint.org/docs/user-guide/integrations.html), y destacará cualquier cosa que no cumpla con [freeCodeCamp's JavaScript Style Guide](http://forum.freecodecamp.org/t/free-code-camp-javascript-style-guide/19121).
|
||||
|
||||
> Por favor no ignore nigun error linting. Están destinados a **ayudarte** y asegurar una base de código limpio y simple.
|
||||
|
||||
## Clona tu copia de freeCodeCamp
|
||||
|
||||
['Cloning'](https://help.github.com/articles/cloning-a-repository/) es un paso donde tu **descargas** una copia del repositorio que es de tu propiedad o de alguien de una localización `remota`. En tu caso, esta localización remota es tu `fork` del repositorio de freeCodeCamp, que debería estar disponible en `https://github.com/YOUR_USER_NAME/freeCodeCamp`.
|
||||
|
||||
Ejecuta estos comandos en tu maquina local:
|
||||
|
||||
1. Open a Terminal / Command Prompt / Bash Shell en tu directorio de proyectos
|
||||
|
||||
_por ejemplo: `/yourprojectdirectory/`_
|
||||
|
||||
2. Clona tu fork de freeCodeCamp, sustituyendo `YOUR_USER_NAME` con tu GitHub Username
|
||||
|
||||
```shell
|
||||
git clone https://github.com/YOUR_USER_NAME/freeCodeCamp.git
|
||||
```
|
||||
|
||||
Esto descargará el repositorio completo de freeCodeCamp a tu directorio de proyectos.
|
||||
|
||||
## Configurar un `upstream` al repositorio principal
|
||||
|
||||
Ahora que has descargado una copia de tu fork, necesitarás configurar un `upstream`.
|
||||
|
||||
Como se mencionó antes, el repositorio principal de `https://github.com/freeCodeCamp/freeCodeCamp` se denomina a menudo `upstream` repositorio. Tu fork de `https://github.com/YOUR_USER_NAME/freeCodeCamp` se denomina a menudo como `origin` repositorio.
|
||||
|
||||
Tiene que señalar su clon local al `upstream`, además de al `origin`. Esto es para que puedas sincronizar cambios del repositorio principal. De esta manera no tienes que pasar por el forcking y la clonación una y otra vez.
|
||||
|
||||
1. Cambiar el directorio al nuevo directorio de freeCodeCamp:
|
||||
|
||||
```shell
|
||||
cd freeCodeCamp
|
||||
```
|
||||
|
||||
2. Añadir un remoto al repositorio principal de freeCodeCamp:
|
||||
|
||||
```shell
|
||||
git remote add upstream https://github.com/freeCodeCamp/freeCodeCamp.git
|
||||
```
|
||||
|
||||
3. Comprueba que la configuración se ve bien para ti:
|
||||
|
||||
```shell
|
||||
git remote -v
|
||||
```
|
||||
|
||||
The output should be something like below:
|
||||
|
||||
```shell
|
||||
origin https://github.com/YOUR_USER_NAME/freeCodeCamp.git (fetch)
|
||||
origin https://github.com/YOUR_USER_NAME/freeCodeCamp.git (push)
|
||||
upstream https://github.com/freeCodeCamp/freeCodeCamp.git (fetch)
|
||||
upstream https://github.com/freeCodeCamp/freeCodeCamp.git (push)
|
||||
```
|
||||
|
||||
## Ejecutando freeCodeCamp localmente en tu maquina
|
||||
|
||||
Ahora que tienes una copia local de freeCodeCamp, puedes seguir estas instrucciones para conseguir que se ejecuten localmente. esto te ayudara:
|
||||
|
||||
- Vista previa de las modificaciones de las páginas tal como aparecería en la plataforma de aprendizaje.
|
||||
- Trabajo en cuestiones relacionadas con la UI y mejoras
|
||||
- Depurar y corregir problemas en los servidores de aplicaciones y aplicaciones de cliente
|
||||
|
||||
Puede omitir la ejecución de freeCodeCamp localmente, si se acaba de editar archivos, haciendo un `rebase` o resolviendo `merge` conflictos. Puedes volver siempre a esta parte de la instrucción mas adelante.
|
||||
|
||||
[Saltar la ejecución de freeCodeCamp localmete](#making-changes-to-your-clone-of-freecodecamp-locally)
|
||||
|
||||
### Instalando los requisitos previos
|
||||
|
||||
Empezar por la instalación de estos requisitos previos de software.
|
||||
|
||||
| Requisito previo | Version | Notes |
|
||||
| ------------------------------------------- | ------- | ----- |
|
||||
| [MongoDB Community Server](https://docs.mongodb.com/manual/administration/install-community/) | `3.6` | [Notas de versión](https://docs.mongodb.com/manual/release-notes/), Nota: Actualmente en `3.6`, un [upgrade is planned](https://github.com/freeCodeCamp/freeCodeCamp/issues/18275).
|
||||
| [Node.js](http://nodejs.org) | `8.x` | [LTS Schedule](https://github.com/nodejs/Release#release-schedule) |
|
||||
| npm (viene incluido con Node) | `6.x` | No tiene versiones LTS, utilizamos la versión integrada con el Nodo LTS |
|
||||
|
||||
**Importante:**
|
||||
|
||||
Le recomendamos actualizar a la última versión estable también conocido como Long Term Support (LTS).
|
||||
Si Node.js o MongoDB están ya instalados en tu máquina, ejecuta los siguinetes comandos para validar las versiones:
|
||||
|
||||
```shell
|
||||
node -v
|
||||
mongo --version
|
||||
npm -v
|
||||
```
|
||||
|
||||
> Si tienes una versión diferente, por favor instala la versión recomendada. Podemos apoyar problemas de instalación solo para las versiones recomendadas.
|
||||
|
||||
**Estoy teniendo problemas con la instalación de los requisitos previos recomendados. ¿Qué debería hacer?**
|
||||
|
||||
Nosotros regularmente desarrollamos en populares y últimos sistemas operativos como macOS 10.12 o posteriores, Ubuntu 16.04 o posteriores y Windows 10. Se recomienda la búsqueda de su problema específico en recursos como: Google, Stack Overflow o Stack Exchange. Posiblemente alguien se ha enfrentado al mismo problema y haya una respuesta a tu consulta.
|
||||
|
||||
Si estás en un sistema operativo difernte, y/o sigues teniendo problemas, intenta comunicarte con [contributors community on our public forum](https://www.freeCodeCamp.org/c/contributors) o la [Contributor's Chat room](https://gitter.im/freeCodeCamp/Contributors). Podemos ser capaces de solucionar algunos problemas comunes.
|
||||
|
||||
No podemos apoyarte en GitHub, porque los problemas de instalación de sofware estan mas allá del alcance de este proyecto.
|
||||
|
||||
### Instalando dependencias
|
||||
|
||||
Emepezar por instalar las dependencias necesarias para la aplicación al inicio.
|
||||
|
||||
```shell
|
||||
# Install NPM dependencies
|
||||
npm install
|
||||
```
|
||||
|
||||
Entonces tu necesitas añadir las variables de entorno privado (API Keys):
|
||||
|
||||
```shell
|
||||
# Crea una copia de "sample.env" y nombrala como ".env".
|
||||
# Rellena con la necesaria API keys y secrets:
|
||||
|
||||
# macOS / Linux
|
||||
cp sample.env .env
|
||||
|
||||
# Windows
|
||||
copy sample.env .env
|
||||
```
|
||||
|
||||
Las claves no son necesarias cambiarlas, para ejecutar la app localmente. Puedes dejar los valores por defecto de `sample.env` como están.
|
||||
|
||||
`MONGOHQ_URL` es la mas importante. A menos que tengas MongoDB ejecutando en una configuración diferente a la predeterminada, la URL en el `sample.env` debería funcionar bien.
|
||||
|
||||
Puedes dejar las otras claves como están.Ten en cuenta que si quiere usasr mas servicios tendrás que obtenertus propias claves API para esos servicios y editar esas entradas en el archivo `.env`.
|
||||
|
||||
Luego, arranque varios servicios, por ejemplo el api-server, el client UI application, etc. Tu puedes [aprender mas sobre estos servicios en esta guía](#).
|
||||
|
||||
Arrancando estas atando los vinculos entre los servicios. Ellos son semi-independientes. Quiere decir, en la producción de estos servicios se implementan a sus propias localizaciones, pero mientras se ejecutan localmente quieres que todos esten disponibles para ti.
|
||||
|
||||
```shell
|
||||
# Arranque todos los proyectos dentro de este repositorio
|
||||
npm run bootstrap
|
||||
```
|
||||
|
||||
### Empezar MongoDB
|
||||
|
||||
Necesitarás empezar MongoDB, antes de empezar la aplicación:
|
||||
|
||||
Empieza el MongoDB servidor en una terminal distinto
|
||||
|
||||
- En macOS & Ubuntu:
|
||||
|
||||
```shell
|
||||
mongod
|
||||
```
|
||||
|
||||
- En Windows, tienes que especificar el camino completo al binario `mongod`
|
||||
|
||||
Asegurate de reemplazar la `3.6` con la versión que tengas instalada
|
||||
|
||||
```shell
|
||||
"C:\Program Files\MongoDB\Server\3.6\bin\mongod"
|
||||
```
|
||||
|
||||
> ProTip:
|
||||
> Usted puede evitar tener que iniciar MongoDB cada vez, mediante la instalación como un servicio en segundo plano.
|
||||
> Puedes [aprender mas sobre ello en su documentación para tu SO](https://docs.mongodb.com/manual/administration/install-community/)
|
||||
|
||||
### La siembra de la base de datos
|
||||
|
||||
Siguiente, permite la semilla de la base de datos. En este paso, ejecutamos el siguiente comando que llenara el servidor MongoDB con algunos de los primeros conjuntos de datos que es requerido por los otros servicios. Esto incluye algunos de los esquemas, entre otras cosas.
|
||||
|
||||
```shell
|
||||
npm run seed
|
||||
```
|
||||
|
||||
### Comience la aplicación cliente de freeCodeCamp y el servidor API
|
||||
|
||||
Ahora puede arrancar el servidor API y la aplicación del cliente.
|
||||
|
||||
```shell
|
||||
npm run develop
|
||||
```
|
||||
|
||||
Este comando activará todos los servicios, incluyendo el servidor API y la aplicación del cliente, disponible para trabajar en el.
|
||||
|
||||
Ahora abre un navegador web y visita <http://localhost:8000>. Si la app carga, felicidades - ya está todo listo.
|
||||
|
||||
> ProTip:
|
||||
>
|
||||
> El servidor API sirve las APIs en `http://localhost:3000`
|
||||
> La Gatsby app sirve la aplicación en `http://localhost:8000`
|
||||
|
||||
Quiere decir que si tu visitas <http://localhost:3000/explorer> tu deberías ver las APIs que tu tienes.
|
||||
|
||||
Felicidades 🎉! Tu ahora tienes una copia completa de la plataforma de aprendizaje de freeCodeCamp ejecutandose en tu máquina local.
|
||||
|
||||
## Comandos rápidos de referencia cuando trabajas localmente
|
||||
|
||||
[Aqui hay una rápida referencia](/docs/README.md) a una lista de comandos que tu puedes necesitar localmente de vez en cuando:
|
||||
|
||||
## Realizar cambios a su copia local de freeCodeCamp
|
||||
|
||||
Siguiente, puedes haceer cambios a los archivos, y confirmar los cambios.
|
||||
|
||||
Sigue estos pasos:
|
||||
|
||||
1. Comprobar que está en la rama `master`
|
||||
|
||||
```shell
|
||||
git status
|
||||
```
|
||||
|
||||
Deberias obtener una salida como esta:
|
||||
|
||||
```shell
|
||||
On branch master
|
||||
Your branch is up-to-date with 'origin/master'.
|
||||
|
||||
nothing to commit, working directory clean
|
||||
```
|
||||
|
||||
Si no estás en el master o tu directorio de trabajo no esta limpio, resuelve cualquier expediente o comando pendiente y checkout `master`:
|
||||
|
||||
```shell
|
||||
git checkout master
|
||||
```
|
||||
|
||||
2. A continuación le gustaría hacer un `rebase` del `upstream`.
|
||||
|
||||
Este paso **sincronizará los últimos cambios** desde el repositorio principal de freeCodeCamp. Es importante que rebase tan a menudo como sea posible, para evitar conflictos posteriores.
|
||||
|
||||
```shell
|
||||
git pull --rebase upstream master
|
||||
```
|
||||
|
||||
Opcionalmente, se puede impulsar esta rama de vuelta a tu origen, para tener un historial limpio en tu fork en GitHub.
|
||||
|
||||
```shell
|
||||
git push origin master --force
|
||||
```
|
||||
|
||||
3. Siguiente, usted tendrá que crear una nueva rama.
|
||||
|
||||
Trabajando en una rama separada para cada cuestión, te ayuda a mantener tu copia de trabajo local limpia. Tu nunca debes tranbajar en el `master`. Esto ensuciará tu copia local de freeCodeCamp y puede que tengas que empezar de nuevo con una copia fresca del fork.
|
||||
|
||||
Comprueba que estas en `master` como se explica anteriormente, y ve construyendo desde ahí:
|
||||
|
||||
```shell
|
||||
git checkout -b fix/update-guide-for-xyz
|
||||
```
|
||||
|
||||
Tu nombre de rama deberá empezar con un `fix/`, `feat/`, etc. Evita el uso de la edición no.s en las ramas. Mantenlas cortas y únicas.
|
||||
|
||||
Algunos ejemplos de buenos nombres de rama son:
|
||||
|
||||
```md
|
||||
fix/update-challenges-for-react
|
||||
fix/update-guide-for-html-css
|
||||
fix/platform-bug-sign-in-issues
|
||||
feat/add-guide-article-for-javascript
|
||||
translate/add-spanish-basic-html
|
||||
```
|
||||
|
||||
4. A continuación puedes trabajar en la edición de páginas y en el código en su editor de texto favorito.
|
||||
|
||||
5. Una vez estés satisfecho con los cambios deberías opcionalmente ejecutar freeCodeCamp localmente para una vista previa de los cambios.
|
||||
|
||||
6. Asegúrese de corregir los errores, y el formateo de los cambios. Contamos con la guía de estilo para los artículos de guía y los We have style guide for the Guide articles y los desafios de codificación.
|
||||
|
||||
7. Siguiente, comprueba y confirma los archivos que estas actualizando
|
||||
|
||||
```shell
|
||||
git status
|
||||
```
|
||||
|
||||
Esto debería mostrar una lista de archivos `unstaged` que tu has editado.
|
||||
|
||||
```shell
|
||||
On branch feat/documentation
|
||||
Your branch is up to date with 'upstream/feat/documentation'.
|
||||
|
||||
Changes not staged for commit:
|
||||
(use "git add/rm <file>..." to update what will be committed)
|
||||
(use "git checkout -- <file>..." to discard changes in working directory)
|
||||
|
||||
modified: CONTRIBUTING.md
|
||||
modified: docs/README.md
|
||||
modified: docs/how-to-setup-freecodecamp-locally.md
|
||||
modified: docs/how-to-work-on-guide-articles.md
|
||||
...
|
||||
```
|
||||
|
||||
8. Fase de cambios y hacer un commit.
|
||||
|
||||
En este paso sólo debe marcar los archivos que has editado o añadido. Puede realizar un reinicio y resolver archivos que no desee cambiar.
|
||||
|
||||
```shell
|
||||
git add path/to/my/changed/file.ext
|
||||
```
|
||||
|
||||
O puede añadir alternativamente todos los archivos `unstaged` al area de preparación:
|
||||
|
||||
```shell
|
||||
git add .
|
||||
```
|
||||
|
||||
Solo los archivos que fueron movidos al area de preparación se añadirán cuando hagas un commit.
|
||||
|
||||
```shell
|
||||
git status
|
||||
```
|
||||
|
||||
Salida:
|
||||
```shell
|
||||
On branch feat/documentation
|
||||
Your branch is up to date with 'upstream/feat/documentation'.
|
||||
|
||||
Changes to be committed:
|
||||
(use "git reset HEAD <file>..." to unstage)
|
||||
|
||||
modified: CONTRIBUTING.md
|
||||
modified: docs/README.md
|
||||
modified: docs/how-to-setup-freecodecamp-locally.md
|
||||
modified: docs/how-to-work-on-guide-articles.md
|
||||
```
|
||||
|
||||
Ahora puedes hacer un commit a tus cambios con un mensaje corto como:
|
||||
|
||||
```shell
|
||||
git commit -m "fix: my short commit message"
|
||||
```
|
||||
|
||||
Algunos ejemplos:
|
||||
|
||||
```md
|
||||
fix: update guide article for Java - for loop
|
||||
feat: add guide article for alexa skills
|
||||
```
|
||||
|
||||
Opcional:
|
||||
|
||||
Es muy recomendable hacer un mensaje commit convencional. Esta es una buena práctica que tu verás en algunos de los mas populares repositorios de código abierto. Como desarrollador, esto te anima a seguir las prácticas estándar.
|
||||
|
||||
Algunos ejemplos de mensajes commit convencional son:
|
||||
|
||||
```md
|
||||
fix: update HTML guide article
|
||||
fix: update build scripts for Travis-CI
|
||||
feat: add article for JavaScript hoisting
|
||||
docs: update contributing guidelines
|
||||
```
|
||||
|
||||
Que sean cortos, no mas de 50 caracteres. Tu siempre puedes añadir información adicional en la descripción del mensaje commit.
|
||||
|
||||
Esto no toma más tiempo que un mensaje no convencional como 'update file' or 'add index.md'
|
||||
|
||||
Puedes aprender mas sobre porque deberías usar los commits convencionales [aquí](https://www.conventionalcommits.org/en/v1.0.0-beta.2/#why-use-conventional-commits).
|
||||
|
||||
9. Si te das cuenta que necesitas editar un archivo o actualizar el mensaje commit despues de hacer un commit puedes hacerlo después de la edición de archivos con:
|
||||
|
||||
```shell
|
||||
git commit --amend
|
||||
```
|
||||
|
||||
Esto abritá por defecto un editor de texto como `nano` o `vi` donde puedes editar el titulo del mensaje commit y añadir/editar la descripción.
|
||||
|
||||
10. Despues puedes subir los cambios a tu fork:
|
||||
|
||||
```shell
|
||||
git push origin branch/name-here
|
||||
```
|
||||
|
||||
## Proponiendo un Pull Request (PR)
|
||||
|
||||
1. Una vez que hayan sido editados, se le pedirá que cree una pull request en la página de github de su fork
|
||||
|
||||

|
||||
|
||||
2. Por defecto, todas las pull requests debe estar en contra del repositorio principal de freeCodeCamp, `master`.
|
||||
|
||||
asegurate que la base de tu fork está situado en freecodecamp/freecodecamp cuando se recurre a una Pull Request.**
|
||||
|
||||

|
||||
|
||||
3. Envíe la pull request de tu rama a la rama `master` de freeCodeCamp.
|
||||
|
||||
4. En el cuerpo de tu pull request un sumario detallado de los cambios que has hecho y porque.
|
||||
|
||||
- Serás presentado con un platilla de la pull request. Este es un cheklist que deberías seguir antes de abrir la pull request.
|
||||
|
||||
- Rellena los detalles que te parezcan adecuados. Esta información será revisada y decidiraán si tu pull request es aceptada o no.
|
||||
|
||||
- Si la pull request esta destinada a arreglar un bug/error existente entonces
|
||||
añade al final de la descripción la palabra clave `closes` y #xxxx (donde xxxx
|
||||
es el numero del error). Por ejemplo: `closes #1337`. Esto le dirá a GitHub que
|
||||
cierre automáticamente el error existente si la pull request es aceptada e incorporada.
|
||||
|
||||
5. Indica si has probado una copia local del sitio o no.
|
||||
|
||||
Es muy importante cuando hagas cambios que no sean copias editadas de los archivos markdown. Por ejemplo, cambios a CSS o código JavaScript, etc.
|
||||
|
||||
## Ten tu pull request aceptada
|
||||
|
||||
|
||||
|
||||
## Para obtener ayuda
|
||||
|
||||
SI estás atascado y necesitas ayuda, haznoslo saber preguntando en ['Contributors' category on our forum](https://forum.freecodecamp.org/c/contributors) o en [Contributors chat room](https://gitter.im/FreeCodeCamp/Contributors) en Gitter.
|
||||
|
||||
Puede haber un error en la consola de tu navegador o en el Terminal / Linea de Comandos que te ayudará a identificar el problema.
|
||||
|
||||
### Resolución de problemas
|
||||
|
||||
Si la app arranca pero te estás encontrando errores con la misma UI, por ejemplo si las fuentes no se cargan o si el editor no se muestra correctamente, deberías intentar seguir los pasos de la resolución de problemas al menos una vez:
|
||||
|
||||
```shell
|
||||
# Remove all installed node modules
|
||||
rm -rf node_modules ./**/node_modules
|
||||
|
||||
# Reinstall npm packages
|
||||
npm install
|
||||
|
||||
# Bootstrap the project
|
||||
npm run bootstrap
|
||||
|
||||
# Seed the database
|
||||
npm run seed
|
||||
|
||||
# Re-start the application
|
||||
npm run develop
|
||||
```
|
@ -1,98 +0,0 @@
|
||||
<!-- do not translate this -->
|
||||
| [Read these guidelines in other languages](/docs/i18n-languages) |
|
||||
|-|
|
||||
<!-- do not translate this -->
|
||||
|
||||
# Cómo trabajar en los desafíos de programación
|
||||
|
||||
### Editando en GitHub
|
||||
|
||||
Cada desafío está almacenado en su propio archivo markdown. De esa forma resulta sencillo editar los desafíos directamente desde GitHub.
|
||||
|
||||
Puedes realizar los cambios sin tener que ejecutar nada desde tu sistema local.
|
||||
|
||||
Después de que encuentres el archivo que quieras modificar desde la interfaz de GitHub, haz clic en el icono de lápiz para comenzar a editar el archivo. Esto automáticamente creará una bifurcación del proyecto, si es que no tienes una todavía.
|
||||
|
||||
También puedes clonar el proyecto y editarlo de manera local en tu ordenador. Si necesitas ayuda al respecto, dale un vistazo a la [guía principal de contribución](/CONTRIBUTING.md).
|
||||
|
||||
### Patrón de los Desafíos.
|
||||
|
||||
He aquí un patrón de cómo se verán los archivos reduccion correspondientes a los desafíos.
|
||||
|
||||
````md
|
||||
---
|
||||
id: Identificador Único (alfanumérico, _id de MongoDB)
|
||||
title: Título del desafío
|
||||
challengeType: 0
|
||||
guideUrl: 'URL del artículo guía'
|
||||
videoUrl: 'URL del video explicatorio'
|
||||
---
|
||||
|
||||
## Descripción
|
||||
<section id='description'>
|
||||
Una descripción del desafío y de los requisitos aprobacion
|
||||
</section>
|
||||
|
||||
## Instrucciones
|
||||
<section id='instructions'>
|
||||
Instrucciones acerca de lo que se necesita hacer exactamente
|
||||
</section>
|
||||
## Pruebas
|
||||
<section id='tests'>
|
||||
|
||||
``` yml
|
||||
- text: Debe regresar "foo".
|
||||
testString: 'Una función "encadenada" utilizando afirmaciones Chai'
|
||||
```
|
||||
|
||||
</section>
|
||||
|
||||
<div id='js-seed'>
|
||||
|
||||
```js
|
||||
Código mostrado en el editor por defecto.
|
||||
```
|
||||
|
||||
</div>
|
||||
|
||||
### Antes de las pruebas
|
||||
<div id='js-setup'>
|
||||
|
||||
```js
|
||||
Código inicial de las pruebas
|
||||
```
|
||||
|
||||
</div>
|
||||
|
||||
</section>
|
||||
|
||||
### Después de las pruebas
|
||||
<div id='js-teardown'>
|
||||
|
||||
```js
|
||||
Código posterior a las pruebas
|
||||
```
|
||||
|
||||
</div>
|
||||
|
||||
</section>
|
||||
|
||||
## Solución
|
||||
<section id='solution'>
|
||||
|
||||
```js
|
||||
Solución en código del desafío.
|
||||
```
|
||||
|
||||
</section>
|
||||
````
|
||||
|
||||
### Enlaces útiles
|
||||
|
||||
Creando y Editando Desafíos:
|
||||
|
||||
1. [Guía de Diseño de Desafíos](style-guide-for-curriclum-challenges.md) - Cómo crear y formatear desafíos
|
||||
|
||||
2. [Tipos de desafíos](https://github.com/freeCodeCamp/freeCodeCamp/blob/master/client/utils/challengeTypes.js#L1-L13) - Significado del valor numérico de 'challengeType' (enum).
|
||||
|
||||
3. [Contribuyendo a freeCodeCamp - Escribiendo Pruebas de Desafío en ES6](https://www.youtube.com/watch?v=iOdD84OSfAE#t=2h49m55s) - Un video siguiendo a [Ethan Arrowood](https://twitter.com/ArrowoodTech) mientras contribuye a la versión antigua del currículo.
|
@ -1,106 +0,0 @@
|
||||
<!-- do not translate this -->
|
||||
| [Read these guidelines in other languages](/docs/i18n-languages) |
|
||||
|-|
|
||||
<!-- do not translate this -->
|
||||
|
||||
# Katkıda Bulunma Kuralları
|
||||
|
||||
Merhaba. 👋
|
||||
|
||||
freeCodeCamp.org, sizin gibi binlerce gönüllü sayesinde mümkün olmaktadır. Katkılarınızdan dolayı minnettarız ve sizi ağırlamaktan mutluluk duyarız.
|
||||
|
||||
["Davranış Kurallarımıza"](https://www.freecodecamp.org/code-of-conduct) kesinlikle uyarız. Okumak için bir dakikanızı ayırın. Sadece 196 kelime.
|
||||
|
||||
İyi eğlenceler! 🎉
|
||||
|
||||
## İşte size katkıda bulunabileceğiniz bir kaç eğlenceli yol
|
||||
|
||||
Bunlardan herhangi birine katkıda bulunabilirsiniz:
|
||||
|
||||
1. [Bu Open-Source-Codebase'e katkıda bulunun](#Bu-Open-Source-Codebase'e-katkıda-bulunun). Karşılaştığımız problemlerin üstesinden gelmemize ve öğrenme platformundaki hataları düzeltmemize yardımcı olun.
|
||||
|
||||
2. [Public forumuzdaki](https://forum.freecodecamp.org/) kampçılara yardım edin. [Sorularını cevaplayın](https://forum.freecodecamp.org/?max_posts=1) ya da [kodlarına geri bildirimler yapın](https://forum.freecodecamp.org/c/project-feedback?max_posts=1).
|
||||
|
||||
3. [YouTube videolarımıza](https://www.youtube.com/channel/UC8butISFwT-Wl7EV0hUK0BQ/videos) altyazı eklenmesinde bize yardımcı olun.
|
||||
|
||||
## Bu Open-Source-Codebase'e katkıda bulunun
|
||||
|
||||
Open-Source-Codebase'imizde binlerce [coding challenges](https://learn.freecodecamp.org) ve öğrenme platformumuzu destekleyen diğer kaynak kodları yer almaktadır.
|
||||
|
||||
### Yarat, güncelle ve coding challenges'lardaki hataları düzelt
|
||||
|
||||
Tüm coding challenges'larımız, sizin gibi gönüllülerden uzman bilgisini getirerek topluluk tarafından küratörlüğünü sürdürüyor.
|
||||
|
||||
Onları geliştirebilir ve ifadelerini netleştirmeye yardımcı olabilirsiniz. Konsepti daha iyi açıklamak için kullanıcı hikayelerini güncelleyebilirsiniz hatta gereksiz olanları kaldırabilirisiniz. Ayrıca insanların kodlarını daha tutartlı hale getirmek için, challenge testlerini geliştirebilirsin.
|
||||
|
||||
**Eğer bu coding challenge'ları geliştirmek ilgini çekerse, işte [Coding challenge'lar üzerine nasıl çalılır](/docs/how-to-work-on-coding-challenges.md).**
|
||||
|
||||
### freeCodeCamp.org öğrenme platformundaki hataları düzeltmemize yardım edin
|
||||
|
||||
Öğrenme platformumuz modern bir JavaScript-Stack üzerinde çalışmaktadır. Node.js, MongoDB, LoopBack, OAuth 2.0, React, Gatsby, Webpack ve diğerleri dahil ancak bunlarla sınırlı olmamak üzere çeşitli bileşenleri, araçları ve kütüphaneleri vardır.
|
||||
|
||||
Açıkça,
|
||||
|
||||
- Node.js tabanlı bir API server'ımız,
|
||||
- Bir dizi React tabanlı client uygulamarı,
|
||||
- Front-end projelerimizi değerlendirmek için kullandığımız bir script.
|
||||
|
||||
Katkıda bulunmak için API'lerin anlaşılması, ES6 Syntax ve fazlasıyla merak gerektirir.
|
||||
|
||||
Katkıda bulunabilmek için bahsi geçen teknolojilerde, araçlarda ve kütüphanelerde uzman olmanız gerekmiyor fakat bunlara aşina olmanızı bekliyoruz.
|
||||
|
||||
**Eğer codebase'imizi geliştirmemizde bize yardım etmek isterseniz, [freeCodeCamp'i lokal olarak kurabilir](/docs/how-to-setup-freecodecamp-locally.md) ya da ücretsiz online geliştirme ortamı Gitpod'u kullanabilirsiniz.**
|
||||
|
||||
[](https://gitpod.io/#https://github.com/freeCodeCamp/freeCodeCamp)
|
||||
|
||||
(Freecodecamp için kodlamaya hazır geliştirme ortamını tarayıcınızda başlatır.)
|
||||
|
||||
## Sıkça sorulan sorular
|
||||
|
||||
**Panoda olmayan bir hatayı nasıl bildirebilirim?**
|
||||
|
||||
Eğer bir hata bulduğunuz düşünüyorsanız, ["Yardım, Bir Hata Buldum"](https://forum.freecodecamp.org/t/how-to-report-a-bug/19543) yazısındaki talimatları takip edin.
|
||||
|
||||
Bunun yeni bir hata olduğundan eminseniz, yeni bir GitHub issue yaratın. Hatayı tekrarlayabilmemiz için olabildiğince fazla bilgi eklediğinizden emin olun. Bu konuda, size yardımcı olmak için önceden tanımlanmış bir sorun şablonumuz bulunmaktadır.
|
||||
|
||||
Lütfen bir sorun için kodlama yardımı isteyen issue'ların kapatılacağını unutmayın. Issue-tracker codebase ile alakalı sorunlar ve tartışmalar içindir. Bir şüphe durumunda, sorunu bildirmeden önce [forum üzerinde yardım aramalısınız](https://forum.freecodecamp.org).
|
||||
|
||||
**Bir güvenlik sorununu nasıl bildirebilirim?**
|
||||
|
||||
Güvenlik sorunları için herhangi bir GitHub issue yaratmak yerine lütfen, `security@freecodecamp.org` adresine mail atınız. Sorunu derhal inceleyeceğiz.
|
||||
|
||||
**Sorunlara etiketlenen etiketler ne anlama geliyor?**
|
||||
|
||||
Topluluk moderotörlerimiz, issue'ları [aciliyetine göre sıralar](https://en.wikipedia.org/wiki/Software_bug#Bug_management) ve istekleri önceliklerine, ciddiyetine ve diğer faktörlere incelemeye alırlar. Etiketlerin [anlamlarının sözlüğünü buradan bulabilirsiniz](https://github.com/freecodecamp/freecodecamp/labels).
|
||||
|
||||
[**`yardım aranıyor`**](https://github.com/freeCodeCamp/freeCodeCamp/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22) ya da [**`ilk kez gelenler hoş geldiniz`**](https://github.com/freeCodeCamp/freeCodeCamp/issues?q=is%3Aopen+is%3Aissue+label%3A%22first+timers+only%22), çalışmanız için neyin uygun olduğuna hızlı bir bakış atın. Bunlar üzerinde çalışmak için izin almanız gerekmez.
|
||||
|
||||
Eğere bu issue'lar üzerine ne yapılacağı net değilse, yorumlarda soru sormaktan çekinmeyin.
|
||||
|
||||
**Bir yazım yanlışı buldum, pull request yapmadan önce bir issue açmalı mıyım?**
|
||||
|
||||
Yazım yanlışları ve kelime değişiklikleri için yeni bir issue yaratmadan, direkt olarak pull request açabilirsiniz.
|
||||
|
||||
**GitHub'da ve genel olarak Open-Source'ta yeniyim:**
|
||||
|
||||
[Açık Kaynak Kılavuzuna Nasıl Katkıda Bulunur](https://github.com/freeCodeCamp/how-to-contribute-to-open-source) yazımızı okuyun.
|
||||
|
||||
|
||||
**Bu dökümantasyonda olmayan bir konuda takıldığımda nasıl yardım alabilirim?**
|
||||
|
||||
Yardım istemek için çekinmeyin:
|
||||
|
||||
- [Public forumumuzun "Katkıda bulunanlar" kategorisi](https://forum.freecodecamp.org/c/contributors)
|
||||
- [Katkıda bulunan kişilerimiz Gitter'deki sohbet odası](https://gitter.im/FreeCodeCamp/Contributors)
|
||||
|
||||
Üzerinde çalışmak istediğiniz konulardan herhangi birine katkıda bulunmanıza yardımcı olmaktan büyük heyecan duyuyoruz. İlgili konu başlıkları hakkında bize sorular sormaktan çekinmeyin, açıklığa kavuşturmaktan memnuniyet duyarız. Yeni bir tane göndermeden önce sorgunuzu aradığınızdan emin olun. Kibar ve sabırlı olun. Gönüllüler ve moderatörler topluluğumuz, sorularınız için size yol göstermek için her zaman yanındadır.
|
||||
|
||||
Şüphe duyduğunuzda, bu konuda size yardımcı olmak için platform geliştirme ekibimize ulaşabilirsiniz:
|
||||
|
||||
| Name | GitHub | Twitter |
|
||||
|:----------------|:-------|:--------|
|
||||
| Mrugesh Mohapatra | [`@raisedadead`](https://github.com/raisedadead) | [`@raisedadead`](https://twitter.com/raisedadead)|
|
||||
| Ahmad Abdolsaheb | [`@ahmadabdolsaheb`](https://github.com/ahmadabdolsaheb) | [`@Abdolsaheb`](https://twitter.com/Abdolsaheb) |
|
||||
| Kristofer Koishigawa | [`@scissorsneedfoodtoo`](https://github.com/scissorsneedfoodtoo) | [`@kriskoishigawa`](https://twitter.com/kriskoishigawa) |
|
||||
|
||||
> **Email: `dev@freecodecamp.org`**
|
@ -1,47 +0,0 @@
|
||||
<!-- do not translate this -->
|
||||
| [Read these guidelines in other languages](/docs/i18n-languages) |
|
||||
|-|
|
||||
<!-- do not translate this -->
|
||||
|
||||
# Nasıl Pull Request açılır
|
||||
|
||||
## İyi bir Pull Request başlığı nasıl oluşturulur:
|
||||
|
||||
Bir Pull Request(PR) açarken, aşağıdaki formatta PR başlığının ne olmasına karar vermek için aşağıdaki kapsam tablosunu kullan
|
||||
`fix/feat/chore/refactor/docs/perf (scope): PR Başlığı`
|
||||
|
||||
Bir örnek: `fix(learn): Testler düzeltildi yapmak için...while loop challenge`.
|
||||
|
||||
| Kapsam | Dokümantasyon |
|
||||
|---|---|
|
||||
| `learn`,`curriculum` | Öğretim meydan okumalarında değişiklik yapan Pull Requestler için. |
|
||||
| `client` | Kullanıcı platformunun mantığında veya arayüzünde değişiklik yapan Pull Requestler için. |
|
||||
| `guide` | Kılavuzda değişiklik yapan Pull Requestler için. |
|
||||
| `docs` | Proje dokümantasyonunda değişiklik yapan Pull Requestler için. |
|
||||
|
||||
## Bir Pull Request (PR) Hazırlarken
|
||||
|
||||
1. Düzenlemeler commitlenince, Fork edilmiş GitHub sayfanda bir Pull Request oluşturmak için yönlendirilirsin.
|
||||
|
||||

|
||||
|
||||
2. Varsayılan olarak, bütün Pull Requestler freeCodeCamp ana repo, `master` dalına dayanmalıdır.
|
||||
|
||||
Forku yükseltirken, Baz alınan forkun freeCodeCamp/freeCodeCamp olarak yerleştirildiğinden emin ol.
|
||||
|
||||

|
||||
|
||||
3. Pull Request'i senin dalından freeCodeCamp'ın `master` dalına teslim et.
|
||||
|
||||
4. PR'in ana blokuna yaptığın değişikliğin detaylandırılmış özetini ve niçin yapıldığını dahil et.
|
||||
|
||||
- Sana bir Pull Request teması sunulur. Pull Request'i açmadan önce takip etmen gerekenleri gösteren bir kontrol listesidir.
|
||||
|
||||
- Ayrıntıları size uygun şekilde doldurun. Bu bilgiler incelenecek ve çekme isteğinizin kabul edilip edilmeyeceğine karar verilecek.
|
||||
|
||||
- Eğerki bu PR varolan bir hata/problem'i onarıyorsa, PR tarifinin sonuna,
|
||||
`closes` kelimesini ve #xxxx(xxxx problem numarasıdır) ekleyin. Örnek: `closses #1337` .
|
||||
Eğerki bu PR kabul edilirse, bu GitHub'a otomatik olarak bu problemin kapatılmasını belirtir.
|
||||
|
||||
5. Lokal bir kopyada test edip etmediğini belirt.
|
||||
Bu, yalnızca bir Rehber makalesinin yayınlanması gibi metin içeriğinde düzenlemeler yapmayan değişiklikler yaparken çok önemlidir. Yerel sınama gerektiren değişikliklere örnek olarak, sayfanın işlevselliğini veya düzenini değiştirebilecek JavaScript, CSS veya HTML verilebilir.
|
@ -1,120 +0,0 @@
|
||||
<!-- do not translate this -->
|
||||
| [Read these guidelines in other languages](/docs/i18n-languages) |
|
||||
|-|
|
||||
<!-- do not translate this -->
|
||||
|
||||
# Вказівки щодо внесення
|
||||
|
||||
Привіт. 👋
|
||||
|
||||
freeCodeCamp.org є можливим завдяки тисячам волонтерів як ти. Ми вдячні за ваші внески і раді вас тут бачити.
|
||||
|
||||
Ми дуже рекомендуємо наш ["Code of Conduct"](https://www.freecodecamp.org/code-of-conduct). Будь-ласка знайдіть хвилинку аби перечитати це. Всього лиш 196 символів.
|
||||
|
||||
Щасливого внесення.
|
||||
|
||||
## Ось кілька цікавих способів, яким ви можете допомогти
|
||||
|
||||
Ви можете зробити свій внесок у будь-яке з цих:
|
||||
|
||||
1. [Допоможіть нам редагувати проблеми з кодом](#contribute-to-this-open-source-codebase). Допоможіть нам редагувати проблеми з кодом, або виправляти помилки на навчальній платформі.
|
||||
|
||||
2. Допоможіть нашим 'кемперам' [Форум спільноти](https://forum.freecodecamp.org/). [Дайте відповіді на запитання щодо коду](https://forum.freecodecamp.org/?max_posts=1) or [дати їм відгуки про свої проекти](https://forum.freecodecamp.org/c/project-feedback?max_posts=1).
|
||||
|
||||
3. Допоможіть нам додати субтитри до наших [Відео на каналах YouTube](https://www.youtube.com/channel/UC8butISFwT-Wl7EV0hUK0BQ/videos).
|
||||
|
||||
## Додайте до цього коду з відкритим кодом
|
||||
|
||||
У нашій базі з кодом є тисячі [задач з програмування] (https://learn.freecodecamp.org) та іншого вихідного коду, який працює на нашій платформі навчання.
|
||||
|
||||
### Створюйте, оновлюйте та виправляйте помилки в наших завданнях з програмування
|
||||
|
||||
Усі наші проблеми з кодуванням куріруються громадою, приносячи експертні знання від волонтерів, як ви.
|
||||
|
||||
Ви можете допомогти розширити їх та покращити їх формулювання. Ви також можете оновити історії користувачів, щоб краще пояснити цю концепцію або видалити зайві та покращити тестові завдання, щоб вони більш точно перевіряли код людей.
|
||||
|
||||
**Якщо ви зацікавлені в удосконаленні цих проблем із кодуванням, є [як працювати над задачами з програмування](/docs/how-to-work-on-coding-challenges.md).**
|
||||
|
||||
### Допоможіть нам виправити помилки на навчальній платформі freeCodeCamp.org
|
||||
|
||||
Наша навчальна платформа працює на сучасному стеку JavaScript. Він має різні компоненти, інструменти та бібліотеки, включаючи, але не обмежуючись ними, Node.js, MongoDB, LoopBack, OAuth 2.0, React, Gatsby, Webpack тощо.
|
||||
|
||||
Загалом,
|
||||
|
||||
- У нас є сервер API на базі Node.js.
|
||||
- Набір клієнтських додатків на основі React.
|
||||
- Сценарій, який ми використовуємо для оцінки наших передових проектів.
|
||||
|
||||
Аби сприяти цьому потрібно певне розуміння API, синтаксису ES6 та зацікавленість.
|
||||
|
||||
По суті, ми очікуємо базового ознайомлення з деякими згаданих вище технологій, інструментів та бібліотек. Зважаючи на це, вам не потрібно бути експертом з них, щоб зробити свій внесок.
|
||||
|
||||
**Якщо ви хочете допомогти нам покращити нашу кодову базу, ви можете [налаштувати CodeCamp локально] (/docs/how-to-setup-freecodecamp-locally.md) або скористатися Gitpod, безкоштовним онлайн-середовищем розробників.**
|
||||
|
||||
[](https://gitpod.io/#https://github.com/freeCodeCamp/freeCodeCamp)
|
||||
|
||||
(Запускає готове до коду середовище розробників для freecodecamp у вашому браузері.)
|
||||
|
||||
## Питання що часто задаються
|
||||
|
||||
### Як я можу повідомити про помилку, яку немає на борту?
|
||||
|
||||
Якщо ви думаєте, що знайшли помилку, спочатку прочитайте ["Допоможіть, я знайшов помилку"](https://forum.freecodecamp.org/t/how-to-report-a-bug/19543) статтю та дотримуйтесь її вказівок.
|
||||
|
||||
Якщо ви впевнені, що це нова помилка, продовжуйте створювати нову проблему GitHub. Обов’язково включіть якомога більше інформації, щоб ми могли відтворити помилку. У нас є заздалегідь визначений шаблон випуску, який допоможе вам у цьому.
|
||||
|
||||
Зверніть увагу, що будь-які проблеми, які шукають допомоги щодо задачі, будуть закриті. Програма відстеження винятково стосується питань, що стосуються кодової бази та обговорень. Коли ви сумніваєтесь, ви повинні [Шукати допомоги на форумі](https://forum.freecodecamp.org) перед тим як скласти звіт.
|
||||
|
||||
### Як я можу повідомити про проблему безпеки?
|
||||
|
||||
Будь ласка, не створюйте проблем із GitHub для проблем безпеки. Натомість надішліть електронний лист на адресу `security@freecodecamp.org` і ми негайно розглянемо це.
|
||||
|
||||
### Що означають ці різні мітки, позначені тегами?
|
||||
|
||||
Наші модератори спільноти [тріада](https://en.wikipedia.org/wiki/Software_bug#Bug_management) видають запити, виходячи з їх пріоритетності, суворості та інших факторів. Ти можеш [знайти тут повний словник їх значень](https://github.com/freecodecamp/freecodecamp/labels).
|
||||
|
||||
Вам слід пройти [**`потрібна допомога`**](https://github.com/freeCodeCamp/freeCodeCamp/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22) або [**`Раді бачити початківців`**](https://github.com/freeCodeCamp/freeCodeCamp/issues?q=is%3Aopen+is%3Aissue+label%3A%22first+timers+only%22) питання для швидкого огляду того, що доступно для роботи.
|
||||
|
||||
Вони розраховані на захоплення, і вам не потрібно шукати дозволу, перш ніж працювати над ними. Якщо в цих питаннях немає чіткості щодо того, що потрібно зробити, сміливо задайте питання в коментарях.
|
||||
|
||||
### Я знайшов помилку, чи повинен я повідомити про проблему, перш ніж я можу зробити запит на пул?
|
||||
|
||||
Для помилок друку та інших формулювань ви можете безпосередньо відкривати запити на тягнення, не створюючи попередньо проблеми. Питання - це більше для обговорення більших проблем, пов’язаних з кодовими чи структурними аспектами навчальної програми.
|
||||
|
||||
### Як отримати проблему, призначену мені?
|
||||
|
||||
Ми, як правило, не привласнюємо жодних питань, окрім тих, хто не працював тривалий час, щоб уникнути амбітних нерегулярних шоу. Натомість ми дотримуємось наведеної нижче політики, щоб бути справедливою до всіх:
|
||||
|
||||
1. Перший пул-запит на будь-яку проблему бажано об'єднати.
|
||||
2. У випадку декількох запитів на одну і ту ж проблему, ми надаємо пріоритет якості коду в пул запитах.
|
||||
- Ви включали тести?
|
||||
- Ви зловили всі випадки використання?
|
||||
- Ви гарантували, що всі тести пройшли, і ви підтвердили, що все працює на місцях?
|
||||
3. Нарешті ми надаємо перевагу запитам, які відповідають нашим рекомендаціям.
|
||||
- Ви дотримувались контрольного списку "pull-request"?
|
||||
- Чи багатозначно ви назвали свою назву тяглого запиту?
|
||||
|
||||
You do not need any permission for issues that are marked `потрібна допомога` or `Раді бачити початківців` як було пояснено раніше. Ретельно дотримуйтесь інструкцій та відкрийте запит на виклик.
|
||||
|
||||
### Я є новачок у GitHub і Open Source, де слід починати?
|
||||
|
||||
Прочитайте [Як зробити внесок в Open Source](https://github.com/freeCodeCamp/how-to-contribute-to-open-source).
|
||||
|
||||
### Я застряг у чомусь, що не входить у цю документацію. Як я можу отримати допомогу?
|
||||
|
||||
Не соромтеся попросити допомоги у:
|
||||
|
||||
- [Категорія "Співавтори" нашого громадського форуму](https://forum.freecodecamp.org/c/contributors)
|
||||
- [Наші учасники чату на Gitter](https://gitter.im/FreeCodeCamp/Contributors)
|
||||
|
||||
Ми раді допомогти вам долучитися до будь-якої з тем, над якими ви хотіли б працювати. Не соромтеся задавати нам питання щодо пов'язаних тем теми, і ми будемо раді уточнити. Переконайтесь, що ви шукаєте свій запит, перш ніж публікувати новий. Будьте ввічливими та терплячими. Наша спільнота волонтерів та модераторів завжди поруч, щоб провести вас через ваші запити.
|
||||
|
||||
Якщо ви сумніваєтесь, ви можете звернутися до нашої команди розробників платформи, яка допоможе вам у цьому:
|
||||
|
||||
| Ім'я | GitHub | Twitter |
|
||||
|:----------------|:-------|:--------|
|
||||
| Mrugesh Mohapatra | [`@raisedadead`](https://github.com/raisedadead) | [`@raisedadead`](https://twitter.com/raisedadead)|
|
||||
| Ahmad Abdolsaheb | [`@ahmadabdolsaheb`](https://github.com/ahmadabdolsaheb) | [`@Abdolsaheb`](https://twitter.com/Abdolsaheb) |
|
||||
| Kristofer Koishigawa | [`@scissorsneedfoodtoo`](https://github.com/scissorsneedfoodtoo) | [`@kriskoishigawa`](https://twitter.com/kriskoishigawa) |
|
||||
|
||||
> **Мейл: `dev@freecodecamp.org`**
|
@ -1,156 +0,0 @@
|
||||

|
||||
|
||||
[](http://makeapullrequest.com)
|
||||
[](http://www.firsttimersonly.com/)
|
||||
[](https://www.codetriage.com/freecodecamp/freecodecamp)
|
||||
[](https://gitpod.io/from-referrer/)
|
||||
|
||||
## Open-source база та курикулум freeCodeCamp.org
|
||||
|
||||
[freeCodeCamp.org](https://www.freecodecamp.org) - це дружня спільнота де ви можете навчитися програмувати безкоштовно. Веб-сайт підтримується [неприбутковою організацією 501(c)(3) nonprofit](https://donate.freecodecamp.org) з ціллю допомогти мільйонам зайнятих людей перевестися до тех. індустрії. Наша сапільнота вже допомогла більш ніж 10 000 людей знайти їх першу розробницьку роботу.
|
||||
|
||||
Наш курикулум з full-stack веб розробки повністю безкоштовний і розрахований на вільний темп виконання. Ми пропонуємо тисячі інтерактивних задач з програмування для розширення ваших навичок та вмінь.
|
||||
|
||||
## Зміст
|
||||
|
||||
* [Сертифікації](#сертифікації)
|
||||
* [Навчальна платформа](#the-learning-platform)
|
||||
* [Повідомлення про баги та помилки](#reporting-bugs-and-issues)
|
||||
* [Повідомлення порушень безпеки](#reporting-security-issues)
|
||||
* [Внесок](#contributing)
|
||||
* [Статус Platform, Build, Deployment](#platform-build-and-deployment-status)
|
||||
* [Ліцензія](#license)
|
||||
|
||||
|
||||
### Cертифікації
|
||||
|
||||
freeCodeCamp.org пропонує декілька безкоштовних сертифікацій. Кожна з них потребує виконання 5 web-проектів та має сотні опціональних задач для підготовки до проектів. Проходження кожної з сертифікацій, за нашими розрахунками, у програміста початкового рівня займе близько 300 годин.
|
||||
|
||||
Кожен з цих 30 проектів в навчальній програмі freeCodeCamp.org має власні юзер-сторі та автоматизовані тести, вони допомагають вам нарощувати проект поступово і гарантує, що ви виконали всі юзер-сторі перед тим, як подати проект.
|
||||
|
||||
Ви можете скористатися цими тестовими наборами через [freeCodeCamp's CDN] (https://cdn.freecodecamp.org/testable-projects-fcc/v1/bundle.js). Це означає, що ви можете будувати ці проекти на веб-сайтах як CodePen та Glitch, або навіть в середовищі розробки локального комп'ютера.
|
||||
|
||||
Щойно ви отримаєте сертифікат, ви завжди матимете його. Ви завжди зможете створити на нього посилання на вашому LinkedIn або резюме. І коли ваші потенційні роботодавці або незалежні клієнти натискнуть на це посилання, вони побачать перевірену персоналізовану сертифікацію.
|
||||
|
||||
Єдиний виняток з цього буде при виявленні порушення нашої [Академічної політики чесності] (https://www.freecodecamp.org/academic-honesty). Коли ми визначаємо людей, що однозначно плагіатують (подаючи код чи проекти інших людей як власні без цитування), ми робимо те, що повинні робити усі суворі навчальні заклади - ми відкликаємо їх сертифікати та блокуємо цим людей.
|
||||
|
||||
Ось наші шість основних сертифікатів:
|
||||
|
||||
#### 1. Сертифікація з Responsive Web Дизайну
|
||||
|
||||
- [Основи HTML and HTML5](https://learn.freecodecamp.org/responsive-web-design/basic-html-and-html5)
|
||||
- [Основи CSS](https://learn.freecodecamp.org/responsive-web-design/basic-css)
|
||||
- [Прикладний Візуальний Дизайн](https://learn.freecodecamp.org/responsive-web-design/applied-visual-design)
|
||||
- [Прикладна Доступність](https://learn.freecodecamp.org/responsive-web-design/applied-accessibility)
|
||||
- [Принципи Responsive Web Дизайну](https://learn.freecodecamp.org/responsive-web-design/responsive-web-design-principles)
|
||||
- [CSS Flexbox](https://learn.freecodecamp.org/responsive-web-design/css-flexbox)
|
||||
- [CSS Grid](https://learn.freecodecamp.org/responsive-web-design/css-grid)
|
||||
<br />
|
||||
<br />
|
||||
**Projects**: Сторінка Нагороди, Форма Опитування, Цільова Сторінка Продукту, Сторінка Технічної Документації, Веб-Сторінка Особистого Портфоліо
|
||||
|
||||
#### 2. Сертифікація з алгоритмів та структур даних JavaScript
|
||||
|
||||
- [Basic JavaScript](https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/basic-javascript)
|
||||
- [ES6](https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/es6)
|
||||
- [Regular Expressions](https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/regular-expressions)
|
||||
- [Debugging](https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/debugging)
|
||||
- [Basic Data Structures](https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/basic-data-structures)
|
||||
- [Algorithm Scripting](https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/basic-algorithm-scripting)
|
||||
- [Object Oriented Programming](https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/object-oriented-programming)
|
||||
- [Functional Programming](https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/functional-programming)
|
||||
- [Intermediate Algorithm Scripting](https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/intermediate-algorithm-scripting)
|
||||
<br />
|
||||
<br />
|
||||
**Projects**: Palindrome Checker, Roman Numeral Converter, Caesar's Cipher, Telephone Number Validator, Cash Register
|
||||
|
||||
#### 3. Front End Libraries Certification
|
||||
|
||||
- [Bootstrap](https://learn.freecodecamp.org/front-end-libraries/bootstrap)
|
||||
- [jQuery](https://learn.freecodecamp.org/front-end-libraries/jquery)
|
||||
- [Sass](https://learn.freecodecamp.org/front-end-libraries/sass)
|
||||
- [React](https://learn.freecodecamp.org/front-end-libraries/react)
|
||||
- [Redux](https://learn.freecodecamp.org/front-end-libraries/redux)
|
||||
- [React and Redux](https://learn.freecodecamp.org/front-end-libraries/react-and-redux)
|
||||
<br />
|
||||
<br />
|
||||
**Projects**: Random Quote Machine, Markdown Previewer, Drum Machine, JavaScript Calculator, 25 + 5 Clock
|
||||
|
||||
#### 4. Data Visualization Certification
|
||||
|
||||
- [Data Visualization with D3](https://learn.freecodecamp.org/data-visualization/data-visualization-with-d3)
|
||||
- [JSON APIs and Ajax](https://learn.freecodecamp.org/data-visualization/json-apis-and-ajax)
|
||||
<br />
|
||||
<br />
|
||||
**Projects**: Bar Chart, Scatterplot Graph, Heat Map, Choropleth Map, Treemap Diagram
|
||||
|
||||
#### 5. APIs and Microservices Certification
|
||||
|
||||
- [Managing Packages with Npm](https://learn.freecodecamp.org/apis-and-microservices/managing-packages-with-npm)
|
||||
- [Basic Node and Express](https://learn.freecodecamp.org/apis-and-microservices/basic-node-and-express)
|
||||
- [MongoDB and Mongoose](https://learn.freecodecamp.org/apis-and-microservices/mongodb-and-mongoose)
|
||||
<br />
|
||||
<br />
|
||||
**Projects**: Timestamp Microservice, Request Header Parser, URL Shortener, Exercise Tracker, File Metadata Microservice
|
||||
|
||||
#### 6. Information Security and Quality Assurance Certification
|
||||
|
||||
- [Information Security with HelmetJS](https://learn.freecodecamp.org/information-security-and-quality-assurance/information-security-with-helmetjs)
|
||||
- [Quality Assurance and Testing with Chai](https://learn.freecodecamp.org/information-security-and-quality-assurance/quality-assurance-and-testing-with-chai)
|
||||
- [Advanced Node and Express](https://learn.freecodecamp.org/information-security-and-quality-assurance/advanced-node-and-express)
|
||||
<br />
|
||||
<br />
|
||||
**Projects**: Metric-Imperial Converter, Issue Tracker, Personal Library, Stock Price Checker, Anonymous Message Board
|
||||
|
||||
#### Full Stack Development Certification
|
||||
|
||||
Once you have earned all 6 of these certifications, you'll be able to claim your freeCodeCamp.org Full Stack Development Certification. This final distinction signifies that you’ve completed around 1,800 hours of coding with a wide range of web development tools.
|
||||
|
||||
#### Legacy Certifications
|
||||
|
||||
We also have 3 legacy certifications from our 2015 curriculum, which are still available. All of the required projects for these legacy certifications will remain available on freeCodeCamp.org.
|
||||
|
||||
- Legacy Front End Development Certification
|
||||
- Legacy Data Visualization Certification
|
||||
- Legacy Back End Development Certification
|
||||
|
||||
### The Learning Platform
|
||||
|
||||
This code is running live at [freeCodeCamp.org](https://www.freecodecamp.org).
|
||||
|
||||
Our community also has:
|
||||
|
||||
- A [forum](https://forum.freecodecamp.org) where you can usually get programming help or project feedback within hours.
|
||||
- A [YouTube channel](https://youtube.com/freecodecamp) with free courses on Python, SQL, Android, and a wide variety of other technologies.
|
||||
- A [podcast](https://podcast.freecodecamp.org/) with technology insights and inspiring stories from developers.
|
||||
- A comprehensive [guide to thousands of programming topics](https://guide.freecodecamp.org/)
|
||||
- A [Developer News](https://www.freecodecamp.org/news) publication, a free, open source, no-ads place to cross-post your blog articles.
|
||||
|
||||
> ### [Join our community here](https://www.freecodecamp.org/signin).
|
||||
|
||||
### Reporting Bugs and Issues
|
||||
|
||||
If you think you've found a bug, first read the [how to report a bug](https://forum.freecodecamp.org/t/how-to-report-a-bug/19543) article and follow its instructions.
|
||||
|
||||
If you're confident it's a new bug, and have confirmed that someone else is facing the same issue, go ahead and create a new GitHub issue. Be sure to include as much information as possible so we can reproduce the bug.
|
||||
|
||||
### Reporting Security Issues
|
||||
|
||||
If you think you have found a vulnerability, please report responsibly. Don't create GitHub issues for security issues. Instead, please send an email to `security@freecodecamp.org` and we'll look into it immediately.
|
||||
|
||||
### Contributing
|
||||
|
||||
> ### [Please follow these steps to contribute.](CONTRIBUTING.md)
|
||||
|
||||
### Platform, Build and Deployment Status
|
||||
|
||||
The general platform status for all our applications is available at [`status.freecodecamp.org`](https://status.freecodecamp.org). The build and deployment status for the code is available in [our DevOps Guide](/docs/devops.md).
|
||||
|
||||
### License
|
||||
|
||||
Copyright © 2019 freeCodeCamp.org
|
||||
|
||||
The content of this repository is bound by the following licenses:
|
||||
|
||||
- The computer software is licensed under the [BSD-3-Clause](LICENSE.md) license.
|
||||
- The learning resources in the [`/curriculum`](/curriculum) directory including their subdirectories thereon are licensed under the [CC-BY-SA-4.0](/curriculum/LICENSE.md) license.
|
@ -1,48 +0,0 @@
|
||||
<!-- do not translate this -->
|
||||
| [Read these guidelines in other languages](/docs/i18n-languages) |
|
||||
|-|
|
||||
<!-- do not translate this -->
|
||||
|
||||
# Як відкрити Pull Request
|
||||
|
||||
## Як придумати хорошу назву для Pull Request:
|
||||
|
||||
Відкриваючи запит на виклик (Pull Request - PR), використовуйте наступну таблицю сфер, щоб вирішити, як назвати PR в такому форматі:
|
||||
`fix/feat/chore/refactor/docs/perf (scope): PR Title`
|
||||
|
||||
Наприклад `fix(learn): Fixed tests for the do...while loop challenge`.
|
||||
|
||||
| Сфера | Документація |
|
||||
|---|---|
|
||||
| `learn`,`curriculum` | Для Pull Requests, які вносять зміни до задач курикулуму. |
|
||||
| `client` | Для Pull Requests, які вносять логіки клієнтської платформи або інтерфейсу користувача. |
|
||||
| `guide` | Для Pull Requests, які вносять зміни до інструкції. |
|
||||
| `docs` | Для Pull Requests, які вносять зміни до документації проекту. |
|
||||
|
||||
## Запропонувати Pull Request (PR)
|
||||
|
||||
1. Після внесення змін вам буде запропоновано створити Pull Request на сторінці GitHub вашої вилки.
|
||||
|
||||

|
||||
|
||||
2. За замовчуванням усі Pull Rell Requests повинні бути проти основного репорта freeCodeCamp, гілки `master`.
|
||||
|
||||
Переконайтесь, що під час подання запиту вашій Base Fork встановлено значення freeCodeCamp / freeCodeCamp.
|
||||
|
||||

|
||||
|
||||
3. Надішліть Pull Request з вашої гілки на гілку masterCodeCamp.
|
||||
|
||||
4. В тілі вашого PR включіть більш детальний опис змін, які ви додали і чому.
|
||||
|
||||
- Вам буде представлений шаблон запиту PR. Це чекліст, якого слід було дотримуватися перед відкриттям запиту.
|
||||
|
||||
- Заповніть деталі, які здаються вам підходящими. Ця інформація буде переглянута і вирішить, чи буде прийнято ваш запит.Fill in the details as they seem fit you.
|
||||
|
||||
- Якщо PR призначений для виправлення існуючої помилки/проблеми, тоді вкінці
|
||||
опису додайте ключове слово `closes` і #xxxx (де xxxx
|
||||
номер проблеми). Наприклад: `closes #1337`. Це скаже GitHub'у автоматично закрити існуючу проблему, якщо PR було принято і об'єднано.
|
||||
|
||||
5. Вкажіть чи ви протестували на локальній копії сайту.
|
||||
|
||||
Це дуже важливо, коли ви вносите зміни, які стосуються не лише редагування текстового вмісту, наприклад, статті інструкції. Приклади змін, що потребують локального тестування, включають JavaScript, CSS або HTML, які можуть змінити функціональність або макет сторінки.
|
@ -1,530 +0,0 @@
|
||||
<!-- do not translate this -->
|
||||
| [Read these guidelines in other languages](/docs/i18n-languages) |
|
||||
|-|
|
||||
<!-- do not translate this -->
|
||||
|
||||
# Локальна настройка freeCodeCamp
|
||||
|
||||
Дотримуйтесь цих вказівок щодо отримання freeCodeCamp локально у вашій системі. Це дуже рекомендується, якщо ви хочете регулярно робити зміни.
|
||||
|
||||
Для деяких робочих процесів внеску, як, наприклад, попередній перегляд сторінок для керівництва або викликів кодування, налагодження та виправлення помилок у кодовій базі, потрібно, щоб у вас був локальний запуск freeCodeCamp.
|
||||
|
||||
## Розкладіть сховище на GitHub
|
||||
['Forking'](https://help.github.com/articles/about-forks/) - це крок, де ви отримуєте власну копію головного сховища freeCodeCamp (a.k.a _repo_) на GitHub.
|
||||
|
||||
Це важливо, оскільки це дозволяє вам працювати над власною копією freeCodeCamp на GitHub або завантажувати (клонувати) ваше сховище для роботи на локальному рівні. Пізніше ви зможете подати запит на зміни, які потрібно перетягнути в основний сховище, із запиту на витяг.
|
||||
|
||||
> ** ProTip: **
|
||||
|
||||
> Головне сховище в `https://github.com/freeCodeCamp/freeCodeCamp` часто називають сховищем`upstream`.
|
||||
> Ваша вилка на `https://github.com/YOUR_USER_NAME/freeCodeCamp` часто називається сховищем`origin`.
|
||||
|
||||
#### Виконайте ці кроки, щоб розблокувати сховище `https://github.com/freeCodeCamp/freeCodeCamp`:
|
||||
1. Перейдіть у сховище freeCodeCamp на GitHub: <https://github.com/freeCodeCamp/freeCodeCamp>
|
||||
2. Клацніть кнопку "Fork" у верхньому правому куті інтерфейсу ([Детальніше тут](https://help.github.com/articles/fork-a-repo/))
|
||||
3. Після розблокування репозиторію вас перейдуть до вашої копії сховища freeCodeCamp за адресою `https: // github.com / YOUR_USER_NAME / freeCodeCamp`
|
||||
|
||||
! [GIF - Як розкрутити freeCodeCamp на GitHub] (/docs/images/github/how-to fork-freeCodeCamp.gif)
|
||||
|
||||
## Підготовка середовища розробки
|
||||
Після встановлення передумов вам потрібно підготувати середовище розробки. Це характерно для багатьох робочих процесів розвитку, і вам потрібно буде це зробити лише один раз.
|
||||
|
||||
#### Виконайте такі кроки, щоб підготувати ваше середовище розробки:
|
||||
1. Установіть [Git](https://git-scm.com/) або ваш улюблений клієнт Git, якщо ви ще цього не зробили. Оновлення до останньої версії; версія, яка постачається в комплекті з вашою ОС, може бути застарілою.
|
||||
|
||||
2. (Необов’язково, але рекомендується) [Установка SSH ключа](https://help.github.com/articles/generating-an-ssh-key/) для GitHub.
|
||||
|
||||
3. Встановіть редактор коду на ваш вибір.
|
||||
|
||||
Ми настійно рекомендуємо використовувати [VS Code](https://code.visualstudio.com/) або [Atom](https://atom.io/). Це чудові, безкоштовні та відкриті редактори кодів.
|
||||
|
||||
4. Налаштуйте підшивку для редактора коду.
|
||||
|
||||
У вас повинен бути [ESLint запущений у вашому редакторі](http://eslint.org/docs/user-guide/integrations.html), і він виділить все, що не відповідає [FreeCodeCamp's JavaScript Guide Guide](http://forum.freecodecamp.org/t/free-code-camp-javascript-style-guide/19121).
|
||||
|
||||
> Будь ласка, не ігноруйте жодних помилок зв’язування. Вони покликані **допомогти** та забезпечити чисту та просту базу коду.
|
||||
|
||||
## Клоніруйте свою копію freeCodeCamp
|
||||
["Клонування"](https://help.github.com/articles/cloning-a-repository/) - це те, де ви ** завантажуєте ** копію сховища з "віддаленого" місця, яке вам належить. або кимось іншим. У вашому випадку це віддалене місце розташування - це "вилка" сховища freeCodeCamp, яке повинно бути доступне за адресою `https://github.com/YOUR_USER_NAME/freeCodeCamp`.
|
||||
|
||||
Запустіть ці команди на локальній машині:
|
||||
|
||||
1. Відкрийте Terminal/Command Prompt/Shell в каталозі своїх проектів
|
||||
|
||||
_i.e .: `/yourprojectsdirectory/` _
|
||||
|
||||
2. Клонуйте розгалуження freeCodeCamp, замінивши "YOUR_USER_NAME" на ваше ім'я користувача GitHub
|
||||
|
||||
``
|
||||
git clone --depth = 1
|
||||
``
|
||||
|
||||
Це завантажить весь сховище freeCodeCamp у каталог ваших проектів.
|
||||
|
||||
Примітка: `--depth = 1` створює дрібний клон вашої вилки з лише останньою історією / фіксацією.
|
||||
|
||||
## Встановіть `upstream 'до основного сховища
|
||||
Тепер, коли ви завантажили копію виделки, вам потрібно буде встановити "вгору".
|
||||
|
||||
Як вже згадувалося раніше, головне сховище в `https://github.com/freeCodeCamp/freeCodeCamp` часто називають сховищем` upstream`. Ваша роздiлка в `https://github.com/YOUR_USER_NAME/freeCodeCamp` часто називається сховищем" origin ".
|
||||
|
||||
Вам потрібна довідка з вашого локального клону на сховище `upstream 'на додаток до сховища` origin'. Це так, що ви можете синхронізувати зміни з основного сховища, не вимагаючи повторного розгортання та клонування.
|
||||
|
||||
1. Змініть каталог на новий каталог freeCodeCamp:
|
||||
|
||||
``
|
||||
cd freeCodeCamp
|
||||
``
|
||||
|
||||
2. Додайте віддалену посилання на основне сховище freeCodeCamp:
|
||||
|
||||
``
|
||||
git remote add upstream https://github.com/freeCodeCamp/freeCodeCamp.git
|
||||
``
|
||||
|
||||
3. Переконайтесь, що конфігурація виглядає правильно:
|
||||
|
||||
``
|
||||
git remote -v
|
||||
``
|
||||
|
||||
Вихід повинен виглядати приблизно так:
|
||||
|
||||
``
|
||||
origin https://github.com/YOUR_USER_NAME/freeCodeCamp.git (fetch)
|
||||
origin https://github.com/YOUR_USER_NAME/freeCodeCamp.git (push)
|
||||
upstream https://github.com/freeCodeCamp/freeCodeCamp.git (fetch)
|
||||
upstream https://github.com/freeCodeCamp/freeCodeCamp.git (push)
|
||||
``
|
||||
|
||||
## Запуск freeCodeCamp локально на вашій машині
|
||||
Тепер, коли у вас є локальна копія freeCodeCamp, ви можете слідувати цим інструкціям для запуску локально. Це дозволить вам:
|
||||
|
||||
- Попередній перегляд змін на сторінках, як вони з'являться на навчальній платформі.
|
||||
- Робота над питаннями та вдосконаленнями інтерфейсу користувача
|
||||
- Налагодження та усунення проблем із серверами прикладних програм та клієнтськими програмами.
|
||||
|
||||
Ви можете пропустити запуску freeCodeCamp локально, якщо ви просто редагуєте файли, виконуючи `rebase` або вирішуючи конфлікти` merge`. Ви завжди можете повернутися до цієї частини інструкцій пізніше.
|
||||
|
||||
[Пропустити запуск freeCodeCamp локально] (# внесення змін-до-вашого-клону-до-freecodecamp-локально)
|
||||
|
||||
В даний час існує два способи локального запуску freeCodeCamp:
|
||||
- Doker (рекомендовано)
|
||||
- Lokal
|
||||
|
||||
Вам потрібно дотримуватися будь-якого ** одного ** з перерахованих вище способів.
|
||||
|
||||
Установка Docker в ідеалі призведе до меншої кількості помилок під час встановлення і має на меті мати найкращий досвід розробника. Ми використовуємо Docker для встановлення та запуску додаткових програмних залежностей за кадром. Це має забезпечити безпроблемний та постійний досвід роботи на більшості типів пристроїв / ОС.
|
||||
|
||||
Якщо у вас виникли проблеми з використанням одного методу, спробуйте скористатися іншим. Якщо у вас виникли проблеми з будь-яким методом, спершу проведіть веб-пошук своєї проблеми та перевірте, чи на неї вже відповіли. Якщо ви не можете знайти рішення, перегляньте нашу сторінку GitHub [проблеми](https://github.com/freeCodeCamp/freeCodeCamp/isissue) для вирішення проблеми та повідомте про проблему, якщо вона ще не була повідомлена.
|
||||
|
||||
І, як завжди, не соромтеся зайти в наш [Чат для учасників](https://gitter.im/FreeCodeCamp/Contributors) для швидких запитів.
|
||||
|
||||
### Встановлення передумов
|
||||
Почніть з установки необхідного програмного забезпечення:
|
||||
|
||||
Програмне забезпечення, необхідне для Docker і Local build:
|
||||
|
||||
| Необхідна умова | Версія | Примітки |
|
||||
| ------------ | ------- | ----- |
|
||||
| [Node.js](http://nodejs.org) | `10.x` | [LTS-графік] (https://github.com/nodejs/Release#release-schedule) |
|
||||
| npm (постачається в комплекті з Node) | `6.x` | Не має випусків LTS, ми використовуємо версію в комплекті з Node LTS |
|
||||
|
||||
** Документ побудувати додаткову умову: **
|
||||
|
||||
| Необхідна умова | Версія | Примітки |
|
||||
| ------------ | ------- | ----- |
|
||||
| [Docker CE](https://docs.docker.com/install/) | `Stable` | - |
|
||||
| [Docker Compose](https://docs.docker.com/compose/install/) | `Stable` | Потрібно встановити окремо, якщо не використовується macOS або Windows |
|
||||
|
||||
** Місцева додаткова умова: **
|
||||
|
||||
| Необхідна умова | Версія | Примітки |
|
||||
| ------------ | ------- | ----- |
|
||||
| [Сервер спільноти MongoDB](https://docs.mongodb.com/manual/administration/install-community/)| `3.6` |[Примітки до випуску](https://docs.mongodb.com/manual/release-notes/), Примітка. Зараз ми перебуваємо на `3.6`, планується оновлення[https://github.com/freeCodeCamp/ freeCodeCamp / issues / 18275). |
|
||||
|
||||
#### Важливо:
|
||||
Ми настійно рекомендуємо оновити до останніх стабільних версій програмного забезпечення, перерахованого вище, також відомого як версії Long Term Support (LTS).
|
||||
Якщо Node.js вже встановлений на вашій машині, виконайте такі команди, щоб перевірити версії:
|
||||
|
||||
`` sh
|
||||
node -v
|
||||
npm -v
|
||||
`` `
|
||||
|
||||
Якщо у вас інша версія, встановіть рекомендовану версію. Ми можемо підтримувати проблеми встановлення лише для рекомендованих версій.
|
||||
|
||||
Користувачі Windows:
|
||||
> Переконайтеся, що інструмент командного рядка, який ви використовуєте (наприклад, cmd, PowerShell, Git Bash для Windows, WSL), має правильні права користувача. Якщо можливо, слід запустити інструмент з привілеєм адміністратора. У Windows вам слід мати змогу запуститись як адміністратор, клацнувши правою кнопкою миші програму та вибравши "Запустити як адміністратор".
|
||||
|
||||
#### У мене виникають проблеми з установкою рекомендованих передумов. Що я повинен зробити?
|
||||
Ми регулярно розробляємо новітні або найпопулярніші операційні системи, такі як macOS 10.12 або новішої версії, Ubuntu 16.04 або новішої версії та Windows 10. Рекомендуємо досліджувати вашу конкретну проблему на таких ресурсах, як Google, Stack Overflow та Stack Exchange. Є хороший шанс, що хтось стикався з тим же питанням, і вже є відповідь на ваш конкретний запит.
|
||||
|
||||
Якщо ви перебуваєте в іншій ОС та / або все ще стикаєтеся з проблемами, зверніться до [спільноти дописувачів на нашому громадському форумі] (https://forum.freecodecamp.org/c/contributors) або до [чату дописувача кімната](https://gitter.im/freeCodeCamp/Contributors).
|
||||
|
||||
** Будь ласка, уникайте створення випусків GitHub для попередніх проблем. Вони виходять за межі цього проекту **.
|
||||
|
||||
### Налаштування залежностей
|
||||
|
||||
#### Крок 1: Налаштування файлу змінної середовища
|
||||
Клавіші API та змінні середовища за замовчуванням зберігаються у файлі `sample.env`. Цей файл потрібно скопіювати у новий файл під назвою `.env`, до якого динамічно звертається під час кроку встановлення.
|
||||
|
||||
``
|
||||
# Створіть копію "sample.env" та назвіть її ".env".
|
||||
# Заселіть його необхідними ключами та секретами API:
|
||||
|
||||
# macOS / Linux
|
||||
cp sample.env .env
|
||||
|
||||
# Windows
|
||||
copy sample.env .env
|
||||
`` `
|
||||
|
||||
Клавіші у файлі `.env` * не * потрібно змінювати, щоб локально запускати додаток. Ви можете залишити значення за замовчуванням, скопійовані з `sample.env` як є.
|
||||
|
||||
Майте на увазі, якщо ви хочете скористатися додатковими послугами, вам доведеться придбати власні ключі API для цих служб і відповідно відредагувати записи у файлі `.env`.
|
||||
|
||||
** Створення збірки Docker: ** Якщо за допомогою збірки Docker і установки Docker доручили використовувати Docker Toolbox (стосується старих версій macOS і Windows), вам потрібно змінити `DOCKER_HOST_LOCATION` у вашому файлі` .env` вихід з команди `docker-machine ip`. Якщо ви використовуєте будь-який Docker, що підтримує аромат Linux, або ви використовуєте Docker Desktop (нові версії macOS та Windows 10), ви можете залишити `DOCKER_HOST_LOCATION` за замовчуванням.
|
||||
|
||||
#### Крок 2: Встановлення залежностей
|
||||
|
||||
Цей крок встановить залежності, необхідні для запуску програми:
|
||||
|
||||
** Створення докера: **
|
||||
``
|
||||
npm run docker: init
|
||||
npm run docker: install
|
||||
npm run docker: seed
|
||||
``
|
||||
|
||||
Кожна з команд Docker, наведених вище, потребує певного часу. Вам слід дочекатися, коли кожна команда буде повністю виконана, перш ніж виконувати наступну.
|
||||
|
||||
Вам також потрібно буде встановити кілька пакетів в хвилину за межами Docker. Цей крок можна пропустити, якщо ви лише запускаєте додаток локально і не використовуєте git.
|
||||
```shell
|
||||
npm ci
|
||||
```
|
||||
|
||||
Все вищезазначене потрібно запустити лише при першому налаштуванні локального середовища розробників.
|
||||
|
||||
** Місцевий збір: **
|
||||
|
||||
``
|
||||
# Встановити залежності NPM
|
||||
npm ci
|
||||
``
|
||||
|
||||
#### Крок 3: Запустіть MongoDB і заведіть базу даних (лише для локальної збірки)
|
||||
|
||||
Цей крок стосується лише локальної збірки; якщо ви використовуєте збірку Docker, перейдіть до кроку 4.
|
||||
|
||||
Якщо у вас MongoDB не працює у налаштуваннях, відмінних від за замовчуванням, URL-адреса, збережена як значення "MONGOHQ_URL" у файлі `.env`, повинна працювати нормально. Якщо ви використовуєте власну конфігурацію, змініть це значення за потребою.
|
||||
|
||||
Перш ніж запустити програму локально, вам потрібно буде запустити послугу MongoDB:
|
||||
|
||||
Запустіть сервер MongoDB в окремому терміналі:
|
||||
- На macOS та Ubuntu:
|
||||
|
||||
`` sh
|
||||
mongod
|
||||
`` `
|
||||
|
||||
- У Windows потрібно вказати повний шлях до бінарного файлу `mongod`
|
||||
|
||||
``
|
||||
"C:\Program files\MongoDB\Server\3.6\bin\mongod"
|
||||
``
|
||||
|
||||
Не забудьте замінити `3.6` на встановлену вами версію
|
||||
|
||||
> ProTip:
|
||||
> Ви можете уникнути необхідності запускати MongoDB кожен раз, встановлюючи його як фоновий сервіс.
|
||||
> Ви можете [дізнатися більше про це в їх документації для вашої ОС](https://docs.mongodb.com/manual/administration/install-community/)
|
||||
|
||||
Далі давайте насіння в базу даних. На цьому кроці ми виконуємо команду нижче, яка заповнює сервер MongoDB деякими початковими наборами даних, необхідними службами. Сюди входять, серед іншого, кілька схем.
|
||||
|
||||
``
|
||||
npm запуск насіння
|
||||
``
|
||||
|
||||
#### Крок 4: Запустіть клієнтську програму freeCodeCamp та сервер API
|
||||
Тепер ви можете запустити сервер API та клієнтські програми.
|
||||
|
||||
** Створення докера: **
|
||||
``
|
||||
npm run docker:develop
|
||||
``
|
||||
|
||||
** Місцевий збір: **
|
||||
``
|
||||
npm run develop
|
||||
``
|
||||
|
||||
Ця команда запустить усі сервіси, включаючи сервер API та клієнтські програми, доступні для роботи.
|
||||
|
||||
Після готовності відкрийте веб-браузер і відвідайте <http: // localhost: 8000>. Якщо додаток завантажується, вітаємо - ви все готові!
|
||||
|
||||
> ProTip:
|
||||
> Сервер API обслуговує API на `http: // localhost: 3000 '
|
||||
> Додаток Гетсбі обслуговує клієнтську програму за адресою `http: // localhost: 8000`
|
||||
|
||||
Якщо ви відвідаєте <http: // localhost: 3000 / explorer>, ви повинні побачити доступні API.
|
||||
|
||||
Вітаємо 🎉🎉🎉! Тепер у вас є копія всієї навчальної платформи freeCodeCamp на вашій локальній машині.
|
||||
|
||||
## Як увійти під час роботи локально
|
||||
Ваша локальна установка автоматично заповнює локального користувача в базі даних. Натиснувши кнопку `Увійти`, ви автоматично підтвердите автентифікацію в локальній програмі.
|
||||
|
||||
Однак доступ до сторінки портфоліо користувачів є дещо складним. У процесі розвитку Gatsby бере на себе обслуговування сторінок на стороні клієнта, отже, ви отримаєте сторінку "404" для портфоліо користувачів під час роботи на місцях.
|
||||
|
||||
Якщо просто натиснути кнопку "Попередній перегляд користувальницької сторінки 404", ви перейдете на правильну сторінку.
|
||||
|
||||
! [Зображення - як увійти під час роботи локально](https://user-images.githubusercontent.com/1884376/52650951-48922e80-2f11-11e9-9eee-360a25ad28ad.gif)
|
||||
|
||||
## Швидкі посилання на команди при локальній роботі
|
||||
|
||||
Швидке посилання на команди, які знадобляться при локальній роботі.
|
||||
|
||||
** Створення докера: **
|
||||
|
||||
> ### Todo: Додайте швидкий список команд докер
|
||||
|
||||
** Місцевий збір: **
|
||||
|
||||
| команда | опис |
|
||||
| ------- | ----------- |
|
||||
| `npm ci` | Встановлює / перевстановлює всі залежності та завантажує різні служби. |
|
||||
| `npm run seed` | Розбирає всі файли розмітки викликів і вставляє їх у MongoDB. |
|
||||
| `npm run create` | Запускає сервер API FreeCodeCamp і клієнтські програми. |
|
||||
| `npm test` | Запустіть усі тести JS в системі, включаючи клієнтські, серверні, тестові та випробувальні роботи. |
|
||||
| `npm run test: client` | Запустіть клієнтський тестовий набір. |
|
||||
| `npm run test: curriculum` | Запустіть тестовий набір навчальних програм. |
|
||||
| `npm run test: server` | Запустіть тестовий набір сервера. |
|
||||
| `npm run clean` | Видаляє всі залежності та очищує кеші. |
|
||||
|
||||
## Внесення змін у ваш клон FreeCodeCamp локально
|
||||
Тепер ви можете вносити зміни до файлів і вносити свої зміни до локального клону своєї вилки.
|
||||
|
||||
Виконайте такі дії:
|
||||
|
||||
1. Перевірте, що ви перебуваєте на гілці `master`
|
||||
|
||||
``
|
||||
git status
|
||||
``
|
||||
|
||||
Ви повинні отримати такий результат:
|
||||
|
||||
``
|
||||
On branch master
|
||||
Your branch is up-to-date with 'origin/master'.
|
||||
|
||||
нічого не робити, робочий каталог чистий
|
||||
``
|
||||
|
||||
Якщо ви не є майстром або ваш робочий каталог не є чистим, вирішіть всі непогашені файли / комісії та оформити замовлення `master ':
|
||||
|
||||
``
|
||||
git checkout master
|
||||
``
|
||||
|
||||
2. Синхронізуйте останні зміни з гілки freeCodeCamp висхідної `master` гілки до локальної гілки master
|
||||
|
||||
** Примітка. ** Якщо у вас є якийсь непогашений запит на витяг, який ви зробили з `master` гілки вашої вилки, ви втратите їх в кінці цього кроку. Перед виконанням цього кроку ви повинні переконатися, що ваш запит на притягнення об'єднаний модератором. Щоб уникнути цього сценарію, слід * завжди * працювати над гілкою, окремо від головного.
|
||||
|
||||
Цей крок ** синхронізує останні зміни ** з головного сховища freeCodeCamp. Важливо, щоб ви переобладнували свою філію на останній "upstream / master" якомога частіше, щоб пізніше уникнути конфліктів.
|
||||
|
||||
Оновіть локальну копію сховища freeCodeCamp висхідного потоку:
|
||||
``
|
||||
git fetch upstream stream
|
||||
``
|
||||
|
||||
Жорсткий скидання вашого головного відділення за допомогою майстра freeCodeCamp:
|
||||
|
||||
``
|
||||
git reset --hard upstream/master
|
||||
``
|
||||
|
||||
Перемістіть свою головну гілку до свого походження, щоб мати чисту історію на вилці на GitHub:
|
||||
|
||||
``
|
||||
git push origin master --force
|
||||
``
|
||||
|
||||
Ви можете перевірити, чи ваш поточний головний збір відповідає висхідному / головному, виконавши diff:
|
||||
|
||||
``
|
||||
git diff upstream/master
|
||||
``
|
||||
|
||||
Отриманий результат повинен бути порожнім.
|
||||
|
||||
3. Створіть нову гілку
|
||||
|
||||
Робота над окремим відділенням для кожного випуску допоможе вам зберегти чисту копію місцевої роботи. Ніколи не слід працювати над "майстром". Це забруднить вашу копію freeCodeCamp, і вам, можливо, доведеться почати спочатку зі свіжим клоном або виделкою.
|
||||
|
||||
Перевірте, чи перебуваєте ви на "master", як було пояснено раніше, і відключіться звідти:
|
||||
|
||||
``
|
||||
git checkout -b fix/update-guide-for-xyz
|
||||
``
|
||||
|
||||
Назва вашої філії має починатися з `fix/`, `feat/`, `docs/` тощо. Уникайте використання номерів випусків у гілках. Зберігайте їх короткими, змістовними та унікальними.
|
||||
|
||||
Деякі приклади добрих назв гілок:
|
||||
|
||||
``
|
||||
fix/update-challenges-for-react
|
||||
fix/update-guide-for-html-css
|
||||
fix/platform-bug-sign-in-issues
|
||||
feat/add-guide-article-for-javascript
|
||||
translate/add-spanish-basic-html
|
||||
``
|
||||
|
||||
4. Редагуйте сторінки та працюйте над кодом у вашому улюбленому текстовому редакторі
|
||||
|
||||
5. Після того, як ви задоволені змінами, необов'язково запускайте локально freeCodeCamp для попереднього перегляду змін
|
||||
|
||||
6. Переконайтеся, що ви виправили будь-які помилки та перевірте форматування змін. У розділі [docs](/docs/) для статей керівництва та проблем кодування у нас є посібники зі стилів
|
||||
|
||||
7. Перевірте і підтвердьте файли, які ви оновлюєте
|
||||
|
||||
``
|
||||
git статус
|
||||
``
|
||||
|
||||
Тут має відображатися перелік редакторів, які ви редагували нестандартними.
|
||||
|
||||
``
|
||||
Про галузевий подвиг/документацію
|
||||
Ваша філія є в курсі "upstream/feat/docs".
|
||||
|
||||
Зміни, які не ставлять для комісії:
|
||||
(використовуйте "git add / rm <file> ...", щоб оновити те, що буде зроблено)
|
||||
(використовуйте "git checkout - <file> ...", щоб скасувати зміни в робочому каталозі)
|
||||
|
||||
fix/update-challenges-for-react
|
||||
fix/update-guide-for-html-css
|
||||
fix/platform-bug-sign-in-issues
|
||||
feat/add-guide-article-for-javascript
|
||||
translate/add-spanish-basic-html
|
||||
...
|
||||
``
|
||||
|
||||
8. Поетапно зміни і візьміть на себе зобов’язання
|
||||
|
||||
На цьому кроці слід позначити лише ті файли, які ви самі редагували чи додавали. Ви можете виконати скидання та усунення файлів, які ви не мали наміру змінювати, якщо це потрібно.
|
||||
|
||||
``
|
||||
git add path/to/my/changed/file.ext
|
||||
``
|
||||
|
||||
Або ви можете додати всі нестандартні файли до області постановки:
|
||||
|
||||
``
|
||||
git add.
|
||||
``
|
||||
|
||||
Тільки файли, які були переміщені в область постановки, будуть додані під час здійснення зобов’язання.
|
||||
|
||||
``
|
||||
git status
|
||||
``
|
||||
|
||||
Вихід:
|
||||
``
|
||||
Про feat/documentation
|
||||
Ваша філія є в курсі "upstream/feat/documentation".
|
||||
|
||||
Внесення змін:
|
||||
(використовуйте "git reset HEAD <file> ..." до нестабільності)
|
||||
|
||||
modified: CONTRIBUTING.md
|
||||
modified: docs/README.md
|
||||
modified: docs/how-to-setup-freecodecamp-locally.md
|
||||
modified: docs/how-to-work-on-guide-articles.md
|
||||
``
|
||||
|
||||
Тепер ви можете здійснити свої зміни за допомогою короткого повідомлення:
|
||||
|
||||
``
|
||||
git commit -m "виправити: моє коротке повідомлення про здійснення"
|
||||
``
|
||||
|
||||
Деякі приклади:
|
||||
|
||||
``
|
||||
виправити: оновити статтю керівництва для Java - для циклу
|
||||
подвиг: додайте посібник для навичок alexa
|
||||
``
|
||||
|
||||
Необов’язково:
|
||||
|
||||
Ми настійно рекомендуємо скласти звичайне повідомлення про фіксацію. Це хороша практика, яку ви побачите в деяких популярних сховищах з відкритим кодом. Як розробник, це спонукає вас дотримуватися стандартних практик.
|
||||
|
||||
Деякі приклади звичайних повідомлень про фіксацію:
|
||||
|
||||
``
|
||||
fix: update HTML guide article
|
||||
fix: update build scripts for Travis-CI
|
||||
feat: add article for JavaScript hoisting
|
||||
docs: update contributing guidelines
|
||||
``
|
||||
|
||||
Зберігайте ці короткі, не більше 50 символів. Ви завжди можете додати додаткову інформацію в опис повідомлення про фіксацію.
|
||||
|
||||
Це не займе додаткового часу, ніж нетрадиційне повідомлення типу "оновити файл" або "додати індекс.md"
|
||||
|
||||
Ви можете дізнатися більше про те, чому слід використовувати звичайні коміти [тут](https://www.conventionalcommits.org/en/v1.0.0-beta.2/#why-use-conventional-commissions).
|
||||
|
||||
9. Якщо ви усвідомлюєте, що вам потрібно відредагувати файл або оновити повідомлення про фіксацію після здійснення зобов’язання, ви можете зробити це після редагування файлів за допомогою:
|
||||
|
||||
``
|
||||
git commit --amend
|
||||
``
|
||||
|
||||
Це відкриє текстовий редактор за замовчуванням, наприклад `nano` або` vi`, де ви можете редагувати заголовок повідомлення про фіксацію та додавати / редагувати опис.
|
||||
|
||||
10. Далі ви можете натиснути свої зміни на вилку.
|
||||
|
||||
``
|
||||
git push origin branch/name-here
|
||||
``
|
||||
|
||||
## Запрошення запиту на виклик (PR)
|
||||
Після внесення змін перевірте тут [як відкрити запит на витягнення] (/ docs / how-to-open-a-pull-request.md).
|
||||
|
||||
## Отримання довідки
|
||||
Якщо ви застрягли і вам потрібна допомога, повідомте нас про це, запитавши в категорії ["Дописувачі" на нашому форумі](https://forum.freecodecamp.org/c/contributors) або в [кімнаті чату для учасників] (https : //gitter.im/FreeCodeCamp/Contributors) на Gitter.
|
||||
|
||||
Можливо, у консолі вашого веб-переглядача або в Bash / Terminal / Command Line буде помилка, яка допоможе визначити проблему. Введіть це повідомлення про помилку в описі проблеми, щоб інші могли легше визначити проблему та допомогти знайти рішення.
|
||||
|
||||
### Вирішення проблем
|
||||
Якщо програма запускається, але у вас виникають помилки інтерфейсу користувача, такі як шрифти не завантажуються або редактор коду не відображається належним чином, перегляньте наступне, залежно від локальної установки:
|
||||
|
||||
** Створення докера: **
|
||||
``
|
||||
# Ми використовуємо моно репо і маємо декілька компонентів (сервер, клієнт, інструменти, плагіни тощо)
|
||||
# Використовуйте цю команду для очищення всіх залежностей у всіх компонентах
|
||||
npm run docker: clean
|
||||
|
||||
# Перевстановити пакети npm
|
||||
npm run docker: install
|
||||
|
||||
# Посіяти базу даних
|
||||
npm run docker: seed
|
||||
|
||||
# Перезавантажте програму
|
||||
npm run docker: develop
|
||||
``
|
||||
|
||||
** Місцевий збір: **
|
||||
``
|
||||
npm run clean
|
||||
npm ci
|
||||
npm run seed
|
||||
npm run develop
|
||||
``
|
||||
|
||||
Якщо ви не можете ввійти, а натомість ви бачите банер із повідомленням про помилку, в якому йдеться про те, що про нього буде повідомлено freeCodeCamp, перевірте, чи ваш локальний порт 3000 не використовується іншою програмою.
|
||||
|
||||
Якщо ви отримуєте помилки під час встановлення залежностей, переконайтеся, що ви не перебуваєте в мережі з обмеженими можливостями, або якщо налаштування брандмауера не заважають вам отримувати доступ до ресурсів. Одним із варіантів рішення буде використання послуги VPN, якщо це можливо та дозволено у вашому оточенні.
|
@ -1,170 +0,0 @@
|
||||

|
||||
|
||||
[](http://makeapullrequest.com)
|
||||
[](http://www.firsttimersonly.com/)
|
||||
[](https://www.codetriage.com/freecodecamp/freecodecamp)
|
||||
[](https://gitpod.io/from-referrer/)
|
||||
|
||||
## Mã nguồn mở và chương trình học của freeCodeCamp.org
|
||||
|
||||
[freeCodeCamp.org](https:/www.freecodecamp.org) là một giao diện thân thiện cho bạn học lập trình miễn phí. Website được tạo ra nhờ sự đóng góp của [donor-supported 501(c)(3) nonprofit](https://donate.freecodecamp.org) với mục đích để giúp hàng triệu người tiếp cận với chuyên nghành công nghệ thông tin. Cộng đồng của chúng tôi đã giùp hơn 10,000 người có được công việc lập trình đầu tiên của mình.
|
||||
|
||||
Chương trình học lập trình web full-stack hoàn toàn miễn phí và tự học theo thời gian của bạn. Chúng tôi có hơn hàng ngàn câu hỏi lập trình tự tương tác để giúp bạn tiến triễn kỹ năng lập trình của mình.
|
||||
|
||||
## Mục lục
|
||||
|
||||
- [Các chứng chỉ](#certifications)
|
||||
- [Nền tản học tập](#the-learning-platforms)
|
||||
- [Báo lỗi và vấn đề](#found-a-bug)
|
||||
- [Báo cáo vấn đề bảo mật](#found-a-security-issue)
|
||||
- [Đóng góp](#contributing)
|
||||
- [Tình trạng nền tảng, xây dựng và triển khai](#platform-build-and-deployment-status)
|
||||
- [Giấy phép](#license)
|
||||
|
||||
<div id='certifications'/>
|
||||
|
||||
### Chứng Chỉ
|
||||
|
||||
freeCodeCamp.org cấp một số chứng trỉ lập trình miễn phí.
|
||||
Mỗi chứng chỉ yêu cầu lập trình 5 dự án ứng dụng web bắt buộc và trước đó sẽ có rất nhiều các bài thử thách nhỏ để giúp bạn chuẩn bị cho việc lập trình các ứng dụng này.
|
||||
|
||||
Từng phần trong 30 dự án trong chương trình học của freeCodeCamp.org đều có một câu chuyện riêng và được kiểm tra tự động hoá. Những điểm này sẽ giúp bạn học và nâng độ khó từng chút một và bảo đảm bạn hoàn thành tất cả yêu cầu trước khi nộp bài.
|
||||
|
||||
Bạn có thể xem các bài kiểm tra tại [freeCodeCamp's CDN](https://cdn.freecodecamp.org/testable-projects-fcc/v1/bundle.js). Dựa vào đó bạn có thể xây dựng những dự án trên những trang như là CodePen và Glitch - hoặc ngay cả trên môi trường lập trình của máy tính bạn.
|
||||
|
||||
Một khi bạn hoàn thành yêu cầu, bạn sẽ nhận được chứng chỉ. Bạn sẽ luôn có thể liên kết chứng chỉ này với Linkedin hoặc ghi vào CV của bạn. Khi mà công ty bạn đang xin việc hay một khách hàng freelance của bạn nhấn vào đường dẫn đó, họ sẽ thấy một chứng chỉ xác nhận giành riêng cho bạn.
|
||||
|
||||
Ngoại lệ, có thể bạn sẽ không nhận được chứng chỉ trong trường hợp chúng tôi phát hiện vi phạm [Academic Honesty Policy](https://www.freecodecamp.org/academic-honesty). Khi chúng tôi phát hiện quay chép bài (nộp bài lập trình hay dự án của người khác khi không có lưu chú về phần đó), việc xử lí sẽ như những tổ chức giáo dục khác - chúng tôi sẽ thu hồi chứng chỉ của người đó và cấm chỉ học viên.
|
||||
|
||||
Dưới đây là sáu chứng chỉ:
|
||||
|
||||
#### 1. Chứng Chỉ Thiết Kế Web Đáp Ứng
|
||||
|
||||
- [Basic HTML and HTML5](https://learn.freecodecamp.org/responsive-web-design/basic-html-and-html5)
|
||||
- [Basic CSS](https://learn.freecodecamp.org/responsive-web-design/basic-css)
|
||||
- [Applied Visual Design](https://learn.freecodecamp.org/responsive-web-design/applied-visual-design)
|
||||
- [Applied Accessibility](https://learn.freecodecamp.org/responsive-web-design/applied-accessibility)
|
||||
- [Responsive Web Design Principles](https://learn.freecodecamp.org/responsive-web-design/responsive-web-design-principles)
|
||||
- [CSS Flexbox](https://learn.freecodecamp.org/responsive-web-design/css-flexbox)
|
||||
- [CSS Grid](https://learn.freecodecamp.org/responsive-web-design/css-grid)
|
||||
<br />
|
||||
<br />
|
||||
**Projects**: Tribute Page, Survey Form, Product Landing Page, Technical Documentation Page, Personal Portfolio Webpage
|
||||
|
||||
#### 2. Chứng Chỉ Thuật Toán và Cấu Trức Dữ Liệu trong JavaScript
|
||||
|
||||
- [Basic JavaScript](https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/basic-javascript)
|
||||
- [ES6](https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/es6)
|
||||
- [Regular Expressions](https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/regular-expressions)
|
||||
- [Debugging](https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/debugging)
|
||||
- [Basic Data Structures](https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/basic-data-structures)
|
||||
- [Algorithm Scripting](https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/basic-algorithm-scripting)
|
||||
- [Object Oriented Programming](https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/object-oriented-programming)
|
||||
- [Functional Programming](https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/functional-programming)
|
||||
- [Intermediate Algorithm Scripting](https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/intermediate-algorithm-scripting)
|
||||
<br />
|
||||
<br />
|
||||
**Projects**: Palindrome Checker, Roman Numeral Converter, Caesar's Cipher, Telephone Number Validator, Cash Register
|
||||
|
||||
#### 3. Chứng Chỉ Thư Viện Front End
|
||||
|
||||
- [Bootstrap](https://learn.freecodecamp.org/front-end-libraries/bootstrap)
|
||||
- [jQuery](https://learn.freecodecamp.org/front-end-libraries/jquery)
|
||||
- [Sass](https://learn.freecodecamp.org/front-end-libraries/sass)
|
||||
- [React](https://learn.freecodecamp.org/front-end-libraries/react)
|
||||
- [Redux](https://learn.freecodecamp.org/front-end-libraries/redux)
|
||||
- [React and Redux](https://learn.freecodecamp.org/front-end-libraries/react-and-redux)
|
||||
<br />
|
||||
<br />
|
||||
**Projects**: Random Quote Machine, Markdown Previewer, Drum Machine, JavaScript Calculator, 25 + 5 Clock
|
||||
|
||||
#### 4. Chứng Chỉ Trực quan hóa Dữ Liệu
|
||||
|
||||
- [Data Visualization with D3](https://learn.freecodecamp.org/data-visualization/data-visualization-with-d3)
|
||||
- [JSON APIs and Ajax](https://learn.freecodecamp.org/data-visualization/json-apis-and-ajax)
|
||||
<br />
|
||||
<br />
|
||||
**Projects**: Bar Chart, Scatterplot Graph, Heat Map, Choropleth Map, Treemap Diagram
|
||||
|
||||
#### 5. Chứng Chỉ APIs và Microservices
|
||||
|
||||
- [Managing Packages with Npm](https://learn.freecodecamp.org/apis-and-microservices/managing-packages-with-npm)
|
||||
- [Basic Node and Express](https://learn.freecodecamp.org/apis-and-microservices/basic-node-and-express)
|
||||
- [MongoDB and Mongoose](https://learn.freecodecamp.org/apis-and-microservices/mongodb-and-mongoose)
|
||||
<br />
|
||||
<br />
|
||||
**Projects**: Timestamp Microservice, Request Header Parser, URL Shortener, Exercise Tracker, File Metadata Microservice
|
||||
|
||||
#### 6. Chứng Chỉ Bảo Mật Thông Tin và Đảm Bảo Chất Lượng
|
||||
|
||||
- [Information Security with HelmetJS](https://learn.freecodecamp.org/information-security-and-quality-assurance/information-security-with-helmetjs)
|
||||
- [Quality Assurance and Testing with Chai](https://learn.freecodecamp.org/information-security-and-quality-assurance/quality-assurance-and-testing-with-chai)
|
||||
- [Advanced Node and Express](https://learn.freecodecamp.org/information-security-and-quality-assurance/advanced-node-and-express)
|
||||
<br />
|
||||
<br />
|
||||
**Projects**: Metric-Imperial Converter, Issue Tracker, Personal Library, Stock Price Checker, Anonymous Message Board
|
||||
|
||||
#### Chứng nhận lập trình Full Stack
|
||||
|
||||
Khi bạn đã kiếm được tất cả 6 chứng chỉ này, bạn sẽ có thể yêu cầu Chứng nhận phát triển Full Stack freeCodeCamp.org. Chứng nhận này thể hiện rằng bạn đã hoàn thành khoảng 1.800 giờ lập trình sử dụng các công cụ phát triển web.
|
||||
|
||||
#### Các chứng chỉ cũ
|
||||
|
||||
Chúng tôi cũng có 3 loại chứng chỉ cũ từ chương trình giảng dạy năm 2015 vẫn còn có thể áp dụng. Tất cả các dự án bắt buộc cho các chứng nhận này sẽ vẫn có sẵn trên freeCodeCamp.org.
|
||||
|
||||
- Chứng chỉ phát triển Front End cũ
|
||||
- Chứng chỉ trực quan hóa dữ liệu cũ
|
||||
- Chứng chỉ phát triển Back End cũ
|
||||
|
||||
<div id='the-learning-platforms'/>
|
||||
|
||||
### Nền Tảng Học Tập
|
||||
|
||||
Mã lập trình đang được chạy trực tiếp trên [freeCodeCamp.org](https://www.freecodecamp.org).
|
||||
|
||||
Cộng đồng của chúng tôi còn có:
|
||||
|
||||
- [Diễn đàn](https://forum.freecodecamp.org) nơi bạn thường có thể nhận trợ giúp lập trình hoặc phản hồi dự án trong vài giờ.
|
||||
- [Kênh YouTube](https://youtube.com/freecodecamp) với các khóa học miễn phí về Python, SQL, Android và nhiều công nghệ khác.
|
||||
- [Podcast](https://podcast.freecodecamp.org/) với những thông tin công nghệ và các câu truyện truyền cảm hứng từ các nhà phát triển.
|
||||
- [Hướng dẫn toàn diện cho hàng ngàn chủ đề lập trình](https://guide.freecodecamp.org/)
|
||||
- [Tin tức dành cho nhà phát triển](https://www.freecodecamp.org/news), một nơi miễn phí, nguồn mở, không có quảng cáo đăng chèn lên các bài viết trên blog của bạn.
|
||||
|
||||
> ### [Tham gia cùng chúng tôi tại đây](https://www.freecodecamp.org/signin).
|
||||
|
||||
<div id='found-a-bug'/>
|
||||
|
||||
### Báo Lỗi và Vấn Đề
|
||||
|
||||
Nếu bạn nghĩ rằng bạn đã tìm thấy một lỗi, đầu tiên hãy đọc bài viết [Cách báo cáo lỗi](https://forum.freecodecamp.org/t/how-to-report-a-bug/19543) và làm theo hướng dẫn
|
||||
|
||||
Nếu bạn nghĩ đó là một lỗi mới và đã xác nhận rằng ai đó cũng đang gặp phải vấn đề tương tự, hãy tiếp tục và tạo một vấn đề mới trên Github. Hãy chắc chắn cung cấp càng nhiều thông tin càng tốt để chúng tôi có thể sửa lỗi.
|
||||
|
||||
<div id='found-a-security-issue'/>
|
||||
|
||||
### Báo Lỗi Bảo Mật
|
||||
|
||||
Nếu bạn nghĩ rằng bạn đã tìm thấy một lỗ hổng, xin vui lòng có trách nhiệm báo cáo. Vui lòng đừng tạo các vấn đề cho các vấn đề liên quan đến bảo mật trên GitHub. Thay vào đó, vui lòng gửi email đến `security@freecodecamp.org` và chúng tôi sẽ xem xét ngay lập tức.
|
||||
|
||||
<div id='contributing'/>
|
||||
|
||||
### Đóng Góp
|
||||
|
||||
> ### [Vui lòng làm theo các bước đóng góp sau.](CONTRIBUTING.md)
|
||||
|
||||
<div id='platform-build-and-deployment-status'/>
|
||||
|
||||
### Tình Trạng Nền Tảng, Xây Dựng và Triển Khai
|
||||
|
||||
Trạng thái nền tảng chung cho tất cả các ứng dụng của chúng tôi có sẵn tại [`status.freecodecamp.org`](https://status.freecodecamp.org). Trạng thái xây dựng và triển khai mã lập trình có sẵn trong [DevOps Guide](/docs/devops.md).
|
||||
|
||||
<div id='license'/>
|
||||
|
||||
### Giấy Phép
|
||||
|
||||
Bản quyền © 2019 freeCodeCamp.org
|
||||
|
||||
Nội dung của kho lưu trữ này bị ràng buộc bởi các giấy phép sau:
|
||||
|
||||
- Phần mềm máy tính được cấp phép theo giấy phép [BSD-3](LICENSE.md).
|
||||
- Các tài liệu học tập trong thư mục [`/curriculum`](/curriculum) bao gồm các thư mục con được cấp phép theo giấy phép [CC-BY-SA-4.0](/curriculum/LICENSE.md).
|
@ -5,21 +5,22 @@ freeCodeCamp 技术专栏已上线,热爱写作的开发者可以申请成为
|
||||
专栏基于开源 CMS(内容管理系统)Ghost,界面简洁美观,支持 Markdown 和富文本写作,可轻松嵌入代码块、图片、视频。
|
||||
|
||||
## 如何成为 freeCodeCamp 专栏作者
|
||||
|
||||
**如果你**
|
||||
|
||||
* 希望提升自己的专业水平和写作技能
|
||||
* 热爱创作,乐于和大家分享 IT 专业知识
|
||||
* 或是想要通过自己的职业成长故事(比如自学编程成为开发者)鼓励更多在路上的人们
|
||||
* 希望和 freeCodeCamp 一起帮助更多人学习,提升自己的影响力
|
||||
- 希望提升自己的专业水平和写作技能
|
||||
- 热爱创作,乐于和大家分享 IT 专业知识
|
||||
- 或是想要通过自己的职业成长故事(比如自学编程成为开发者)鼓励更多在路上的人们
|
||||
- 希望和 freeCodeCamp 一起帮助更多人学习,提升自己的影响力
|
||||
|
||||
欢迎[填写表单](http://freecodecamp-chinese.mikecrm.com/IADsaCW),申请成为 freeCodeCamp 专栏(中文版)作者。
|
||||
|
||||
**如果审核通过**
|
||||
|
||||
* 编辑团队会通过邮件回复你,帮助你注册专栏作者账号
|
||||
* 接下来由你自己安排时间创作文章
|
||||
* 在你完成初稿之后,编辑团队会提供修改建议
|
||||
* 文章定稿,发布在 freeCodeCamp 官网和微信公众号
|
||||
- 编辑团队会通过邮件回复你,帮助你注册专栏作者账号
|
||||
- 接下来由你自己安排时间创作文章
|
||||
- 在你完成初稿之后,编辑团队会提供修改建议
|
||||
- 文章定稿,发布在 freeCodeCamp 官网和微信公众号
|
||||
|
||||
## 写作指南
|
||||
|
@ -24,7 +24,9 @@
|
||||
+ 'Since 2015, 40,000 graduates have gotten jobs at tech '
|
||||
+ 'companies including Google, Apple, Amazon, and Microsoft.' name='twitter:description' />
|
||||
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.14.0/css/all.min.css" integrity="sha512-1PKOgIY59xJ8Co8+NE6FZ+LOAZKjy+KY8iq0G4B3CyeY6wYHN3yt9PW0XpSriVlkMXe40PTKnXrLnZ9+fkDaog==" crossorigin="anonymous" />
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.14.0/css/all.min.css"
|
||||
integrity="sha512-1PKOgIY59xJ8Co8+NE6FZ+LOAZKjy+KY8iq0G4B3CyeY6wYHN3yt9PW0XpSriVlkMXe40PTKnXrLnZ9+fkDaog=="
|
||||
crossorigin="anonymous" />
|
||||
|
||||
<!-- Theme -->
|
||||
<!-- <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/docsify-themeable@0/dist/css/theme-simple.css"> -->
|
||||
@ -46,6 +48,7 @@
|
||||
// Main Config
|
||||
homepage: 'index.md',
|
||||
loadSidebar: true,
|
||||
autoHeader: true,
|
||||
|
||||
// common aliases
|
||||
alias: {
|
||||
@ -76,7 +79,7 @@
|
||||
},
|
||||
|
||||
'flexible-alerts': {
|
||||
style: 'flat'
|
||||
style: 'callout'
|
||||
},
|
||||
|
||||
pagination: {
|
||||
@ -120,6 +123,8 @@
|
||||
<script src="https://unpkg.com/docsify-pagination/dist/docsify-pagination.min.js"></script>
|
||||
<script src="https://unpkg.com/docsify-remote-markdown/dist/docsify-remote-markdown.min.js"></script>
|
||||
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.14.0/js/all.min.js" integrity="sha512-YSdqvJoZr83hj76AIVdOcvLWYMWzy6sJyIMic2aQz5kh2bPTd9dzY3NtdeEAzPp/PhgZqr4aJObB3ym/vsItMg==" crossorigin="anonymous"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.14.0/js/all.min.js"
|
||||
integrity="sha512-YSdqvJoZr83hj76AIVdOcvLWYMWzy6sJyIMic2aQz5kh2bPTd9dzY3NtdeEAzPp/PhgZqr4aJObB3ym/vsItMg=="
|
||||
crossorigin="anonymous"></script>
|
||||
|
||||
</html>
|
139
docs/index.md
139
docs/index.md
@ -1,5 +1,3 @@
|
||||
# Contribute to the freeCodeCamp.org Community
|
||||
|
||||
The [freeCodeCamp.org](https://freecodecamp.org) community is possible thanks to thousands of kind volunteers like you. We welcome any and all contributions to the community and are excited to welcome you aboard.
|
||||
|
||||
> [!NOTE]
|
||||
@ -7,17 +5,15 @@ The [freeCodeCamp.org](https://freecodecamp.org) community is possible thanks to
|
||||
|
||||
Happy contributing.
|
||||
|
||||
## Our open source codebase
|
||||
|
||||
Our codebase has thousands of [coding challenges](https://www.freecodecamp.org/learn/) and other source code that power our learning platform.
|
||||
|
||||
You are welcome to:
|
||||
|
||||
- Create, update and fix bugs in our [coding challenges](#coding-challenges).
|
||||
- Help us fix bugs in freeCodeCamp.org's [learning platform](#learning-platform).
|
||||
- Help us translate freeCodeCamp.org to world languages.
|
||||
- _(Coming Soon)_ Help us translate freeCodeCamp.org to world languages.
|
||||
|
||||
### Coding Challenges
|
||||
Have questions? Head over to [these FAQs](/FAQ.md) where we answer some common queries about contributing.
|
||||
|
||||
## Coding Challenges
|
||||
|
||||
All our coding challenges are curated by the community, bringing in expert knowledge from volunteers like you.
|
||||
|
||||
@ -25,7 +21,7 @@ You can help expand them and make their wording better. You can also update the
|
||||
|
||||
**If you're interested in improving these coding challenges, here's [how to work on coding challenges](how-to-work-on-coding-challenges.md).**
|
||||
|
||||
### Learning Platform
|
||||
## Learning Platform
|
||||
|
||||
Our learning platform runs on a modern JavaScript stack. It has various components, tools, and libraries, including but not limited to, Node.js, MongoDB, LoopBack, OAuth 2.0, React, Gatsby, Webpack, and more.
|
||||
|
||||
@ -39,131 +35,12 @@ Contributing to this requires some understanding of APIs, ES6 Syntax, and a lot
|
||||
|
||||
Essentially, we expect basic familiarity with some of the aforementioned technologies, tools, and libraries. With that being said, you are not required to be an expert on them to contribute.
|
||||
|
||||
**If you want to help us improve our codebase, you can either [set up freeCodeCamp locally](how-to-setup-freecodecamp-locally.md)**
|
||||
|
||||
OR
|
||||
|
||||
**Use Gitpod, a free online dev environment.**
|
||||
**If you want to help us improve our codebase, you can either use Gitpod, a free online dev environment**
|
||||
|
||||
[](https://gitpod.io/#https://github.com/freeCodeCamp/freeCodeCamp)
|
||||
|
||||
(Starts a ready-to-code dev environment for freeCodeCamp in your browser.)
|
||||
|
||||
## Frequently Asked Questions
|
||||
OR
|
||||
|
||||
### I am new to GitHub and Open Source, where should I start?
|
||||
|
||||
Read our [How to Contribute to Open Source Guide](https://github.com/freeCodeCamp/how-to-contribute-to-open-source).
|
||||
|
||||
### Where are the Guide articles (guide.freecodecamp.org)?
|
||||
|
||||
We have sunset the general guide articles.
|
||||
|
||||
The guide articles redirect to high quality tutorials on freeCodeCamp news.
|
||||
|
||||
The challenge hint articles are available on the freeCodeCamp forum as hint topics. We have updated the links on our curriculum help button to point to the hint topics instead.
|
||||
|
||||
### Can I translate freeCodeCamp's curriculum?
|
||||
|
||||
Thanks for your interest in translating the curriculum.
|
||||
|
||||
Currently, we are only translating the curriculum into Chinese.
|
||||
|
||||
We do intend to make the curriculum available in more languages, but we do not have any deadlines for this. We have several operational limits like staff, active contributors and server costs. All these play a role in driving the internationalisation (i18n) efforts.
|
||||
|
||||
**Why are you focusing on Chinese curriculum first?**
|
||||
|
||||
China is the largest demographic regions, in our non-native English speaking audience. Currently, we have hundreds of thousands of users using an old version of the platform. This will give us an estimate of logistics involved in the i18n efforts to other languages.
|
||||
|
||||
We intend to start i18n efforts in these languages post the Chinese language launch:
|
||||
|
||||
Arabic, Portuguese, Russian and Spanish (in no particular order).
|
||||
|
||||
We will focus on Latin America as the demographic region for Portuguese and Spanish.
|
||||
|
||||
We do not have any plans for i18n to any other languages other than the above for the foreseeable future.
|
||||
|
||||
You do not encourage you to work on i18n on the above languages. We may accept pull requests, without any expectation of any timelines on deployments.
|
||||
|
||||
### Can I translate freeCodeCamp's codebase documentation?
|
||||
|
||||
You are welcome to translate freeCodeCamp's codebase documentation into any language of your choice or improve and update the currently translated guidelines.
|
||||
|
||||
### How can I report a bug that is not on board?
|
||||
|
||||
If you think you've found a bug, first read the ["Help I've Found a Bug"](https://forum.freecodecamp.org/t/how-to-report-a-bug/19543) article and follow its instructions.
|
||||
|
||||
If you're confident it's a new bug, go ahead and create a new GitHub issue. Be sure to include as much information as possible so that we can reproduce the bug. We have a pre-defined issue template to help you through this.
|
||||
|
||||
Please note that any issues that seek coding help on a challenge will be closed. The issue tracker is strictly for codebase related issues and discussions. Whenever in doubt, you should [seek assistance on the forum](https://forum.freecodecamp.org) before making a report.
|
||||
|
||||
### How can I report a security issue?
|
||||
|
||||
Please don't create GitHub issues for security issues. Instead, please send an email to `security@freecodecamp.org` and we'll look into it immediately.
|
||||
|
||||
### I am a student, can I or our team work on a feature for academic credits?
|
||||
|
||||
Yes, sure.
|
||||
|
||||
While, we are open to all contributions, please note we are unable to commit to any timelines that may be a requirement at your college or university. All pull-requests and code contributions are reviewed by volunteer developers, and we respect their time and efforts. We will not be able to give any PR any special attention to be fair to all.
|
||||
|
||||
We request you to plan ahead and work on a feature with this in mind.
|
||||
|
||||
### What do these different labels that are tagged on issues mean?
|
||||
|
||||
Our community moderators [triage](https://en.wikipedia.org/wiki/Software_bug#Bug_management) issues and pull requests based on their priority, severity, and other factors. You can [find a complete glossary of their meanings here](https://github.com/freecodecamp/freecodecamp/labels).
|
||||
|
||||
### Where do I start if I want to work on an issue?
|
||||
|
||||
You should go through [**`help wanted`**](https://github.com/freeCodeCamp/freeCodeCamp/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22) or [**`first timers only`**](https://github.com/freeCodeCamp/freeCodeCamp/issues?q=is%3Aopen+is%3Aissue+label%3A%22first+timers+only%22) issues for a quick overview of what is available for you to work on.
|
||||
|
||||
> [!TIP] **`help wanted`** issues are up for grabs, and you do not need to seek permission before working on them. However, issues with the **`first timers only`** label are reserved for people that have not contributed to the freeCodeCamp codebase before. If these issues lack clarity on what needs to be done, feel free to ask questions in the comments.
|
||||
|
||||
### I found a typo, should I report an issue before I can make a pull request?
|
||||
|
||||
For typos and other wording changes, you can directly open pull requests without creating an issue first. Issues are more for discussing larger problems associated with code or structural aspects of the curriculum.
|
||||
|
||||
However, please mention details, context etc. in the pull request's description area to help us understand and review your contribution even for minor changes.
|
||||
|
||||
### How do I get an issue assigned to me?
|
||||
|
||||
We typically do not assign issues to anyone other than long-time contributors to avoid ambiguous no-shows. Instead, we follow the below policy to be fair to everyone:
|
||||
|
||||
1. The first pull request for any issue is preferred to be merged.
|
||||
2. In the case of multiple pull requests for the same issue, we give priority to the quality of the code in the pull requests.
|
||||
- Did you include tests?
|
||||
- Did you catch all usecases?
|
||||
- Did you ensure all tests pass, and you confirmed everything works locally?
|
||||
3. Finally, we favor pull requests which follow our recommended guidelines.
|
||||
- Did you follow the pull request checklist?
|
||||
- Did you name your pull request title meaningfully?
|
||||
|
||||
You do not need any permission for issues that are marked `help wanted` or `first timers only` as explained earlier.
|
||||
|
||||
Follow the guidelines carefully and open a pull request.
|
||||
|
||||
### I am stuck on something that is not included in this documentation.
|
||||
|
||||
**Feel free to ask for help in:**
|
||||
|
||||
- The "Contributors" category of [our community forum](https://forum.freecodecamp.org/c/contributors).
|
||||
- Our public contributors [chat room on Gitter](https://gitter.im/FreeCodeCamp/Contributors).
|
||||
|
||||
We are excited to help you contribute to any of the topics that you would like to work on. Feel free to ask us questions on the related issue threads, and we will be glad to clarify. Make sure you search for your query before posting a new one.
|
||||
|
||||
Be polite and patient. Our community of volunteers and moderators are always around to guide you through your queries.
|
||||
|
||||
**Additional Assistance:**
|
||||
|
||||
If you have queries about the stack, architecture of the codebase, feel free to reach out to our staff dev team:
|
||||
|
||||
| Staff | Send message on Forum |
|
||||
| :-------------------- | :--------------------------------------------------------------------------- |
|
||||
| Mrugesh Mohapatra | [@raisedadead](https://forum.freecodecamp.org/u/raisedadead) |
|
||||
| Ahmad Abdolsaheb | [@abdolsa](https://forum.freecodecamp.org/u/abdolsa) |
|
||||
| Kristofer Koishigawa | [@scissorsneedfoodtoo](https://forum.freecodecamp.org/u/scissorsneedfoodtoo) |
|
||||
| Tom Mondloc | [@moT01](https://forum.freecodecamp.org/u/moT01) |
|
||||
| Oliver Eyton-Williams | [@ojeytonwilliams](https://forum.freecodecamp.org/u/ojeytonwilliams) |
|
||||
| Randell Dawson | [@RandellDawson](https://forum.freecodecamp.org/u/randelldawson) |
|
||||
|
||||
**You can email our developer staff at: `dev[at]freecodecamp.org`**
|
||||
**you can [set up freeCodeCamp locally](how-to-setup-freecodecamp-locally.md) on your machine.**
|
||||
|
Reference in New Issue
Block a user