{"id":13554812,"url":"https://github.com/freeCodeCamp/open-source-for-good-directory","last_synced_at":"2025-04-03T07:32:53.898Z","repository":{"id":65974548,"uuid":"83153318","full_name":"freeCodeCamp/open-source-for-good-directory","owner":"freeCodeCamp","description":"A directory for freeCodeCamp's Open Source for Good apps - solutions for nonprofits","archived":true,"fork":false,"pushed_at":"2017-08-23T21:24:04.000Z","size":2230,"stargazers_count":71,"open_issues_count":0,"forks_count":17,"subscribers_count":14,"default_branch":"master","last_synced_at":"2024-11-04T03:32:30.375Z","etag":null,"topics":["opensourceforgood"],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/freeCodeCamp.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-02-25T18:34:02.000Z","updated_at":"2024-10-23T01:19:21.000Z","dependencies_parsed_at":"2023-02-19T18:15:29.629Z","dependency_job_id":null,"html_url":"https://github.com/freeCodeCamp/open-source-for-good-directory","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/freeCodeCamp%2Fopen-source-for-good-directory","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/freeCodeCamp%2Fopen-source-for-good-directory/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/freeCodeCamp%2Fopen-source-for-good-directory/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/freeCodeCamp%2Fopen-source-for-good-directory/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/freeCodeCamp","download_url":"https://codeload.github.com/freeCodeCamp/open-source-for-good-directory/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246956848,"owners_count":20860510,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["opensourceforgood"],"created_at":"2024-08-01T12:02:55.369Z","updated_at":"2025-04-03T07:32:53.563Z","avatar_url":"https://github.com/freeCodeCamp.png","language":"JavaScript","readme":"# Open Source for Good Directory\n\nA directory for freeCodeCamp's Open Source for Good Apps - Solutions for Nonprofits.\n\n## Instructions for adding a Non-Profit Project\n\nThere are two steps to add an Open Source for Good Project to the directory:\n\n1. Add the file `.osfg-dir-config.js` to the **root of the Project**. \n    * This will trigger an automatic build of the Project's page inside the directory.\n    * Please **verify** that an **update** by CamperBot to `docs/[project-name]` has occurred in the master branch of the directory.\n    * Fields:\n      * **title:** Displayed at the top and as the webpage title\n      * **demoVideo:** the YouTube video address\n      * **liveDemo:** the address of the project's homepage\n      * **description:** an ES6 template string that contains GitHub-flavored Markdown. Keep this relatively short - a paragraph tops.\n      * **body:** an ES6 template string with GitHub-flavored Markdown. Please include the open source license, with the  freeCodeCamp copyright at the end.\n      * If the `liveDemo` or the `demoVideo` aren't yet available, you can exclued them. They just won't be added to the project's page.\n\n    * You can see a [**sample config file**](https://github.com/freeCodeCamp/open-source-for-good-directory/blob/master/.osfg-dir-config.js) at the root of this repository.\n\n2. Edit the file `repo-list.json` at the root of the directory to include the project.\n    * This file will tell the directory app to fetch the corresponding GitHub data and include a card for the project.\n    * If you don't yet have permissions to update this repo, please **request the edit** from one of the project's  maintainers.\n    * Instructions for the file: \n      * Please keep this file **alphabetically sorted** by repo name\n      * **Everything** should be in **lower case**. This is critical to our search functionality\n      * **name:** the GitHub repo's name in lower case (without the preceeding freecodecamp/)\n      * **icon:** the Image to be displayed in the project's card. This string contains a\n        [Font Awesome icon HTML class](http://fontawesome.io/icons/).\n      * **tags:** tags will be visible to users who aren't authenticated (we assume these users are people at nonprofits)\n      * **status:** choose between `'dev'` and `'prod'`. Projects in `'dev'` won't be displayed to nonprofits (unauthenticated users).\n\nPlease be paitient and while GitHub updates the directory - it will take a few minutes before the changes are reflected.\n\n\n## Installation\n\nMake sure you have installed a recent version of [NodeJS](https://nodejs.org/) and **npm**.\n\nOpen the folder you wish to install the project in using your terminal, and run:\n\n`git clone https://github.com/freeCodeCamp/open-source-for-good-directory`\n\n`cd` into the `open-source-for-good-directory` project that command created, then run `npm i` to install all the project dependencies. \n\nYou'll need symbolic links inside the `public` folder that point to the corresponding `docs/[project-name]` directory. The bash script in the root of this repo. We've created a script to automate this process. Make sure the script is executable by running: `chmod +x .setup-symlinks.sh`. Then run `./.setup-symlinks.sh`.\n\nFor Windows users wanting to use the script, you'll probably need the [Linux Subsystem](https://msdn.microsoft.com/en-us/commandline/wsl/about). We haven't tested this, so if you get this working, let us know how you did so, and we can add those steps to this guide.\n\nThis directory is built using [Create React App](https://github.com/facebookincubator/create-react-app), so you can look for more info there if you run into trouble.\n\nTo deploy the directory, run `yarn build` or `npm run build`. Then commit the changes to Github.\n\n## Server\nThe directory depends on a remote server to perform an automated webpage build for each project that requires it. The server works in the following way:\n\n1. A Github WebHook registers push events for all the freeCodeCamp repos. It sends a POST request (URL/event) to a server hosted in Glitch.com (Specified on the WebHook configuration)\n1. If there is an update to the configuration file `.osfg-dir-config.js`, it downloads the file and builds an HTML file.\n1. The file is pushed to **this repo** inside the `docs` folder.\n1. Everything inside the `docs` folder is automatically deployed to GitHub Pages, which in turn are linked to the directory's website.\n\nYou can find the code for the server in [this repository](https://github.com/freeCodeCamp/osfg-dir-server)\n\n### License\n\nThis computer software is licensed under the open source [BSD-3-Clause](https://github.com/freeCodeCamp/open-source-for-good-directory/blob/master/LICENSE.md).\n\nCopyright (c) 2017, [freeCodeCamp](https://www.freecodecamp.org).\n","funding_links":[],"categories":["JavaScript","others"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FfreeCodeCamp%2Fopen-source-for-good-directory","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FfreeCodeCamp%2Fopen-source-for-good-directory","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FfreeCodeCamp%2Fopen-source-for-good-directory/lists"}