{"id":13507905,"url":"https://github.com/hashrocket/tilex","last_synced_at":"2025-05-15T09:08:12.965Z","repository":{"id":13421305,"uuid":"74161388","full_name":"hashrocket/tilex","owner":"hashrocket","description":"Today I Learned","archived":false,"fork":false,"pushed_at":"2025-05-04T17:54:50.000Z","size":3401,"stargazers_count":498,"open_issues_count":5,"forks_count":112,"subscribers_count":18,"default_branch":"master","last_synced_at":"2025-05-04T18:34:23.794Z","etag":null,"topics":["elixir","hacktoberfest","hashrocket","heroku","phoenix","til","ueberauth"],"latest_commit_sha":null,"homepage":"https://til.hashrocket.com","language":"Elixir","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/hashrocket.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":"CODE_OF_CONDUCT.md","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":"2016-11-18T19:48:20.000Z","updated_at":"2025-03-18T22:15:58.000Z","dependencies_parsed_at":"2024-11-01T07:31:02.865Z","dependency_job_id":"b844c186-890a-4e68-9d24-9d49bbc5ee3a","html_url":"https://github.com/hashrocket/tilex","commit_stats":{"total_commits":1035,"total_committers":49,"mean_commits":"21.122448979591837","dds":0.6743961352657004,"last_synced_commit":"66ec66993079c59a68a4a2be8a29ae369e95d41a"},"previous_names":[],"tags_count":26,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hashrocket%2Ftilex","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hashrocket%2Ftilex/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hashrocket%2Ftilex/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hashrocket%2Ftilex/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hashrocket","download_url":"https://codeload.github.com/hashrocket/tilex/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254310520,"owners_count":22049470,"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":["elixir","hacktoberfest","hashrocket","heroku","phoenix","til","ueberauth"],"created_at":"2024-08-01T02:00:42.511Z","updated_at":"2025-05-15T09:08:07.956Z","avatar_url":"https://github.com/hashrocket.png","language":"Elixir","funding_links":[],"categories":["Examples and funny stuff","Elixir"],"sub_categories":["Phoenix"],"readme":"# Tilex - Today I Learned in Elixir\n\n[![CI](https://github.com/hashrocket/tilex/actions/workflows/ci.yml/badge.svg)](https://github.com/hashrocket/tilex/actions/workflows/ci.yml)\n\n\u003e Today I Learned is an open-source project by the team at\n\u003e [Hashrocket][hashrocket] that catalogues the sharing \u0026 accumulation of\n\u003e knowledge as it happens day-to-day. Posts have a 200-word limit, and posting\n\u003e is open to any Rocketeer as well as select friends of the team. We hope you\n\u003e enjoy learning along with us.\n\nThis site was open-sourced in as a window into our development process, as well as\nto allow people to experiment with the site on their own and contribute to the\nproject.\n\nWe originally implemented Tilex as [_hr-til_][hr-til], a Ruby on Rails app.\n\nFor updates, follow us on [Twitter][twitter] and subscribe to our monthly\n[newsletter][newsletter].\n\n### Installation\n\nIf you are creating your own version of the site, [fork][fork] the repository\nand clone your fork:\n\n```shell\n$ git clone https://github.com/\u003cyour_github\u003e/tilex\n$ cd tilex\n```\n\nThen, install [Erlang][erlang], [Elixir][elixir], Node, and PostgreSQL.\n[asdf][asdf] can do this in a single command:\n\n```shell\n$ asdf install\n```\n\nFrom here, we recommend using `make`:\n\n```shell\n$ make\n$ make setup server\n```\n\nTo do everything by hand, source your environment variables, install\ndependencies, and start the server:\n\n```shell\n$ cp .env{.example,}\n$ source .env\n$ mix deps.get\n$ mix ecto.setup\n$ npm install --prefix assets\n$ mix phx.server\n```\n\nWant to start with an empty database? Skip the seeds by running `mix ecto.create \u0026\u0026 mix\necto.migrate` in place of `mix ecto.setup`.\n\nNow you can visit http://localhost:4000 from your browser.\n\nTo serve the application at a different port, include the `PORT` environment\nvariable when starting the server:\n\n```shell\n$ PORT=4444 mix phx.server\n```\n\n### Authentication\n\nAuthentication is managed by Ueberauth and Google. See the [ueberauth_google\nREADME][ueberauth_google] and [Google Oauth 2 docs][oauth_google] for\ninstructions. To allow users from a domain and/or comma-separated allowlist,\nset those configurations in your environment:\n\n```shell\n# .env\n\nexport GOOGLE_CLIENT_ID=\"your-key.apps.googleusercontent.com\"\nexport GOOGLE_CLIENT_SECRET=\"yoursecret\"\nexport HOSTED_DOMAIN=\"your-domain.com\"\nexport GUEST_AUTHOR_ALLOWLIST=\"joedeveloper@otherdomain.com, suziedeveloper@freelancer.com\"\n```\n\nOnce set, visit http://localhost:4000/admin and log in with an email address\nfrom your permitted domain.\n\nTilex creates a new user on the first authentication, and then finds that same\nuser on subsequent authentications.\n\n### Testing\n\nWallaby relies on [ChromeDriver][chromedriver]; install it via your method of\nchoice.  Then, run tests with:\n\n```shell\n$ make test\n```\n\nor:\n\n```shell\n$ mix test\n```\n\n### Deployment\n\nHashrocket's Tilex is deployed to Heroku. These are Hashrocket's deployed\ninstances:\n\n- Staging: https://tilex-staging.herokuapp.com\n- Production: https://til.hashrocket.com\n\nThis project contains Mix tasks to deploy our instances; use as follows:\n\n```shell\n$ mix deploy \u003cenvironment\u003e\n```\n\n### Contributing\n\nPlease see [CONTRIBUTING](CONTRIBUTING.md) for more information. Thank you to\nall of our [contributors][contrib].\n\n### Code of Conduct\n\nThis project is intended to be a safe, welcoming space for collaboration, and\ncontributors are expected to adhere to the [Contributor Covenant][cc] code of\nconduct. Please see [CODE OF CONDUCT](CODE_OF_CONDUCT.md) for more information.\n\n### Usage\n\nWe love seeing forks of Today I Learned in production! Please consult\n[USAGE](USAGE.md) for guidelines on appropriate styling and attribution.\n\n### License\n\nTilex is released under the [MIT License][mit].opensource.org/licenses/MIT). Please\nsee [LICENSE](LICENSE.md) for more information.\n\n---\n\n### About\n\n[![Hashrocket logo](https://hashrocket.com/hashrocket_logo.svg)][hashrocket]\n\nTilex is supported by the team at [Hashrocket, a multidisciplinary design and\ndevelopment consultancy][hashrocket] If you'd like to [work with us][hire-us]\nor [join our team][join-us], don't hesitate to get in touch.\n\n[asdf]: https://github.com/asdf-vm/asdf\n[cc]: http://contributor-covenant.org\n[chromedriver]: https://sites.google.com/a/chromium.org/chromedriver/\n[contrib]: https://github.com/hashrocket/tilex/graphs/contributors\n[elixir]: https://elixir-lang.org/\n[erlang]: https://www.erlang.org/\n[fork]: https://help.github.com/articles/fork-a-repo/\n[hashrocket]: https://hashrocket.com/\n[hire-us]: https://hashrocket.com/contact-us/hire-us\n[hr-til]: https://github.com/hashrocket/hr-til\n[join-us]: https://hashrocket.com/contact-us/jobs\n[mit]: http://www.opensource.org/licenses/MIT\n[newsletter]: https://hashrocket.com/#newsletter-subscribe-form\n[oauth_google]: https://developers.google.com/identity/protocols/OAuth2WebServer\n[twitter]: https://twitter.com/hashrockettil\n[ueberauth_google]: https://github.com/ueberauth/ueberauth_google\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhashrocket%2Ftilex","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhashrocket%2Ftilex","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhashrocket%2Ftilex/lists"}