{"id":28236707,"url":"https://github.com/edumarques/hashing-api","last_synced_at":"2026-07-09T10:31:35.444Z","repository":{"id":164474503,"uuid":"427966727","full_name":"edumarques/hashing-api","owner":"edumarques","description":"This API provides features on generation of MD5 hashes based on provided strings and following certain rules.","archived":false,"fork":false,"pushed_at":"2021-11-16T11:55:57.000Z","size":87,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-06-10T13:48:49.127Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/edumarques.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2021-11-14T15:32:06.000Z","updated_at":"2023-05-12T13:24:17.000Z","dependencies_parsed_at":"2024-03-22T09:46:48.481Z","dependency_job_id":null,"html_url":"https://github.com/edumarques/hashing-api","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/edumarques/hashing-api","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edumarques%2Fhashing-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edumarques%2Fhashing-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edumarques%2Fhashing-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edumarques%2Fhashing-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/edumarques","download_url":"https://codeload.github.com/edumarques/hashing-api/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edumarques%2Fhashing-api/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35296693,"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":[],"created_at":"2025-05-19T00:16:15.491Z","updated_at":"2026-07-09T10:31:35.439Z","avatar_url":"https://github.com/edumarques.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Hashing API\n\nThis API provides a route that generates an MD5 hash based on a provided string and following\ncertain rules. It also provides a route to get the stored results (done by the command described\nbelow).\n\nThis project also provides a command (via CLI) which makes requests to the hashing route and saves\nits results in the database.\n\n## Building and running the project\n\nThis project is built on docker containers. So to build it, either the direct `docker-compose` command can be executed or some `make` commands.\n\n```docker\ndocker-compose up -d --build\n```\n\n```make\nmake build-d\nmake up-d\n```\n\nThere are more helpful commands as well using `make`:\n```text\nhelp            Shows this help\nbuild           Build all docker images from docker-compose.yml\nbuild-d         Detached mode: Build all docker images from docker-compose.yml\nup              Lift containers already built\ndown-up         Lift containers already built (down first)\nup-d            Detached mode: Run containers in the background, print new container names\ndown-up-d       Detached mode: Run containers in the background, print new container names (down first)\nps              Check containers statuses\nrecreate        Recreate containers even if their configuration and image haven't changed\ndown-recreate   Recreate containers even if their configuration and image haven't changed (down first)\ndown            Stop containers and removes containers, networks, volumes, and images created by up.\nremove-orphans  Remove containers for services not defined in the docker-compose file\nmigrate         Run application migrations\nmigrate-diff    Run migrations diff\ninsights        Run PHP insights\ninsights-fix    Run PHP insights fix\ntest            Run tests\ntest-cov        Run tests and generate coverage report\n```\n\n## Running the features\n\n### Route to generate an MD5 hash\n\nThis route receives a string as POST parameter and is designed to calculate a correspondent md5 hash\nbased on the concatenation of the provided string and a random generated key of 8 digits. Also, for\nthe hash to be valid, it needs to be prefixed with \"0000\". The route returns the generated hash, its\nused key and the number of attempts to find the correspondent hash.\n\n``` POST /hash```\n\n```json\n{\n  \"stringToHash\": \"\u003csome_string\u003e\"\n}\n```\n\n### Command to request to the MD5 hashing route\n\nThis command receives an argument that represents the string to be hashed and an option that corresponds to the amount of consecutive requests the script will make to that route. The provided string is only used in the first iteration, while the input string used from the second iteration onwards will be the generated hash from the previous iteration.\n\n```docker\ndocker-compose exec php bin/console avato:test \u003cstring_to_be_hashed\u003e --requests=\u003cnumber_of_requests\u003e\n```\n\n### Route to query the stored hashing batches\n\nThis route returns the stored batches that were executed by the command above. The response is paginated and can also be filtered by \"all batches with attempts less than a provided number\".\n\n``` GET /hashing-batches/{page}?attemptsLessThan=\u003cnumber_of_attempts\u003e```\n\n## Project's used packages/libraries\n- Symfony Framework\n- Doctrine ORM\n- Knp Paginator bundle\n- PHPUnit\n- PHP Insights","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fedumarques%2Fhashing-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fedumarques%2Fhashing-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fedumarques%2Fhashing-api/lists"}