{"id":32380214,"url":"https://github.com/oryono/boda","last_synced_at":"2026-07-09T20:31:28.663Z","repository":{"id":72730044,"uuid":"248419266","full_name":"oryono/boda","owner":"oryono","description":"SafeBoda Software Engineer Challenge","archived":false,"fork":false,"pushed_at":"2020-11-18T10:39:05.000Z","size":39,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-25T01:01:15.256Z","etag":null,"topics":["elixir","phoenix-framework","rest-api"],"latest_commit_sha":null,"homepage":"","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/oryono.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2020-03-19T05:35:37.000Z","updated_at":"2020-11-18T10:39:07.000Z","dependencies_parsed_at":null,"dependency_job_id":"b36cd08f-2b38-4740-a020-1e776455d7b1","html_url":"https://github.com/oryono/boda","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/oryono/boda","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oryono%2Fboda","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oryono%2Fboda/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oryono%2Fboda/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oryono%2Fboda/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/oryono","download_url":"https://codeload.github.com/oryono/boda/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oryono%2Fboda/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35312540,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-09T02:00:07.329Z","response_time":57,"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":["elixir","phoenix-framework","rest-api"],"created_at":"2025-10-25T00:59:39.866Z","updated_at":"2026-07-09T20:31:28.658Z","avatar_url":"https://github.com/oryono.png","language":"Elixir","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Boda ![Elixir CI](https://github.com/oryono/boda/workflows/Elixir%20CI/badge.svg)    [![Run in Postman](https://run.pstmn.io/button.svg)](https://app.getpostman.com/run-collection/4fb6de0e68fb169245f6)\n\n## CASE STUDY FOR Software Engineer (Backend - Elixir)\nHi and welcome to the SafeBoda Software Engineer challenge.\nHere is the chance for you to convince us that you are the right person for the job!\nWe wish you good luck!\n### SUBMISSION DEADLINE : 3 days from now.\n#### HOW TO SUBMIT: \nThe source code should be accessible via a git repository or sent to us as a zip file,\nincluding git history.\n#### THE CHALLENGE:\nIntro : Safeboda want to give out promo codes worth x amount during events so people can get free\nrides to and from the event. The flaw with that people can use the promo codes without going for the\nevent.\nTask : Implement a promo code api with the following features.\n- Generation of new promo codes for events\n- The promo code is worth a specific amount of ride\n- The promo code can expire\n- Can be deactivated\n- Return active promo codes\n- Return all promo codes\n- The promo code radius should be configurable\n- To test the validity of the promo code, expose an endpoint that accept origin, destination, the\npromo code. The api should return the promo code details and a polyline using the destination and\norigin if promo code is valid and an error otherwise.\n\nPlease submit code as if you intended to ship it to production. The details matter. Tests are expected,\nas is well written, simple idiomatic code.\n\n#### Endpoints\n\n```sh\nGET /api/promos\n```\nThis lists all the promo codes\n\n```sh\nGET /api/promos/details/{code}?origin=exampleOrigin\u0026destination=exampleDestination\n```\nThis shows if a code is valid. Accepts origin and destination parameters\n\n```sh\nGET /api/promos/status/active\n```\nThis returns active promos\n\n```sh\nPOST /api/promos\n```\nThis allows you to create new promo code\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foryono%2Fboda","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foryono%2Fboda","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foryono%2Fboda/lists"}