diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml new file mode 100644 index 000000000..5854e4ab9 --- /dev/null +++ b/.github/FUNDING.yml @@ -0,0 +1,2 @@ +# These are supported funding model platforms +github: kamranahmedse diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md new file mode 100644 index 000000000..ce941c5fb --- /dev/null +++ b/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,36 @@ + + +#### What roadmap is this issue about? + +- [ ] Frontend Roadmap +- [ ] Backend Roadmap +- [ ] DevOps Roadmap +- [ ] All Roadmaps + +#### What is this issue about? + +- [ ] Functionality of the website +- [ ] Discussion for a pull request I would want to open. +- [ ] Addition of a new item +- [ ] Removal of some existing item +- [ ] Changing in arrangement +- [ ] General suggestion +- [ ] Sharing an Idea +- [ ] Something else + +#### Please acknowledge the below listed + +- [ ] This is not a duplicate issue. I have searched and there is no existing issue for this. +- [ ] I understand that these roadmaps are highly opinionated. The purpose is to not to include everything out there in these roadmaps but to have everything that is most relevant today comparing to the other options listed. +- [ ] I have read the [contribution docs](../contributing) before opening this issue. + + +#### Enter the details about the issue here + + diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 000000000..9f57c7804 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,19 @@ +#### What roadmap does this PR target? + +- [ ] Code Change +- [ ] Frontend Roadmap +- [ ] Backend Roadmap +- [ ] DevOps Roadmap +- [ ] All Roadmaps +- [ ] Guides + +#### Please acknowledge the items listed below + +- [ ] I have discussed this contribution and got a go-ahead in an issue before opening this pull request. +- [ ] This is not a duplicate issue. I have searched and there is no existing issue for this. +- [ ] I understand that these roadmaps are highly opinionated. The purpose is to not to include everything out there in these roadmaps but to have everything that is most relevant today comparing to the other options listed. +- [ ] I have read the [contribution docs](../contributing) before opening this PR. + +#### Enter the details about the contribution + + diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml new file mode 100644 index 000000000..d446c2649 --- /dev/null +++ b/.github/workflows/deploy.yml @@ -0,0 +1,31 @@ +name: Deployment to GitHub Pages +on: + push: + branches: [ master ] +env: + ROADMAP_GA_SECRET: ${{ secrets.GA_SECRET }} + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + CI: true + NEXT_TELEMETRY_DISABLED: 1 +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-node@v1 + with: + node-version: 12 + - name: Setup Environment + run: | + npm install -g yarn + yarn install + - name: Generate meta and builld + run: | + yarn meta + yarn build + - name: Deploy to GitHub Pages + run: | + git config user.email "kamranahmed.se@gmail.com" + git config user.name "Kamran Ahmed" + git remote set-url origin https://x-access-token:${GITHUB_TOKEN}@github.com/${GITHUB_REPOSITORY}.git + npm run deploy diff --git a/README.md b/README.md index 384991c96..a0b60d2a5 100644 --- a/README.md +++ b/README.md @@ -1,34 +1,39 @@ -This is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app). - -## Getting Started - -First, run the development server: +
+ +
Community driven roadmaps, articles and resources for developers
+
+ + +[roadmap.sh](https://roadmap.sh) is the community effort to create knowledge that is approachable for the developers. + +The website is built with Next.js, contains roadmaps which are the step by step guides for developers, guides which are the easier to understand explanations on the complex topics. Anyone can contribute to the website by suggesting changes to existing paths, adding learning resources, becoming an author by adding new guides, updating the existing guides. + +## Development + +Clone the repository, install the dependencies and start the application ```bash -npm run dev -# or +git clone https://github.com/kamranahmedse/roadmap.sh +yarn install yarn dev ``` -Open [http://localhost:3000](http://localhost:3000) with your browser to see the result. - -You can start editing the page by modifying `pages/index.tsx`. The page auto-updates as you edit the file. - -[API routes](https://nextjs.org/docs/api-routes/introduction) can be accessed on [http://localhost:3000/api/hello](http://localhost:3000/api/hello). This endpoint can be edited in `pages/api/hello.tsx`. - -The `pages/api` directory is mapped to `/api/*`. Files in this directory are treated as [API routes](https://nextjs.org/docs/api-routes/introduction) instead of React pages. - -## Learn More - -To learn more about Next.js, take a look at the following resources: - -- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API. -- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial. - -You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js/) - your feedback and contributions are welcome! - -## Deploy on Vercel +## Contributions -The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js. +* Add new Roadmap +* Suggest changes to existing roadmap +* Write an article +* Improve the site's codebase +* Write tests -Check out our [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details. diff --git a/contributing/guide.md b/contributing/guide.md new file mode 100644 index 000000000..90fa3d8a2 --- /dev/null +++ b/contributing/guide.md @@ -0,0 +1,14 @@ +## Submitting a Guide + +First thank you for considering contributing to this project. It wouldn't have been possible for us to keep it live without your contributions 🙏 + +> Follow the steps listed below in order to add a new guide + +* Fork this repository +* If you haven't contributed to this project before then create your author profile + * Open the file [authors.json](../content/authors.json) + * Put your preferred `username` + * Put a profile picture in [authors directory](../public/authors) with the username +* Create a new markdown file in the [guides directory](../content/guides). +* Add the metadata for this guide in [guides.json](../content/guides.json). Please note that `fileName` and `slug` must match. +* Open a pull request diff --git a/contributing/readme.md b/contributing/readme.md new file mode 100644 index 000000000..7753dd5ef --- /dev/null +++ b/contributing/readme.md @@ -0,0 +1,24 @@ +## The Goal + +* For the roadmaps, we encourage you to discuss and contribute with new roadmaps. For the existing ones, please note that our goal is to not have the biggest list of items. Our goal is to have a list of items or skills most relevant today. +* For the guides, please pick a topic, open an issue or reach out on twitter [@kamranahmese](https://twitter.com/kamranahmedse) to get the go-ahead and [start writing](./guide.md). +* For the resources, we are still preparing the contribution guidelines but submit them in an issue for now. Just note that the resources are *highly opinionated* and *curated*. Your opinion on value of any resource may not match the opinion of curator. + +## Contributing + +* [Submitting roadmaps](./roadmap.md) +* [Writing a Guide](./guide.md) +* [Submitting resources](./resources.md) + +**No PR will be discarded without explanations!** + +## Guidelines + +-Adding everything available out there is not the goal!
+ The roadmaps represents the skillset most valuable today i.e. if you were to enter any of the listed fields today, what would you learn! There might be things that are of-course being used today but prioritize the things that are most in demand today e.g. agreed that lots of people are using angular.js today but you wouldn't want to learn that instead of React, Angular or Vue. Use your critical thinking to filter out non-essential stuff. Give honest arguments for why the resource should be included.
Do not add things you have not evaluated personally!
+ Use your critical thinking to filter out non-essential stuff. Give honest arguments for why the resource should be included. Have you read this book? Can you give a short article?
One item per Pull Request
+ There may be a discussion related to an item you want to add. Adding just a single item per pull request makes it much easier for everyone involved.