Contribution Guidelines
Welcome to the Frontend Interview repository! We appreciate your interest in contributing to our project. Please take a moment to review the following guidelines before making contributions.
How to Contribute
Fork the repository to your GitHub account.
- You can fork the repository by clicking the Fork button located at the top right corner of the repository page.
Clone the forked repository to your local machine:
bashgit clone https://github.com/[your-username]/frontend-interview.git
- Replace
[your-username]
with your GitHub username.
- Replace
Install the project dependencies:
bashyarn install
- If you don't have Yarn installed, you can download it here.
Create a new branch for your contribution:
bashgit checkout -b [feature-branch]
- Replace
[feature-branch]
with a descriptive branch name reflecting the changes you plan to make.
- Replace
Make your changes and test them locally.
- Start the development server with:
bashyarn dev
- Open http://localhost:5173/ in your browser to see the result.
Run the linter and fix any issues:
bashyarn lint
Commit your changes:
bashgit add . git commit -m "feat: Add a concise commit message describing your changes"
- Please use conventional commit messages. You can find more information about conventional commits here.
Push the changes to your forked repository:
bashgit push origin [feature-branch]
- Replace
[feature-branch]
with a descriptive branch name reflecting the changes you plan to make.
- Replace
Open a pull request on the main repository from your feature branch on your forked repository.
- Provide a clear title and description for your pull request.
- Include the related issue number in the PR description.
- Utilize the PR template for your PR.
Adding a New Question
To add a new question to the repository, follow these steps:
- Navigate to the
docs
directory. - Find the appropriate category for your question.
- Add a new question at the end of the file in the following format:markdownYou can use the
## Question Title Answer to the question. ::: tip - Key point 1 - Key point 2 :::
tip
block to provide additional information or key points related to the question. Refer to the markdown guide here.
Adding a New Topic
To add a new topic to the repository, follow these steps:
Navigate to the
docs
directory.Create a new markdown file with the name of the topic in the appropriate directory.
Fill the file with content in the following format:
markdown# Topic Title Introduction to the topic. ## Question Title Answer to the question. ::: tip - Key point 1 - Key point 2 :::
Add the path to the new file in the navigation/sidebar.ts configuration.
Adding a New Category
To add a new category to the repository, follow these steps:
- Navigate to the
docs
directory. - Create a new directory with the name of the category.
- Inside the new directory, create a markdown file named
index.md
. - Fill the
index.md
file with content similar to Adding a New Topic.
Issues
If you encounter any issues or have suggestions for improvement, please don't hesitate to report them here.
Please use the issue template to report the issue. This helps us understand the problem and resolve it quickly.
Before creating a new issue, please check the existing ones here to avoid duplicates.
New Features
If you plan to work on a new feature, please open an issue beforehand to discuss the feature and get feedback from the maintainers and the community. This ensures that your contribution aligns with the project's goals and avoids duplication of efforts.
Tech Stack
The project is built using the following technologies:
Using Conventional Commits
Conventional commits provide a structured way to format commit messages, making it easier to understand the purpose of each commit at a glance. Below is a breakdown of different conventional commit types and their meanings:
Type | Description |
---|---|
feat | Represents the addition of a new feature. |
fix | Indicates a bug fix. |
docs | Pertains to documentation changes. |
style | Covers changes in code formatting, whitespace, or semicolons, without affecting code meaning. |
refactor | Denotes code refactoring that neither fixes a bug nor adds a feature. |
perf | Signifies performance improvements. |
test | Involves adding or correcting tests. |
build | Relates to changes affecting the build system or external dependencies. |
ci | Involves changes to Continuous Integration configuration files and scripts. |
chore | Encompasses other changes that don't modify source or test files. |
revert | Reverts a previous commit. |
When using conventional commits, it's essential to structure commit messages in a specific format. Here's an example of a conventional commit message:
feat: add user authentication functionality
In this example:
feat
represents the type of commit, which is adding a new feature.- The message following the colon describes the feature added in a concise and descriptive manner.
By following the conventional commit format, it becomes easier to manage and track changes within a project, enhancing collaboration and communication among contributors.
For more information, refer to the Conventional Commits specification.
Thank You
Thank you for contributing to this project! Your contributions are invaluable, and they help make this project better for everyone. 🚀