{"id":16948963,"url":"https://github.com/fcurella/clock-api","last_synced_at":"2025-06-29T06:07:15.022Z","repository":{"id":45744157,"uuid":"267072552","full_name":"fcurella/clock-api","owner":"fcurella","description":"An over-engineered Alarm Clock","archived":false,"fork":false,"pushed_at":"2022-07-21T09:45:57.000Z","size":2691,"stargazers_count":6,"open_issues_count":9,"forks_count":3,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-11T20:12:52.713Z","etag":null,"topics":["celery","celerybeat","channels","django","django-rest-framework","svelte","websocket"],"latest_commit_sha":null,"homepage":"","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/fcurella.png","metadata":{"files":{"readme":"README.rst","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}},"created_at":"2020-05-26T14:54:45.000Z","updated_at":"2025-01-11T22:34:19.000Z","dependencies_parsed_at":"2022-08-23T19:20:47.102Z","dependency_job_id":null,"html_url":"https://github.com/fcurella/clock-api","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/fcurella/clock-api","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fcurella%2Fclock-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fcurella%2Fclock-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fcurella%2Fclock-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fcurella%2Fclock-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fcurella","download_url":"https://codeload.github.com/fcurella/clock-api/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fcurella%2Fclock-api/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262545035,"owners_count":23326660,"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":["celery","celerybeat","channels","django","django-rest-framework","svelte","websocket"],"created_at":"2024-10-13T21:52:50.234Z","updated_at":"2025-06-29T06:07:15.007Z","avatar_url":"https://github.com/fcurella.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"Clock\n=====\n\nAn over-engineered Alarm Clock with API.\n\n.. image:: https://img.shields.io/badge/built%20with-Cookiecutter%20Django-ff69b4.svg\n     :target: https://github.com/pydanny/cookiecutter-django/\n     :alt: Built with Cookiecutter Django\n.. image:: https://img.shields.io/badge/code%20style-black-000000.svg\n     :target: https://github.com/ambv/black\n     :alt: Black code style\n\n\n:License: MIT\n\n.. image:: https://github.com/fcurella/clock-api/raw/master/docs/assets/screenshots/owl.png\n\nConcept\n-------\n\nThe main idea is to provide a very flexible backend and a frontend that can be custom designed.\nI've included two designs: an owl and an analog clock. But feel free to fork and make your own!\n\nI usually keep the clock open on a tiny browser window on my second monitor to keep me company.\n\nAlarms\n------\n\nAlarms can have arbitrary attributes attached (eg: a color, or the URL of a picture), and\nfrontends may interpret them.\n\nRight now alarms are specified using crontabs, but I plan to add support for other schedulers\nin the future. For example, you could use a solar schedule to create an alarm that fires at dawn.\n\nCreating Alarms\n^^^^^^^^^^^^^^^\n\nYou can add alarms by using the admin (at ``/admin/``) or by using the API at ``/api/alarms/``\n\nBasic Commands\n--------------\n\nSetting Up Your Users\n^^^^^^^^^^^^^^^^^^^^^\n\n* To create an **superuser account**, use this command::\n\n    $ python manage.py createsuperuser\n\n\nTest coverage\n^^^^^^^^^^^^^\n\nTo run the tests, check your test coverage, and generate an HTML coverage report::\n\n    $ coverage run -m pytest\n    $ coverage html\n    $ open htmlcov/index.html\n\nRunning tests with py.test\n~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n::\n\n  $ pytest\n\n\nCelery\n^^^^^^\n\nThis app comes with Celery.\n\nTo run celery beat:\n\n.. code-block:: bash\n\n    cd clock\n    celery -A config.celery_app beat -l info\n\nPlease note: For Celery's import magic to work, it is important *where* the celery commands are run. If you are in the same folder with *manage.py*, you should be right.\n\n\nDeployment\n----------\n\nYou can deploy locally by using `Garden.io \u003chttps://garden.io/\u003e`_:\n\n.. code-block:: bash\n\n    garden run task migrate\n    garden run task build\n    garden deploy\n\nYou can then visit http://clock.local.app.garden.\n\nOr you can deploy straight to heroku:\n\n.. image:: https://www.herokucdn.com/deploy/button.svg\n   :alt: Deploy\n   :target: https://heroku.com/deploy\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffcurella%2Fclock-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffcurella%2Fclock-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffcurella%2Fclock-api/lists"}