Awesome
<div align="center">"Fork, Commit, Merge" serves as a comprehensive resource for mastering GitHub contributions, catering to both beginners and seasoned developers. Our detailed guides are tailored to simplify your GitHub experience, covering everything from forking and committing to merging processes. We're dedicated to enabling you to contribute skillfully and confidently to the open-source community. Join us in our journey of coding, collaboration, and creativity!
Find awesome badges for your project in this repository: markdown-badges
</div>Table of Contents
This project is the repo of Fork, Commit, Merge -website.
Features
-
Comprehensive Guides: Easy to follow step-by-step guides for various GitHub processes, from creating a repository to managing pull requests.
-
Command Tutorials: Detailed tutorials on Git commands to enhance your productivity and workflow efficiency.
-
Best Practices: Recommendations on Git and GitHub best practices to promote high-quality code and effective collaboration.
-
Contribution Guidelines: Detailed guides on how to properly contribute to open-source projects, including etiquette and effective communication with project maintainers.
-
FAQs and Troubleshooting: A comprehensive section dedicated to frequently asked questions and common issues users face while contributing on GitHub.
-
Resource Library: An extensive collection of external resources such as books, blog posts, and video tutorials on Git and GitHub.
Tech Stack
- React.js
- Next.js
- TypeScript
- Tailwind CSS
- MongoDB Atlas
- Clerk (Authentication)
- GitHub API
Local Development
Follow these steps to run the application in your local environment:
-
Clone this repository.
git clone https://github.com/yourusername/fork-commit-merge-web.git
-
Install the project dependencies.
cd fork-commit-merge-web npm i
-
Set up your environment variables. You will need to create a Github MongoDB Atlas cluster and an AWS S3 bucket for your local development environment.
First, make a copy of the
.env.local.example
file and rename it to.env.local
.cp .env.local.example .env.local
You will need to replace the placeholder values in this file with your actual credentials.
-
For MongoDB Atlas, you will need to replace
MONGODB_URI
with your MongoDB connection string. You can get this from the MongoDB Atlas dashboard. Also, remember to add0.0.0.0/0
to the Network Access to allow connections from all IP addresses. -
For Github you need to replace
GITHUB_ID
andGITHUB_SECRET
with your on credentials by creating a GitHub OAuth Application:- Go to your GitHub account settings.
- Navigate to "Developer settings" > "OAuth Apps" > "New OAuth App."
- Fill in the application name, homepage URL (use NEXTAUTH_URL value), and set the authorization callback URL as <NEXTAUTH_URL>/api/auth/callback/github.
After registering the application, you will receive a client ID and client secret.
-
You also need to replace NEXTAUTH_SECRET with a random string. You can generate one simply in terminal:
-
On Linux and macOS:
- You can use the openssl command to generate a random string. Open your terminal and run
openssl rand -base64 32
. This will generate a 32-byte random string encoded in base64. You can copy this string and use it as the value for NEXTAUTH_SECRET.
- You can use the openssl command to generate a random string. Open your terminal and run
-
On Windows:
- If you're using Windows, you can use PowerShell to generate a random string. Open PowerShell and run
[System.Text.Encoding]::UTF8.GetString((1..32 | ForEach-Object { Get-Random -Minimum 0 -Maximum 255 })) | Out-Clipboard
. This will generate a 32-character random string and copy it to your clipboard.
- If you're using Windows, you can use PowerShell to generate a random string. Open PowerShell and run
-
-
-
Run the development server.
npm run dev
<a id="contributing"></a>
Contributing
Contributions to fork-commit-merge-web are always welcome, whether it be improvements to the documentation, new features, bug fixes, or even feedback on the project.
1. Fork the project.
2. Add a reference to the original repository:
git remote add upstream https://github.com/fork-commit-merge/fork-commit-merge-web.git
3. Check the remotes for this repository:
git remote -v
4. Take a pull from the upstream repository to your main branch to keep it at par with the main project:
git pull upstream main
5. Create your feature branch:
git switch -c my-new-feature
6. Add your changes:
git add files-that-you-changed
7. Commit your changes:
git commit -m 'Add some feature'
8. Push to the branch:
git push -u origin my-new-feature
9. Submit a pull request.
We kindly request that you express your interest in working on a particular issue by leaving a message on the respective issue thread. This will allow us to assign the issue to you directly, thereby preventing multiple individuals from simultaneously working on the same problem.
If you have some small bug, feature, or fix to make, that is not currently on Issues, feel free to submit a pull request.
For major changes, please open an issue first to discuss what you would like to change. Please make sure to update tests as appropriate.
Also, please read our Contributing Guidelines for more information.
Questions
If you have any questions about the repo, open an issue or contact us directly at niko.hoffren@gmail.com
License
This project is licensed under the MIT License.
List of Contributors
Massive thanks to all of the these fine individuals who contributed to this project!
<a href="https://github.com/Josepi161"><img src="https://images.weserv.nl/?url=https://avatars.githubusercontent.com/u/120115165?v=4&h=300&w=300&fit=cover&mask=circle&maxage=7d" width="80px"/></a> <a href="https://github.com/Luega"><img src="https://images.weserv.nl/?url=https://avatars.githubusercontent.com/u/90217066?v=4&h=300&w=300&fit=cover&mask=circle&maxage=7d" width="80px"/></a> <a href="https://github.com/ducksblock"><img src="https://images.weserv.nl/?url=https://avatars.githubusercontent.com/u/105146670?v=4&h=300&w=300&fit=cover&mask=circle&maxage=7d" width="80px"/></a> <a href="https://github.com/dependabot[bot]"><img src="https://images.weserv.nl/?url=https://avatars.githubusercontent.com/u/49699333?v=4&h=300&w=300&fit=cover&mask=circle&maxage=7d" width="80px"/></a> <a href="https://github.com/adeelFeroz77"><img src="https://images.weserv.nl/?url=https://avatars.githubusercontent.com/u/73684141?v=4&h=300&w=300&fit=cover&mask=circle&maxage=7d" width="80px"/></a> <a href="https://github.com/jmorofsky"><img src="https://images.weserv.nl/?url=https://avatars.githubusercontent.com/u/80358703?v=4&h=300&w=300&fit=cover&mask=circle&maxage=7d" width="80px"/></a> <a href="https://github.com/vktr-r2"><img src="https://images.weserv.nl/?url=https://avatars.githubusercontent.com/u/122321007?v=4&h=300&w=300&fit=cover&mask=circle&maxage=7d" width="80px"/></a> <a href="https://github.com/ATREAY"><img src="https://images.weserv.nl/?url=https://avatars.githubusercontent.com/u/66585295?v=4&h=300&w=300&fit=cover&mask=circle&maxage=7d" width="80px"/></a> <a href="https://github.com/geetanjalichawla"><img src="https://images.weserv.nl/?url=https://avatars.githubusercontent.com/u/80254854?v=4&h=300&w=300&fit=cover&mask=circle&maxage=7d" width="80px"/></a> <a href="https://github.com/afobaje"><img src="https://images.weserv.nl/?url=https://avatars.githubusercontent.com/u/34343091?v=4&h=300&w=300&fit=cover&mask=circle&maxage=7d" width="80px"/></a> <a href="https://github.com/deeksharungta"><img src="https://images.weserv.nl/?url=https://avatars.githubusercontent.com/u/79518532?v=4&h=300&w=300&fit=cover&mask=circle&maxage=7d" width="80px"/></a> <a href="https://github.com/sruthikkoneti"><img src="https://images.weserv.nl/?url=https://avatars.githubusercontent.com/u/97946223?v=4&h=300&w=300&fit=cover&mask=circle&maxage=7d" width="80px"/></a> <a href="https://github.com/ivanosquis10"><img src="https://images.weserv.nl/?url=https://avatars.githubusercontent.com/u/83567373?v=4&h=300&w=300&fit=cover&mask=circle&maxage=7d" width="80px"/></a> <a href="https://github.com/govindvarma1"><img src="https://images.weserv.nl/?url=https://avatars.githubusercontent.com/u/98372421?v=4&h=300&w=300&fit=cover&mask=circle&maxage=7d" width="80px"/></a> <a href="https://github.com/hubsMIT1"><img src="https://images.weserv.nl/?url=https://avatars.githubusercontent.com/u/83615352?v=4&h=300&w=300&fit=cover&mask=circle&maxage=7d" width="80px"/></a> <a href="https://github.com/arbiasgjoshi"><img src="https://images.weserv.nl/?url=https://avatars.githubusercontent.com/u/24274793?v=4&h=300&w=300&fit=cover&mask=circle&maxage=7d" width="80px"/></a> <a href="https://github.com/vidyaa18"><img src="https://images.weserv.nl/?url=https://avatars.githubusercontent.com/u/87689661?v=4&h=300&w=300&fit=cover&mask=circle&maxage=7d" width="80px"/></a> <a href="https://github.com/AlexHoop140"><img src="https://images.weserv.nl/?url=https://avatars.githubusercontent.com/u/30748832?v=4&h=300&w=300&fit=cover&mask=circle&maxage=7d" width="80px"/></a> <a href="https://github.com/JonnyMc94"><img src="https://images.weserv.nl/?url=https://avatars.githubusercontent.com/u/73396636?v=4&h=300&w=300&fit=cover&mask=circle&maxage=7d" width="80px"/></a> <a href="https://github.com/ruchikamuddinagiri"><img src="https://images.weserv.nl/?url=https://avatars.githubusercontent.com/u/52284361?v=4&h=300&w=300&fit=cover&mask=circle&maxage=7d" width="80px"/></a>