{"id":19291587,"url":"https://github.com/debapriya-source/marriage-match-making-python","last_synced_at":"2025-02-23T23:54:15.629Z","repository":{"id":251808893,"uuid":"838508777","full_name":"Debapriya-source/marriage-match-making-python","owner":"Debapriya-source","description":null,"archived":false,"fork":false,"pushed_at":"2024-08-05T19:42:46.000Z","size":80,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-23T23:54:10.020Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","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/Debapriya-source.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}},"created_at":"2024-08-05T19:33:56.000Z","updated_at":"2024-08-19T14:48:20.000Z","dependencies_parsed_at":"2024-08-05T23:07:50.648Z","dependency_job_id":null,"html_url":"https://github.com/Debapriya-source/marriage-match-making-python","commit_stats":null,"previous_names":["debapriya-source/marriage-match-making-backend","debapriya-source/marriage-match-making-python"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Debapriya-source%2Fmarriage-match-making-python","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Debapriya-source%2Fmarriage-match-making-python/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Debapriya-source%2Fmarriage-match-making-python/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Debapriya-source%2Fmarriage-match-making-python/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Debapriya-source","download_url":"https://codeload.github.com/Debapriya-source/marriage-match-making-python/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240395739,"owners_count":19794573,"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":[],"created_at":"2024-11-09T22:26:20.696Z","updated_at":"2025-02-23T23:54:15.589Z","avatar_url":"https://github.com/Debapriya-source.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Report on “Marriage Matchmaking App Assignment”\n\n**By:** Debapriya Das\n\n## Approach\n\nIn line with the provided tasks, I undertook the following steps:\n\n1. Examined the entire codebase.\n2. Created test users using the pre-existing routes provided.\n3. Added the following routes:\n   - **`/users/update/{user_id}`**: Allows updating a user with the specified `user_id` using the PUT method. Only the fields to be updated need to be provided in JSON format.\n   - **`/users/delete/{user_id}`**: Enables deletion of a user with the specified `user_id` using the DELETE method.\n   - **`/users/matches/{user_id}`**: Finds potential matches for the user associated with the provided `user_id`. The file `./matches.py` contains the function definition for finding matching users.\n   - **`/users/validate-email`**: Validates any email address provided in the request body.\n     - Added a new schema `EmailRequest` in the `./schemas.py`.\n     - The email format is first checked using regular expressions.\n     - The domain name is then verified using `dns.resolver` to ensure it is valid and has MX records.\n     - The file `./check_email.py` contains the function definition for email validation.\n4. For each route all the possible error-handling the status-code responses are implemented.\n\n## Assumptions\n\nTo complete the project, the following assumptions were made:\n\n- **Finding Matches:**\n\n  - Matchings are based solely on similar interests.\n  - The matching algorithm identifies similar users of the opposite gender only.\n\n- **Email Validation:**\n  - An endpoint was added to validate any email address requested.\n  - Email validation is also applied during the creation and updating of user data.\n\n## Testing\n\n- Added route **`/users/populate`** to create bulk users for testing purposes. This route accepts an array of users in JSON format as the request body.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdebapriya-source%2Fmarriage-match-making-python","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdebapriya-source%2Fmarriage-match-making-python","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdebapriya-source%2Fmarriage-match-making-python/lists"}