Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/freeCodeCamp/open-source-for-good-directory
A directory for freeCodeCamp's Open Source for Good apps - solutions for nonprofits
https://github.com/freeCodeCamp/open-source-for-good-directory
opensourceforgood
Last synced: 3 months ago
JSON representation
A directory for freeCodeCamp's Open Source for Good apps - solutions for nonprofits
- Host: GitHub
- URL: https://github.com/freeCodeCamp/open-source-for-good-directory
- Owner: freeCodeCamp
- License: bsd-3-clause
- Archived: true
- Created: 2017-02-25T18:34:02.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2017-08-23T21:24:04.000Z (over 7 years ago)
- Last Synced: 2024-08-01T12:33:14.885Z (6 months ago)
- Topics: opensourceforgood
- Language: JavaScript
- Size: 2.13 MB
- Stars: 69
- Watchers: 14
- Forks: 17
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
- awesome-starred - freeCodeCamp/open-source-for-good-directory - A directory for freeCodeCamp's Open Source for Good apps - solutions for nonprofits (others)
README
# Open Source for Good Directory
A directory for freeCodeCamp's Open Source for Good Apps - Solutions for Nonprofits.
## Instructions for adding a Non-Profit Project
There are two steps to add an Open Source for Good Project to the directory:
1. Add the file `.osfg-dir-config.js` to the **root of the Project**.
* This will trigger an automatic build of the Project's page inside the directory.
* Please **verify** that an **update** by CamperBot to `docs/[project-name]` has occurred in the master branch of the directory.
* Fields:
* **title:** Displayed at the top and as the webpage title
* **demoVideo:** the YouTube video address
* **liveDemo:** the address of the project's homepage
* **description:** an ES6 template string that contains GitHub-flavored Markdown. Keep this relatively short - a paragraph tops.
* **body:** an ES6 template string with GitHub-flavored Markdown. Please include the open source license, with the freeCodeCamp copyright at the end.
* 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.* 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.
2. Edit the file `repo-list.json` at the root of the directory to include the project.
* This file will tell the directory app to fetch the corresponding GitHub data and include a card for the project.
* If you don't yet have permissions to update this repo, please **request the edit** from one of the project's maintainers.
* Instructions for the file:
* Please keep this file **alphabetically sorted** by repo name
* **Everything** should be in **lower case**. This is critical to our search functionality
* **name:** the GitHub repo's name in lower case (without the preceeding freecodecamp/)
* **icon:** the Image to be displayed in the project's card. This string contains a
[Font Awesome icon HTML class](http://fontawesome.io/icons/).
* **tags:** tags will be visible to users who aren't authenticated (we assume these users are people at nonprofits)
* **status:** choose between `'dev'` and `'prod'`. Projects in `'dev'` won't be displayed to nonprofits (unauthenticated users).Please be paitient and while GitHub updates the directory - it will take a few minutes before the changes are reflected.
## Installation
Make sure you have installed a recent version of [NodeJS](https://nodejs.org/) and **npm**.
Open the folder you wish to install the project in using your terminal, and run:
`git clone https://github.com/freeCodeCamp/open-source-for-good-directory`
`cd` into the `open-source-for-good-directory` project that command created, then run `npm i` to install all the project dependencies.
You'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`.
For 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.
This 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.
To deploy the directory, run `yarn build` or `npm run build`. Then commit the changes to Github.
## Server
The 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:1. 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)
1. If there is an update to the configuration file `.osfg-dir-config.js`, it downloads the file and builds an HTML file.
1. The file is pushed to **this repo** inside the `docs` folder.
1. Everything inside the `docs` folder is automatically deployed to GitHub Pages, which in turn are linked to the directory's website.You can find the code for the server in [this repository](https://github.com/freeCodeCamp/osfg-dir-server)
### License
This computer software is licensed under the open source [BSD-3-Clause](https://github.com/freeCodeCamp/open-source-for-good-directory/blob/master/LICENSE.md).
Copyright (c) 2017, [freeCodeCamp](https://www.freecodecamp.org).