diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..7e3a26d --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,21 @@ +# Contributing + +We'd love to have you contribute to Statusphere! + +We take contributions seriously and want to make sure that you have a great experience contributing to this project. +As such we're starting with a 2 day response time for all issues and PRs. If you don't get a response within 2 days, feel free to email me directly at chris -at- metoro (dot) io. + +Please read the following guidelines to get started. + +## Getting Started + +Before you write a PR, please an open an issue to discuss the changes you'd like to make. This will help us understand what you're trying to achieve and make sure that we're on the same page and that your work will be accepted. + +This doesn't need to be an essay, just a short description of what you're trying to achieve and why then we'll quickly flesh out the details together. + +## Pull Request Process + +1. Fork the repository +2. Create a new branch with a descriptive name +3. Make your changes +4. Open the PR and link the issue that you opened in the previous step \ No newline at end of file diff --git a/README.md b/README.md index 4787b50..86a9626 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ An open-source api-first status page aggregator. If you're looking for the official hosted version, head [here](https://metoro.io/statusphere). -Read more about the project at the launch blog post [here](https://metoro.io/blog/statusphere). +Read more about the project at the [launch blog post](https://metoro.io/blog/statusphere). ## Usage @@ -27,6 +27,7 @@ Warning: This will spin up a local instance of the statusphere stack which will the services listed in the `status_pages.go` file. ```bash +# From the root of the repository docker-compose up # The api server will be available at http://localhost:8080 @@ -46,3 +47,20 @@ They're orchestrated in the following way:
Statusphere logo
+ + +## Scraping mechanism + +Each scraper periodically polls the database to get a list of status pages to scrape. +After the time interval has passed, the scraper will scrape the status page and update the database with the new status. + +### Parsing status pages + +When a scraper scrapes a status page, it attempts to parse the page using `providers` in a cascading manner. +Each provider is responsible for parsing a specific type of status page. For example, the status.io provider is responsible for parsing status pages that are built using the status.io platform. +If a provider is unable to parse the status page it will return an error, and the next provider in the list will be attempted. + + +## Contributing + +We're actively welcoming contributions to Statusphere! Please read the [CONTRIBUTING.md](CONTRIBUTING.md) file for more information on how to get started. \ No newline at end of file