{"id":30776288,"url":"https://github.com/vintasoftware/django-temporal-demo","last_synced_at":"2025-09-05T04:35:06.291Z","repository":{"id":274533445,"uuid":"923225386","full_name":"vintasoftware/django-temporal-demo","owner":"vintasoftware","description":"Sample project to demo the usage of Temporal in a Django project for managing background and scheduled jobs.","archived":false,"fork":false,"pushed_at":"2025-01-27T21:10:19.000Z","size":36,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-04-10T18:46:47.722Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","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/vintasoftware.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-01-27T21:09:02.000Z","updated_at":"2025-01-28T11:55:27.000Z","dependencies_parsed_at":"2025-01-27T22:24:14.442Z","dependency_job_id":"629cfe18-5c80-4729-9804-f1fafe915421","html_url":"https://github.com/vintasoftware/django-temporal-demo","commit_stats":null,"previous_names":["vintasoftware/django-temporal-demo"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/vintasoftware/django-temporal-demo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vintasoftware%2Fdjango-temporal-demo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vintasoftware%2Fdjango-temporal-demo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vintasoftware%2Fdjango-temporal-demo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vintasoftware%2Fdjango-temporal-demo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vintasoftware","download_url":"https://codeload.github.com/vintasoftware/django-temporal-demo/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vintasoftware%2Fdjango-temporal-demo/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273713483,"owners_count":25154609,"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","status":"online","status_checked_at":"2025-09-05T02:00:09.113Z","response_time":402,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":"2025-09-05T04:32:39.586Z","updated_at":"2025-09-05T04:35:06.234Z","avatar_url":"https://github.com/vintasoftware.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Django and Temporal Demo\n\nThis is a sample project to demo the usage of Temporal in a Django project for managing background and scheduled jobs.\n\n## Features\n\nThe project implements a health activity tracking system with generation of a monthly calories burnt report.\n\nThe report generation is triggered in day 5 of every month but it can also be triggered manually through Django admin.\n\nAfter generating each report the application sends an email to the user with their result.\n\nAfter processing all calories reports and sending them to the users, the workflow sends an email to the admin saying the processed has completed successfully.\n\n\n## Implementation Details\n\n* The Temporal workers was defined as a custom Django management command to ensure Django ORM is instantiated and available on Temporal activities.\n* We're using the sync version of the ORM methods, so this setup should also work in older versions of Django.\n* We have a Docker setup to make this easier to test. To run all the container you just need to use `docker compose up -d`. The Django local web server will be available through `http://localhost:8000` and the temporal web service is available through `http://localhost:8088`. We also included a few other tools in this setup to make the app more interesting:\n    * PostgreSQL as a database for Django and the Workers\n    * Mailpit as a mock to an SMTP server\n\n\n## Commercial Support\n\n[![alt text](https://avatars2.githubusercontent.com/u/5529080?s=80\u0026v=4 \"Vinta Logo\")](https://www.vintasoftware.com/)\n\nThis is an open-source project maintained by [Vinta Software](https://www.vinta.com.br/). We are always looking for exciting work! If you need any commercial support, feel free to get in touch: contact@vinta.com.br","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvintasoftware%2Fdjango-temporal-demo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvintasoftware%2Fdjango-temporal-demo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvintasoftware%2Fdjango-temporal-demo/lists"}