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_Siteto go into the project's directory. - Ensure Node.js and PNPM are installed on machine
- Install dependencies with
pnpm install - Test local changes:
- Option A: PNPM
- Run the project with
pnpm 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-siteor alternatively,pnpm run start:local-docker. - Visit
localhost:3000in a browser to view the site!
- Option C: Using Docker Compose
- Ensure you have
DockerandDocker Composeinstalled on your machine.
- Installation instructions for Docker can be found on the official Docker docs.
- Run the project with
docker-compose up - Access the project at
http://localhost:3000or via the host network IP address, typicallyhttp://HOST_IP_ADDRESS:3000
- Ensure you have
- Option A: PNPM
- 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.
Please refrain from creating quiz questions that have code samples. The reason for this is that we have found that these types of questions don't end up displaying well in the current layout and they are sometimes hard to read.
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_namecommand. - Open up a pull request (PR) directed to our
mainbranch. - 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.
Please do not create a PR for a new feature without first discussing it with the maintainers. If you create a PR for a new feature without discussing it first, then your PR will be closed.
If you spot a bug in the codebase or issues with the documentation, please open up a GitHub issue detailing the problem.