{"id":13557489,"url":"https://github.com/datamade/how-to","last_synced_at":"2025-04-05T22:04:58.736Z","repository":{"id":36280037,"uuid":"144897065","full_name":"datamade/how-to","owner":"datamade","description":"📚 Doing all sorts of things, the DataMade way ","archived":false,"fork":false,"pushed_at":"2025-03-06T20:44:16.000Z","size":5272,"stargazers_count":94,"open_issues_count":54,"forks_count":12,"subscribers_count":6,"default_branch":"main","last_synced_at":"2025-03-29T21:04:16.529Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/datamade.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"security/README.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-08-15T19:52:26.000Z","updated_at":"2025-03-22T14:25:23.000Z","dependencies_parsed_at":"2023-02-15T10:01:35.201Z","dependency_job_id":"600c52e4-1ad3-4637-80a1-1919bcc8f426","html_url":"https://github.com/datamade/how-to","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/datamade%2Fhow-to","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/datamade%2Fhow-to/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/datamade%2Fhow-to/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/datamade%2Fhow-to/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/datamade","download_url":"https://codeload.github.com/datamade/how-to/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247406085,"owners_count":20933803,"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":[],"created_at":"2024-08-01T12:04:22.956Z","updated_at":"2025-04-05T22:04:58.708Z","avatar_url":"https://github.com/datamade.png","language":null,"funding_links":[],"categories":["Python","others"],"sub_categories":[],"readme":"# how-to\n\n_📚 Doing all sorts of things, the DataMade way_\n\n## What's this?\n\nHere at DataMade, we do a lot of computer programming. In the spirit of [better living through documentation](https://datamade.us/blog/better-living-through-documentation), we're preserving guides to how we do that here.\n\n## Contents\n\n_In alphabetical order and including links to external repository-based documentation._\n\n- [Charting](charting/)\n    - [Highcharts](charting/highcharts/highcharts.md)\n- [Continuous Integration (CI)](ci/)\n- [Deployment](deployment/)\n    - [Amazon Web Services](deployment/aws/) (Legacy)\n    - [Heroku](deployment/heroku/)\n        - [Deploy a Django app to Heroku](deployment/heroku/deploy-a-django-app.md)\n        - [Scheduling tasks](deployment/heroku/scheduling-tasks.md)\n    - [Netlify](deployment/netlify/)\n        - [Deploy a static site to Netlify](deployment/netlify/README.md#deploy-a-static-site-to-netlify)\n    - [Database backups](deployment/database-backups.md)\n    - [Domain names](deployment/domain-names.md)\n- [Django](django/)\n    - [Django/Wagtail project template](https://github.com/datamade/cookiecutter-django-app/tree/main)\n    - [Django-React Integration](django/django-react-integration.md)\n    - [File uploads](django/file-uploads.md)\n    - [Forms](django/forms.md)\n    - [Translation](django/translation.md)\n    - [Wagtail](django/wagtail/)\n    - [Serializing GeoJSON data](django/serializing-data.md)\n- [Docker](docker/)\n    - [Docker for local development](docker/local-development.md)\n- [Ecommerce](ecommerce/)\n    - [Stripe](ecommerce/stripe/)\n- [ETL](etl/)\n    - [GNU Make and preferred Unix utilities](https://github.com/datamade/data-making-guidelines)\n    - [Schema validation](etl/schema-validation.md)\n- [GatsbyJS](gatsby/)\n- [Logging](logging/)\n    - [Sentry](logging/sentry.md)\n    - [Slack](logging/slack.md)\n- [Mapping](mapping/)\n    - [Google APIs (Maps, Geocoding)](mapping/google-apis.md)\n    - [Leaflet](mapping/leaflet.md)\n- [PostgreSQL](postgres/)\n    - [A quick and dirty introduction to `sqlalchemy`](postgres/quick-n-dirty-sqlalchemy.md)\n    - [Interacting with a remote database](postgres/Interacting-with-a-remote-database.md)\n    - [Dumping and restoring a Postgres database](postgres/Dump-and-restore-Postgres.md)\n    - [Dockerizing Postgres](postgres/Dockerizing-Postgres.md)\n- [Python](python/)\n    - [Python project documentation](python/)\n- [Reproducible data analysis](data-analysis/)\n- [Scraping](scraping/)\n    - [`lxml` for web scraping](scraping/lxml-for-web-scraping.md)\n- [Searching data](search/)\n- [Security](security/)\n    - [GPG and Blackbox](security/gpg/blackbox.md)\n    - [Crypto checklist](https://bit.ly/cryptochecklist)\n- [Accessibility](accessibility/)\n- [Software testing](https://github.com/datamade/testing-guidelines)\n- [The shell and Ubuntu](shell/)\n    - [tmux, best practices](shell/tmux-best-practices.md)\n    - [How to move a gpg key between servers](shell/moving-keys-between-servers.md)\n- [Work practices](work-practices/)\n    - [Environment setup](work-practices/environment-setup.md)\n    - [External meetings](work-practices/external-meetings/)\n    - [Investment time](work-practices/investment-time/)\n    - [Remote work](work-practices/remote-work/)\n    - [Project management](work-practices/project-management/)\n        - [Project collateral](work-practices/project-management/collateral.md)\n    - [User research](work-practices/ux/project-research-and-interviews.md)\n    - [Version control](work-practices/version-control/)\n        - [Best practices for working with source control](work-practices/version-control/source-control.md)\n        - [Changing your default branch to main](work-practices/version-control/renaming-to-main.md)\n\n## Contributing\n\nThe process for making changes to the DataMade Stack, and by extension this repo, is documented in [`CONTRIBUTING.md`](./CONTRIBUTING.md).\n\n## Code of Conduct\n\nThe Code of Conduct in this repo follows the DataMade Anti-Harassment Policy and Procedures, and is documented in [`CODE_OF_CONDUCT.md`](./CODE_OF_CONDUCT.md).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdatamade%2Fhow-to","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdatamade%2Fhow-to","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdatamade%2Fhow-to/lists"}