mirror of
https://github.com/MunGell/awesome-for-beginners.git
synced 2026-01-26 05:18:12 -08:00
Compare commits
34 Commits
addd743440
...
e17e3241d4
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e17e3241d4 | ||
|
|
27ffb33f3e | ||
|
|
cf046c60c6 | ||
|
|
2f440a48d3 | ||
|
|
b2aa1a3f9a | ||
|
|
1b5d98e40a | ||
|
|
7688751789 | ||
|
|
4fe04983af | ||
|
|
8a68ba8893 | ||
|
|
1487aeb5bc | ||
|
|
8c37533a58 | ||
|
|
5daa02f521 | ||
|
|
486d0e9510 | ||
|
|
c018a9d7c6 | ||
|
|
2deeb0e5e3 | ||
|
|
445e53bc48 | ||
|
|
b531c33c6b | ||
|
|
fe164b7153 | ||
|
|
f581020ab6 | ||
|
|
ecb73e06d7 | ||
|
|
9ca7a049ee | ||
|
|
abf493cf0f | ||
|
|
39df36930c | ||
|
|
f046740ada | ||
|
|
f15c78f164 | ||
|
|
b8ac448aa7 | ||
|
|
8e301640bf | ||
|
|
7d337bad51 | ||
|
|
6b9bb88a5c | ||
|
|
4e1227c2d4 | ||
|
|
41d7a43e4f | ||
|
|
c21a7689d3 | ||
|
|
12a84f55e1 | ||
|
|
c09ab0b6c0 |
14
.github/tpl.md → .github/README-template.j2
vendored
14
.github/tpl.md → .github/README-template.j2
vendored
@@ -7,10 +7,13 @@ If you are a maintainer of open-source projects, add the label `first-timers-onl
|
||||
If you are not a programmer but would like to contribute, check out the [Awesome for non-programmers](https://github.com/szabgab/awesome-for-non-programmers) list.
|
||||
|
||||
## Table of Contents:
|
||||
|
||||
<% toc %>
|
||||
|
||||
<% content %>
|
||||
{% for category in categories %}
|
||||
- [{{ category.title }}](#{{ category.link_id }}){% endfor %}
|
||||
{% for category in categories %}
|
||||
## {{ category.title }}
|
||||
{% for entry in category.entries %}
|
||||
- [{{ entry.name }}]({{ entry.link }}) _(label: {% if entry.label is defined %}{{ entry.label }}{% else %}n/a{% endif %})_ <br> {{ entry.description }}{% endfor %}
|
||||
{% endfor %}
|
||||
|
||||
## Contribute
|
||||
|
||||
@@ -18,10 +21,11 @@ Contributions are welcome! See the [contributing guidelines](CONTRIBUTING.md).
|
||||
|
||||
## Thanks to GitHub Sponsors
|
||||
|
||||
<% sponsors %>
|
||||
<table><tr>{% for sponsor in sponsors %}{% if loop.index != 1 and (loop.index - 1) % 6 == 0 %}</tr><tr>{% endif %}<td align="center"><a href="{{ sponsor.link }}"><img src="{{ sponsor.image }}" width="60px;" alt=""/><br/><sub><b>{{ sponsor.name }}</b></sub></a></td>{% endfor %}</tr></table>
|
||||
|
||||
## License
|
||||
|
||||
[](http://creativecommons.org/publicdomain/zero/1.0/)
|
||||
|
||||
To the extent possible under law, the author has waived all copyrights and related or neighboring rights to this work.
|
||||
|
||||
87
.github/scripts/build.js
vendored
87
.github/scripts/build.js
vendored
@@ -1,87 +0,0 @@
|
||||
const fs = require('fs');
|
||||
const data = require('../../data.json');
|
||||
|
||||
const TPL_FILE = './.github/tpl.md';
|
||||
const TARGET = './README.md';
|
||||
|
||||
const tpl = getTemplate(TPL_FILE);
|
||||
|
||||
const categories = {};
|
||||
|
||||
data.repositories.sort((a, b) => {
|
||||
const nameA = a.name.toUpperCase();
|
||||
const nameB = b.name.toUpperCase();
|
||||
if (nameA < nameB) {
|
||||
return -1;
|
||||
}
|
||||
if (nameA > nameB) {
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}).forEach(repo =>
|
||||
repo.technologies.forEach(tech => {
|
||||
if (!categories.hasOwnProperty(tech)) {
|
||||
categories[tech] = [];
|
||||
}
|
||||
categories[tech].push(repo);
|
||||
}))
|
||||
|
||||
const sortedCategories = Object.fromEntries(Object.entries(categories).sort((a, b) => {
|
||||
const nameA = a[0].toUpperCase();
|
||||
const nameB = b[0].toUpperCase();
|
||||
if (nameA < nameB) {
|
||||
return -1;
|
||||
}
|
||||
if (nameA > nameB) {
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}));
|
||||
|
||||
const toc = Object.keys(sortedCategories)
|
||||
.map(t => `- [${t}](#${data.technologies[t] || t.toLowerCase()})`)
|
||||
.join('\n');
|
||||
|
||||
const content = Object.keys(sortedCategories)
|
||||
.map(category => {
|
||||
const repos = sortedCategories[category].map(repo => `- [${repo.name}](${repo.link}) _(label: ${repo.label || 'n/a'})_ <br> ${repo.description}`).join('\n')
|
||||
return `## ${category}\n\n${repos}\n`
|
||||
}).join('\n');
|
||||
|
||||
const sponsorList = data.sponsors.map(sponsor => `<td align="center"><a href="${sponsor.link}"><img src="${sponsor.image}" width="60px;" alt=""/><br/><sub><b>${sponsor.name}</b></sub></a></td>`)
|
||||
const sponsorRows = Math.ceil(sponsorList.length / 6);
|
||||
|
||||
let sponsors = '';
|
||||
|
||||
for (let i = 1; i <= sponsorRows; i++) {
|
||||
sponsors += '<tr>';
|
||||
for(let j = 0; j < 6; j++) {
|
||||
if (sponsorList.length > i*j) {
|
||||
sponsors += sponsorList[i*j];
|
||||
} else if (sponsorRows > 1) {
|
||||
sponsors += '<td></td>'
|
||||
}
|
||||
}
|
||||
sponsors += '</tr>';
|
||||
}
|
||||
|
||||
sponsors = `<table>${sponsors}</table>`
|
||||
|
||||
saveFile(TARGET, render(tpl, { toc, content, sponsors }));
|
||||
|
||||
function getTemplate(file) {
|
||||
return fs.readFileSync(file).toString();
|
||||
}
|
||||
|
||||
function saveFile(file, contents) {
|
||||
return fs.writeFileSync(file, contents);
|
||||
}
|
||||
|
||||
function render(template, variables) {
|
||||
Object
|
||||
.entries(variables)
|
||||
.forEach(([key, value]) => {
|
||||
template = template.replace(new RegExp(`<% ${key} %>`, 'g'), value);
|
||||
});
|
||||
return template;
|
||||
}
|
||||
40
.github/scripts/render-readme.py
vendored
Executable file
40
.github/scripts/render-readme.py
vendored
Executable file
@@ -0,0 +1,40 @@
|
||||
from jinja2 import Environment, FileSystemLoader
|
||||
import json
|
||||
|
||||
DATAFILE = "./data.json"
|
||||
TEMPLATEPATH = "./.github/"
|
||||
TEMPLATEFILE = "README-template.j2"
|
||||
TARGETFILE = "./README.md"
|
||||
|
||||
technologies = {}
|
||||
|
||||
with open(DATAFILE, 'r') as datafile:
|
||||
data = json.loads(datafile.read())
|
||||
|
||||
for technology in data["technologies"]:
|
||||
technologies[technology] = {"link_id": data["technologies"][technology], "entries": []}
|
||||
|
||||
for repository in data["repositories"]:
|
||||
repo_technologies = repository["technologies"]
|
||||
for repo_technology in repo_technologies:
|
||||
if not technologies.get(repo_technology, False):
|
||||
technologies[repo_technology] = {"link_id": repo_technology.lower(), "entries": []}
|
||||
technologies[repo_technology]["entries"].append(repository)
|
||||
|
||||
env = Environment(loader = FileSystemLoader(TEMPLATEPATH))
|
||||
|
||||
template = env.get_template(TEMPLATEFILE)
|
||||
|
||||
categories = []
|
||||
for key, value in zip(technologies.keys(), technologies.values()):
|
||||
categories.append({"title": key, "link_id": value["link_id"], "entries": value["entries"]})
|
||||
|
||||
categories = sorted(categories, key=lambda x: x["title"].upper())
|
||||
for category in categories:
|
||||
category["entries"] = sorted(category["entries"], key=lambda x: x["name"].upper())
|
||||
|
||||
sponsors = data["sponsors"]
|
||||
|
||||
output = template.render(categories=categories, sponsors=sponsors)
|
||||
|
||||
open(TARGETFILE, "w").write(output)
|
||||
7
.github/workflows/build.yml
vendored
7
.github/workflows/build.yml
vendored
@@ -13,11 +13,10 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/setup-node@v2
|
||||
with:
|
||||
node-version: "16.x"
|
||||
- name: install jinja2
|
||||
run: sudo pip install jinja2
|
||||
- name: Build
|
||||
run: node .github/scripts/build.js
|
||||
run: python3 .github/scripts/render-readme.py
|
||||
- name: Commit
|
||||
run: |
|
||||
git config --global user.name 'Shmavon Gazanchyan'
|
||||
|
||||
18
README.md
18
README.md
@@ -22,6 +22,7 @@ If you are not a programmer but would like to contribute, check out the [Awesome
|
||||
- [Haskell](#haskell)
|
||||
- [Java](#java)
|
||||
- [JavaScript](#javascript)
|
||||
- [JSON](#json)
|
||||
- [Julia](#julia)
|
||||
- [Kotlin](#kotlin)
|
||||
- [LaTeX](#latex)
|
||||
@@ -29,6 +30,7 @@ If you are not a programmer but would like to contribute, check out the [Awesome
|
||||
- [MLOps](#mlops)
|
||||
- [Perl](#perl)
|
||||
- [PHP](#php)
|
||||
- [Pug](#pug)
|
||||
- [Python](#python)
|
||||
- [Ruby](#ruby)
|
||||
- [Rust](#rust)
|
||||
@@ -161,7 +163,7 @@ If you are not a programmer but would like to contribute, check out the [Awesome
|
||||
- [Ghost](https://github.com/TryGhost/Ghost) _(label: good first issue)_ <br> Just a blogging platform
|
||||
- [grommet](https://github.com/grommet/grommet) _(label: good first issue)_ <br> a react-based framework that provides accessibility, modularity, responsiveness, and theming in a tidy package
|
||||
- [Habitica](https://github.com/HabitRPG/habitica) _(label: good first issue)_ <br> Habitica is a gamified task manager, webapp and android/ios app, really wonderful atmosphere. Guidance for contributing here (mongo, express, vue, node stack for webapp)
|
||||
- [HMPL](https://github.com/hmpl-lang/hmpl) _(label: good first issue)_ <br> Template language for displaying UI from server to client.
|
||||
- [HMPL](https://github.com/hmpl-language/hmpl) _(label: good first issue)_ <br> Server-oriented customizable templating for JavaScript.
|
||||
- [Hoppscotch](https://github.com/hoppscotch/hoppscotch) _(label: good first issue)_ <br> A free, fast and beautiful API request builder.
|
||||
- [HueHive](https://github.com/croma-app/croma) _(label: good first issue)_ <br> A open source react native app iOS and android for color palette management
|
||||
- [Hyper](https://github.com/zeit/hyper) _(label: good first issue)_ <br> JS/HTML/CSS Terminal
|
||||
@@ -171,7 +173,6 @@ If you are not a programmer but would like to contribute, check out the [Awesome
|
||||
- [json-editor](https://github.com/json-editor/json-editor) _(label: good first issue)_ <br> JSON Schema Based Editor. JSON Editor takes a JSON Schema and uses it to generate an HTML form. It has full support for JSON Schema version 3 and 4 and can integrate with several popular CSS frameworks (bootstrap, spectre, tailwind).
|
||||
- [Kinto.js](https://github.com/Kinto/kinto.js) _(label: easy-pick)_ <br> An offline-first JavaScript client leveraging the Kinto API for remote data synchronization.
|
||||
- [Leaflet](https://github.com/Leaflet/Leaflet) _(label: good first issue)_ <br> JavaScript library for mobile-friendly interactive maps.
|
||||
- [Letra Extension](https://github.com/jayehernandez/letra-extension) _(label: good first issue)_ <br> Passively learn a new language every time you open a new tab.
|
||||
- [material-ui](https://github.com/mui-org/material-ui) _(label: good first issue)_ <br> React components for faster and easier web development. Build your own design system, or start with Material Design.
|
||||
- [Mattermost](https://github.com/mattermost/mattermost-server/issues?utf8=✓&q=is:open+label:"Up+For+Grabs"+label:"Difficulty/1:Easy"+label:"Tech/Go") _(label: n/a)_ <br> Open source Slack-alternative in Golang and React
|
||||
- [Meteor](https://github.com/meteor/meteor) _(label: good first issue)_ <br> Meteor is an ultra-simple environment for building modern web applications.
|
||||
@@ -188,6 +189,7 @@ If you are not a programmer but would like to contribute, check out the [Awesome
|
||||
- [PouchDB](https://github.com/pouchdb/pouchdb) _(label: help-wanted)_ <br> PouchDB is a pocket-sized database.
|
||||
- [Predator](https://github.com/Zooz/predator) _(label: good first issue)_ <br> A powerful open-source platform for load testing APIs.
|
||||
- [ramda-adjunct](https://github.com/char0n/ramda-adjunct) _(label: help-wanted)_ <br> Ramda Adjunct is the most popular and most comprehensive set of functional utilities for use with Ramda, providing a variety of useful, well tested functions with excellent documentation.
|
||||
- [Rawsec Cybersecurity Inventory](https://gitlab.com/rawsec/rawsec-cybersecurity-list) _(label: difficulty::easy)_ <br> An inventory of tools and resources that aims to help people to find everything related to CyberSecurity.
|
||||
- [React](https://github.com/facebook/react) _(label: good first issue)_ <br> A declarative, efficient, and flexible JavaScript library for building user interfaces.
|
||||
- [React Native](https://github.com/facebook/react-native) _(label: Good-first-issue)_ <br> A framework for building native apps with React.
|
||||
- [React server](https://github.com/redfin/react-server) _(label: good-first-contribution)_ <br> React framework with server render for blazing fast page load and seamless transitions between pages in the browser.
|
||||
@@ -216,6 +218,10 @@ If you are not a programmer but would like to contribute, check out the [Awesome
|
||||
- [webdriver.io](https://github.com/webdriverio/webdriverio) _(label: first-timers-only)_ <br> Next-gen browser and mobile automation test framework for Node.js
|
||||
- [Yarn](https://github.com/yarnpkg/yarn) _(label: good first issue)_ <br> Fast, reliable, and secure dependency management.
|
||||
|
||||
## JSON
|
||||
|
||||
- [Rawsec Cybersecurity Inventory](https://gitlab.com/rawsec/rawsec-cybersecurity-list) _(label: difficulty::easy)_ <br> An inventory of tools and resources that aims to help people to find everything related to CyberSecurity.
|
||||
|
||||
## Julia
|
||||
|
||||
- [Julia](https://github.com/JuliaLang/julia) _(label: good first issue)_ <br> Julia Projects for Beginners — Easy Ideas to Get Started Coding in Julia
|
||||
@@ -262,6 +268,10 @@ If you are not a programmer but would like to contribute, check out the [Awesome
|
||||
- [PrestaShop](https://github.com/PrestaShop/PrestaShop) _(label: good first issue)_ <br> The open source ecommerce solution to start your online business and start selling online.
|
||||
- [Symfony](https://github.com/symfony/symfony) _(label: good first issue)_ <br> Symfony is a PHP framework for web applications and a set of reusable PHP components.
|
||||
|
||||
## Pug
|
||||
|
||||
- [Rawsec Cybersecurity Inventory](https://gitlab.com/rawsec/rawsec-cybersecurity-list) _(label: difficulty::easy)_ <br> An inventory of tools and resources that aims to help people to find everything related to CyberSecurity.
|
||||
|
||||
## Python
|
||||
|
||||
- [activist](https://github.com/activist-org/activist) _(label: good first issue)_ <br> activist.org is a network for political action that allows people to coordinate and collaborate on the issues that matter most to them.
|
||||
@@ -277,9 +287,10 @@ If you are not a programmer but would like to contribute, check out the [Awesome
|
||||
- [django cookiecutter](https://github.com/pydanny/cookiecutter-django) _(label: hacktoberfest)_ <br> An implementation of Python for backend web development.
|
||||
- [Embedchain](https://github.com/embedchain/embedchain/) _(label: good first issue)_ <br> Embedchain is a framework to easily create LLM powered bots over any dataset.
|
||||
- [Fabric](https://github.com/fabric/fabric) _(label: Low-hanging-fruit)_ <br> Pythonic remote execution and deployment.
|
||||
- [FastAPI](https://github.com/tiangolo/fastapi) _(label: good first issue)_ <br> A modern, fast (high-performance) web framework for building APIs with Python 3.6+ based on standard Python type hints.
|
||||
- [H2O Wave](https://github.com/h2oai/wave) _(label: good first issue)_ <br> Realtime Web Apps and Dashboards framework for Python and R. Suited (not only) for AI audience.
|
||||
- [H2O Wave Apps](https://github.com/h2oai/wave-apps) _(label: hacktoberfest)_ <br> Sample AI Apps built with H2O Wave.
|
||||
- [Harmony](https://github.com/harmonydata/harmony) _(label: Good First Issue)_ <br> Natural language processing tool for psychologists to analyse and compare datasets with AI and LLMs.
|
||||
- [Harmony](https://github.com/harmonydata/harmony) _(label: Good First Issue)_ <br> Natural language processing tool for psychologists to analyse and compare datasets with AI and LLMs.<br>Up for a challenge? Try [this LLM training competition](https://harmonydata.ac.uk/doxa/) for a chance to win up to £500!
|
||||
- [jarvis](https://github.com/sukeesh/Jarvis) _(label: difficulty/newcomer)_ <br> A personal assistant for Linux, MacOs and Windows based on Command line Interface.
|
||||
- [Jupyter notebook](https://github.com/jupyter/notebook) _(label: good first issue)_ <br> Jupyter interactive notebook.
|
||||
- [Kinto](https://github.com/Kinto/kinto) _(label: easy-pick)_ <br> A lightweight JSON storage service with synchronisation and sharing abilities.
|
||||
@@ -339,6 +350,7 @@ If you are not a programmer but would like to contribute, check out the [Awesome
|
||||
- [Sniffnet](https://github.com/GyulyVGC/sniffnet) _(label: good first issue)_ <br> Application to comfortably monitor network traffic.
|
||||
- [TiKV](https://github.com/tikv/tikv) _(label: difficulty/easy)_ <br> A distributed transactional key-value database
|
||||
- [Veloren](https://gitlab.com/veloren/veloren/-/issues?label_name[]=beginner) _(label: n/a)_ <br> Veloren is a multiplayer voxel RPG written in Rust.
|
||||
- [zoom-rs](https://github.com/security-union/zoom-rs) _(label: good first issue)_ <br> Teleconference system with a web based user interface written in Rust
|
||||
|
||||
## Scala
|
||||
|
||||
|
||||
52
data.json
52
data.json
@@ -605,12 +605,12 @@
|
||||
},
|
||||
{
|
||||
"name": "HMPL",
|
||||
"link": "https://github.com/hmpl-lang/hmpl",
|
||||
"link": "https://github.com/hmpl-language/hmpl",
|
||||
"label": "good first issue",
|
||||
"technologies": [
|
||||
"JavaScript"
|
||||
],
|
||||
"description": "Template language for displaying UI from server to client."
|
||||
"description": "Server-oriented customizable templating for JavaScript."
|
||||
},
|
||||
{
|
||||
"name": "Moment.js",
|
||||
@@ -1035,15 +1035,6 @@
|
||||
],
|
||||
"description": "Drag & Drop internal tool builder"
|
||||
},
|
||||
{
|
||||
"name": "Letra Extension",
|
||||
"link": "https://github.com/jayehernandez/letra-extension",
|
||||
"label": "good first issue",
|
||||
"technologies": [
|
||||
"JavaScript"
|
||||
],
|
||||
"description": "Passively learn a new language every time you open a new tab."
|
||||
},
|
||||
{
|
||||
"name": "Jasmine",
|
||||
"link": "https://github.com/jasmine/jasmine",
|
||||
@@ -2144,7 +2135,7 @@
|
||||
"technologies": [
|
||||
"Python"
|
||||
],
|
||||
"description": "Natural language processing tool for psychologists to analyse and compare datasets with AI and LLMs."
|
||||
"description": "Natural language processing tool for psychologists to analyse and compare datasets with AI and LLMs.<br>Up for a challenge? Try [this LLM training competition](https://harmonydata.ac.uk/doxa/) for a chance to win up to £500!"
|
||||
},
|
||||
{
|
||||
"name": "SuperDuperDB",
|
||||
@@ -2199,6 +2190,43 @@
|
||||
"JavaScript"
|
||||
],
|
||||
"description": "a react-based framework that provides accessibility, modularity, responsiveness, and theming in a tidy package"
|
||||
},
|
||||
{
|
||||
"name": "Todo List App",
|
||||
"link": "https://github.com/pixelledbot/todo-list-app",
|
||||
"label": "good-first-issue",
|
||||
"technologies": ["JavaScript"],
|
||||
"description": "A simple todo list app built with HTML, CSS, and JavaScript. Features include adding, completing, deleting tasks, and persistent storage using localStorage."
|
||||
},
|
||||
{
|
||||
"name": "Rawsec Cybersecurity Inventory",
|
||||
"link": "https://gitlab.com/rawsec/rawsec-cybersecurity-list",
|
||||
"label": "difficulty::easy",
|
||||
"technologies": [
|
||||
"JavaScript",
|
||||
"JSON",
|
||||
"Pug"
|
||||
],
|
||||
"description": "An inventory of tools and resources that aims to help people to find everything related to CyberSecurity."
|
||||
},
|
||||
{
|
||||
"name": "zoom-rs",
|
||||
"link": "https://github.com/security-union/zoom-rs",
|
||||
"label": "good first issue",
|
||||
"technologies": [
|
||||
"Rust"
|
||||
],
|
||||
"description": "Teleconference system with a web based user interface written in Rust"
|
||||
},
|
||||
{
|
||||
"name": "FastAPI",
|
||||
"link": "https://github.com/tiangolo/fastapi",
|
||||
"label": "good first issue",
|
||||
"technologies": [
|
||||
"Python"
|
||||
],
|
||||
"description": "A modern, fast (high-performance) web framework for building APIs with Python 3.6+ based on standard Python type hints."
|
||||
}
|
||||
]
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user