Thank you for your interest in contributing to the Developer Quiz site. developerquiz.org is the companion website to the Learn to Code RPG Game, a visual novel game developed by freeCodeCamp to help you learn how to code.
Here are directions on how to fork the freeCodeCamp/Developer_Quiz_Site
repository:
https://docs.github.com/en/get-started/quickstart/fork-a-repo
In the command line:
- Clone the repo by typing
git clone https://github.com/YOUR-GITHUB-USERNAME/Developer_Quiz_Site.git
- Then type
cd Developer_Quiz_Site
to go into the project's directory. - Ensure Node.js and NPM are installed on machine
- Install dependencies with
npm install
- Test local changes:
- Option A: NPM
- Run the project with
npm start
- Run the project with
- Option B: Docker
- Ensure docker is installed on machine. Installations instructions can be found on the official Docker docs.
- Build the docker image with
docker build -t developer-quiz-site .
- Run the docker container:
docker container run --rm -it -p 3000:3000 developer-quiz-site
or alternatively,npm run start:local-docker
. - Visit
localhost:3000
in a browser to view the site!
- Option A: NPM
- Have fun 🚀
We are looking to add more quiz questions for the following categories:
- Linux
- SQL
- Computer Science
- Quality Assurance
- Agile
- Security
The quiz question categories can be found in the data
folder.
https://github.com/freeCodeCamp/Developer_Quiz_Site/tree/main/src/data
Before you add any quiz questions, please check to make sure that it does not already exist in the file.
All questions follow this format:
{
Question: "Which one of these data structures follows the FIFO (First In First Out) method?",
Answer: "Queue",
Distractor1: "Stack",
Distractor2: "Array",
Distractor3: "Linked List",
Explanation: "A queue follows the First In First Out (FIFO) method as the element which gets inserted first gets removed first.",
Link: "https://youtu.be/B31LgI4Y4DQ?t=16410",
},
For the Explanation
field, please keep your explanations to a couple of sentences. For the link
field, please make sure to use a freeCodeCamp article, freeCodeCamp YouTube video or official documentation.
If you choose to reference a video, please make sure to include the timestamp for the topic covered.
You can read more about how to create timestamps in this helpful article.
PLEASE NOTE: Any PR's that have questions taken from other quiz sites will not accepted. Please come up with your own quiz questions.
Any open issue that is marked with the open to multiple contributors
label is free for anyone to work on and will not be assigned to just one person.
Any open issue that is marked with the Available for assignment
label will open for the first person that replies back to the issue asking to be assigned. Once that person has been assigned then they are free to start work on the issue.
Open issues that have the already assigned
label are not available for pickup. If someone has been assigned to this issue and there has been no movement on it for weeks, then the maintainers will reach out to the individual to ask if they are still interested in working on it. If the individual has decided not to pursue the issue anymore, then the maintainers will open it back up for contribution and remove the already assigned
label.
NOTE: Only the person assigned to the issue is free to create a PR. Other contributors that create a PR for an already assigned issue will have their PR closed.
- In the command line, make sure you are in the Developer Quiz directory.
cd Developer_Quiz_Site
- Create and switch to a new branch by using the following command:
git checkout -b new-branch-name
- Add your changes to the project.
- In the command line, stage your changes by using the
git add .
command. - Commit your changes by using the
git commit -m "commit message"
command. - Push up your changes to the remote branch on GitHub by using the
git push -u origin branch_name
command. - Open up a pull request (PR) directed to our
main
branch. - Then the maintainers will review your PR and either request changes or approve it.
If you need any help, please reach out in the discussions tab.
If you are interested in proposing new features, please open up a new GitHub discussion with details for the proposed feature.
If you spot a bug in the codebase or issues with the documentation, please open up a GitHub issue detailing the problem.