{"id":21527024,"url":"https://github.com/lambdaclass/holiday_pinger","last_synced_at":"2025-04-09T23:34:23.466Z","repository":{"id":83420173,"uuid":"95146142","full_name":"lambdaclass/holiday_pinger","owner":"lambdaclass","description":"Erlang + ClojureScript app to send holiday reminders","archived":false,"fork":false,"pushed_at":"2020-10-21T14:00:32.000Z","size":4573,"stargazers_count":69,"open_issues_count":93,"forks_count":9,"subscribers_count":27,"default_branch":"master","last_synced_at":"2025-04-04T13:54:21.743Z","etag":null,"topics":["clojurescript","erlang","freelance","holidays","mail","ping","postgresql","reminders","slack"],"latest_commit_sha":null,"homepage":"https://holidaypinger.com","language":"Erlang","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/lambdaclass.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}},"created_at":"2017-06-22T18:44:03.000Z","updated_at":"2024-02-09T21:19:02.000Z","dependencies_parsed_at":null,"dependency_job_id":"4227854c-4355-404f-b09e-38bae0de2dcd","html_url":"https://github.com/lambdaclass/holiday_pinger","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lambdaclass%2Fholiday_pinger","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lambdaclass%2Fholiday_pinger/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lambdaclass%2Fholiday_pinger/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lambdaclass%2Fholiday_pinger/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lambdaclass","download_url":"https://codeload.github.com/lambdaclass/holiday_pinger/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248130214,"owners_count":21052720,"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":["clojurescript","erlang","freelance","holidays","mail","ping","postgresql","reminders","slack"],"created_at":"2024-11-24T01:47:31.449Z","updated_at":"2025-04-09T23:34:23.432Z","avatar_url":"https://github.com/lambdaclass.png","language":"Erlang","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Holiday Pinger [![Build Status](https://travis-ci.org/lambdaclass/holiday_pinger.svg?branch=master)](https://travis-ci.org/lambdaclass/holiday_pinger)\n\nHoliday Pinger is an Erlang/OTP application that allows users to send national\nholiday reminders through different channels (e.g. email, Slack).\n\n## Project setup for development\n\nThe project requires Elrang/OTP 20 and Leningen for the ClojureScript web application.\n\nSetup the database (using Docker):\n\n    $ make ops\n\nCreate the tables:\n\n    $ make ops_start\n\nCompile and run a development shell:\n\n    $ make dev\n\nRun the tests:\n\n    $ make test\n\nBuild a release:\n\n    $ make release\n\n### UI setup\n\nThe UI is a ClojureScript project that uses [re-frame](https://github.com/Day8/re-frame).\nThe code is in [priv/ui](https://github.com/lambdaclass/holiday_ping/tree/master/priv/ui) and is build as part of the `dev` and `release` targets.\n\nFor UI development, run a dev shell and then:\n\n    $ make dev_ui\n\nWhich uses figwheel to provide a REPL and hot-reload of the code changes.\n\n## Production install\n\nInside the devops folder you can find an [install shell script](devops/sh/install.sh) for installing holiday_ping in a debian 9 server. On the other hand, you can do `make app_image` to generate a Docker image of HolidayPinger called `holiday-ping`.\n\nThe release generated for `prod` expects some config values from the environment. If you prefer, you can modify [prod.config](conf/prod.config) to directly set the values and re-make the release or image. The expected environment variables are this:\n\n- `RELX_REPLACE_OS_VARS=true`\n- `SSL_CERTFILE=\u003c/dir/of/ssl/fullchain.pem\u003e`\n- `SSL_KEYFILE=\u003c/dir/of/ssl/privkey.pem\u003e`\n- `TOKEN_SECRET=\u003csecret_token_hash\u003e`\n- `POSTGRES_HOST=\u003choliday_ping_postgres_1\u003e`\n- `POSTGRES_USER=\u003cpostgres user\u003e`\n- `POSTGRES_PASSWORD=\u003cpostgres user password\u003e`\n- `POSTGRES_DB=\u003cpostgres database\u003e`\n\n**NOTE:** Remember to mount the folder where `SSL_CERTFILE` and `SSL_KEYFILE` are stored into the container.\n\n### Credentials\n#### GitHub and Google login configuration\n\nFor the GitHub login option to work, [OAuth cretentials](https://github.com/settings/applications/new)\nneed to be generated and set as `GITHUB_CLIENTID` and `GITHUB_SECRET`\nenvironment variables.\n\nSimilarly, use the [Google developers console](https://console.developers.google.com/) to generate the Google credentials and set them as `GOOGLE_CLIENTID` and `GOOGLE_SECRET`.\n\n### Email providers\nHoliday Pinger supports two different providers for sending emails: Amazon SES and Mailgun. To choose one, set it in the config file (`prod.conf` for the production environment) as \n```\n{email_provider, erlcloud_ses}\n```\nfor Amazon SES and\n```\n{email_provider, mailgun}\n```\nfor Mailgun. Afterwards, make sure `email_enabled` is set to true in the\napplication environment (e.g. in conf/dev.config) and then supply the appropiate environment variables:\n#### Amazon SES\nTo send emails with amazon, set `AWS_ACCESS_KEY_ID` and `AWS_SECRET_ACCESS_KEY`.\n\n#### Mailgun\nTo send emails with Mailgun, set `MAILGUN_KEY` and `MAILGUN_DOMAIN`.\n\n## Rest API Reference\n\nNot yet.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flambdaclass%2Fholiday_pinger","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flambdaclass%2Fholiday_pinger","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flambdaclass%2Fholiday_pinger/lists"}