{"id":24942128,"url":"https://github.com/tentaclepurple/42_matcha","last_synced_at":"2026-04-09T18:53:41.569Z","repository":{"id":262291852,"uuid":"886351821","full_name":"tentaclepurple/42_matcha","owner":"tentaclepurple","description":"🍵 Social Network App featuring AI powered users that may start a relationship with you...","archived":false,"fork":false,"pushed_at":"2025-09-18T16:43:01.000Z","size":22521,"stargazers_count":1,"open_issues_count":4,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-09-18T19:02:21.415Z","etag":null,"topics":["ai","docker","flask","mongodb","postman","svelte","web"],"latest_commit_sha":null,"homepage":"","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/tentaclepurple.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-11-10T19:39:22.000Z","updated_at":"2025-09-18T16:43:11.000Z","dependencies_parsed_at":"2024-11-25T19:32:43.051Z","dependency_job_id":"d7c25b66-6d1e-46a8-972d-9d23f6911c27","html_url":"https://github.com/tentaclepurple/42_matcha","commit_stats":null,"previous_names":["tentaclepurple/42_matcha"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/tentaclepurple/42_matcha","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tentaclepurple%2F42_matcha","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tentaclepurple%2F42_matcha/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tentaclepurple%2F42_matcha/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tentaclepurple%2F42_matcha/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tentaclepurple","download_url":"https://codeload.github.com/tentaclepurple/42_matcha/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tentaclepurple%2F42_matcha/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279009350,"owners_count":26084578,"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","status":"online","status_checked_at":"2025-10-11T02:00:06.511Z","response_time":55,"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":["ai","docker","flask","mongodb","postman","svelte","web"],"created_at":"2025-02-02T18:58:58.103Z","updated_at":"2025-10-11T23:08:52.831Z","avatar_url":"https://github.com/tentaclepurple.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n\n\n# ENDPOINTS\n\n## POST http://localhost:5000/api/users/register\n\n    {\n        \"username\": \"testuser\",\n        \"email\": \"email@gmail.com\",\n        \"password\": \"test123\",\n        \"first_name\": \"Test\",\n        \"last_name\": \"User\"\n    }\nsends email with verification link\nuser follow the ling and verified=True\n\n    return:\n\n    {\n    \"message\": \"User registered successfully. Please check your email to verify your account.\",\n    \"user_id\": \"6735c74739e2fdd44cc4479b\"\n    }\n\u003cbr\u003e\n\n## POST http://localhost:5000/api/users/login\n\n    {\n    \"username\": \"testusder\",\n    \"password\": \"test123\"\n    }\nturns connected to true\n\n    returns:\n\n    200 OK\n    {\n    \"access_token\": \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJmcmVzaCI6ZmFsc2UsImlhdCI6MTczMTU4MjQ0MiwianRpIjoiMTgzOWY0YWMtMzVhYy00YzgwLWFhZTAtNjE2OGVhY2ZmYjhjIiwidHlwZSI6ImFjY2VzcyIsInN1YiI6IjY3MzVjNzQ3MzllMmZkZDQ0Y2M0NDc5YiIsIm5iZiI6MTczMTU4MjQ0MiwiY3NyZiI6ImM2ZDFlMDFjLWZhZjUtNDU3Yi1iZGI3LTdkNGUyOTc0MDBiMyIsImV4cCI6MTczMTU4NjA0Mn0.vIxb4P7O_7nlgStEfdX21YifPzLe8UMHO3rdXIMZqmU\",\n    \"user\": {\n        \"profile_completed\": false,\n        \"user_id\": \"6735c74739e2fdd44cc4479b\"\n        }\n    }\n\u003cbr\u003e\n\n    400\n    {\n    \"error\": \"Username and password are required\"\n    }\n\u003cbr\u003e\n\n\n    401\n    {\n    \"error\": \"Invalid credentials\"\n    }\n\u003cbr\u003e\n    401\n    {\n    \"error\": \"Email not verified\"\n    }\n\n    // Ejemplo de petición en el frontend\n\n    fetch('http://localhost:5000/api/users/profile', {\n        headers: {\n            'Authorization': `Bearer ${token}`,\n            'Content-Type': 'application/json'\n        }\n    })\n\u003cbr\u003e\n\n ## POST http://localhost:5000/api/users/logout\n    \n    header:\n\n    Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJmcmVzaCI6ZmFsc2UsImlhdCI6MTczMTU5Njg2MSwianRpIjoiZmJiMmIxZmYtNjc1ZC00MDZjLWJlNGItYjJkODIyYmI5MDQzIiwidHlwZSI6ImFjY2VzcyIsInN1YiI6IjY3MzYxMTJhNzlkZmM2YzRkY2FjMDZkZSIsIm5iZiI6MTczMTU5Njg2MSwiY3NyZiI6ImYxMjM0NmU4LTYzMWYtNDZkZS1hYTZiLWE4N2U3OWFkNmRjZiIsImV4cCI6MTczMTYwMDQ2MX0.Gb5LkM_2_5RewOGVin5Jl7RPsHelPtl_JztQOlVGOBU\n\u003cbr\u003e\n\n    returns:\n\n    {\n    \"message\": \"Logged out successfully\"\n    }\n\u003cbr\u003e\n\n## POST http://localhost:5000/api/profile/update_profile\nExpects gender, sexual preferences, biography and interests as mandatory.\nCreate or update profile.\n\n    header:\n\n\n    Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJmcmVzaCI6ZmFsc2UsImlhdCI6MTczMTU5Njg2MSwianRpIjoiZmJiMmIxZmYtNjc1ZC00MDZjLWJlNGItYjJkODIyYmI5MDQzIiwidHlwZSI6ImFjY2VzcyIsInN1YiI6IjY3MzYxMTJhNzlkZmM2YzRkY2FjMDZkZSIsIm5iZiI6MTczMTU5Njg2MSwiY3NyZiI6ImYxMjM0NmU4LTYzMWYtNDZkZS1hYTZiLWE4N2U3OWFkNmRjZiIsImV4cCI6MTczMTYwMDQ2MX0.Gb5LkM_2_5RewOGVin5Jl7RPsHelPtl_JztQOlVGOBU\n\u003cbr\u003e\n    body:\n        {\n        \"gender\": \"male\",\n        \"sexual_preferences\": \"women\", \n        \"biography\": \"This is my user biography.\",\n        \"interests\": [\"reading\", \"travel\", \"photography\"],\n        \"location\": {\n            \"type\": \"Point\",\n            \"coordinates\": [-122.420679, 37.77493]\n        }\n    }\n\nfills the profile with mandatory data\n\u003cbr\u003e\n\n## PUT http://localhost:5000/api/profile/update_photo/\u003cint\u003e\n\nUpload a file with size and extension restrictions with its index\n\n    header:\n\n    Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJmcmVzaCI6ZmFsc2UsImlhdCI6MTczMTU5Njg2MSwianRpIjoiZmJiMmIxZmYtNjc1ZC00MDZjLWJlNGItYjJkODIyYmI5MDQzIiwidHlwZSI6ImFjY2VzcyIsInN1YiI6IjY3MzYxMTJhNzlkZmM2YzRkY2FjMDZkZSIsIm5iZiI6MTczMTU5Njg2MSwiY3NyZiI6ImYxMjM0NmU4LTYzMWYtNDZkZS1hYTZiLWE4N2U3OWFkNmRjZiIsImV4cCI6MTczMTYwMDQ2MX0.Gb5LkM_2_5RewOGVin5Jl7RPsHelPtl_JztQOlVGOBU\n\n\u003cbr\u003e\n\n    body:\n\n    form-data\n    photo: \u003cfile\u003e\n\n\u003cbr\u003e\n\n## PUT http://localhost:5000/api/profile/update_avatar/\u003cint\u003e\n\nSelect the profile photo/avatar from the existing 5 images\n\n    header:\n\n    Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJmcmVzaCI6ZmFsc2UsImlhdCI6MTczMTU5Njg2MSwianRpIjoiZmJiMmIxZmYtNjc1ZC00MDZjLWJlNGItYjJkODIyYmI5MDQzIiwidHlwZSI6ImFjY2VzcyIsInN1YiI6IjY3MzYxMTJhNzlkZmM2YzRkY2FjMDZkZSIsIm5iZiI6MTczMTU5Njg2MSwiY3NyZiI6ImYxMjM0NmU4LTYzMWYtNDZkZS1hYTZiLWE4N2U3OWFkNmRjZiIsImV4cCI6MTczMTYwMDQ2MX0.Gb5LkM_2_5RewOGVin5Jl7RPsHelPtl_JztQOlVGOBU\n\n\u003cbr\u003e\n\n## GET http://localhost:5000/api/tags/search?q=p\n\nSearch tags by match. For autocomplete in front \nq=\u003cpattern\u003e\n\n    header:\n\n    Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJmcmVzaCI6ZmFsc2UsImlhdCI6MTczMTU5Njg2MSwianRpIjoiZmJiMmIxZmYtNjc1ZC00MDZjLWJlNGItYjJkODIyYmI5MDQzIiwidHlwZSI6ImFjY2VzcyIsInN1YiI6IjY3MzYxMTJhNzlkZmM2YzRkY2FjMDZkZSIsIm5iZiI6MTczMTU5Njg2MSwiY3NyZiI6ImYxMjM0NmU4LTYzMWYtNDZkZS1hYTZiLWE4N2U3OWFkNmRjZiIsImV4cCI6MTczMTYwMDQ2MX0.Gb5LkM_2_5RewOGVin5Jl7RPsHelPtl_JztQOlVGOBU\n\n\u003cbr\u003e\n\n    returns:\n\n    {\n    \"tags\": [\n        \"patchwork\",\n        \"pesca\",\n        \"photography\"\n    ]\n}\n\n\u003cbr\u003e\n\n## GET http://localhost:5000/api/tags/popular?limit=4\nlimit=\u003cnumber of results\u003e\nalso works without filter\n\n    header:\n\n    Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJmcmVzaCI6ZmFsc2UsImlhdCI6MTczMTU5Njg2MSwianRpIjoiZmJiMmIxZmYtNjc1ZC00MDZjLWJlNGItYjJkODIyYmI5MDQzIiwidHlwZSI6ImFjY2VzcyIsInN1YiI6IjY3MzYxMTJhNzlkZmM2YzRkY2FjMDZkZSIsIm5iZiI6MTczMTU5Njg2MSwiY3NyZiI6ImYxMjM0NmU4LTYzMWYtNDZkZS1hYTZiLWE4N2U3OWFkNmRjZiIsImV4cCI6MTczMTYwMDQ2MX0.Gb5LkM_2_5RewOGVin5Jl7RPsHelPtl_JztQOlVGOBU\n\u003cbr\u003e\n    returns:\n        {\n        \"tags\": [\n            {\n                \"count\": 16,\n                \"name\": \"caza\"\n            },\n            {\n                \"count\": 16,\n                \"name\": \"literature\"\n            },\n            {\n                \"count\": 6,\n                \"name\": \"patchwork\"\n            },\n            {\n                \"count\": 3,\n                \"name\": \"cooking\"\n            }\n        ]\n    }\n\n\n## GET http://localhost:5000/api/tags/user_common?limit=2\n    Returns users with tags in common\n\n    header:\n\n        Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJmcmVzaCI6ZmFsc2UsImlhdCI6MTczMTU5Njg2MSwianRpIjoiZmJiMmIxZmYtNjc1ZC00MDZjLWJlNGItYjJkODIyYmI5MDQzIiwidHlwZSI6ImFjY2VzcyIsInN1YiI6IjY3MzYxMTJhNzlkZmM2YzRkY2FjMDZkZSIsIm5iZiI6MTczMTU5Njg2MSwiY3NyZiI6ImYxMjM0NmU4LTYzMWYtNDZkZS1hYTZiLWE4N2U3OWFkNmRjZiIsImV4cCI6MTczMTYwMDQ2MX0.Gb5LkM_2_5RewOGVin5Jl7RPsHelPtl_JztQOlVGOBU\n\u003cbr\u003e\n    returns:\n\n    {\n        \"users\": [\n            {\n                \"common_tags\": [\n                    \"caza\",\n                    \"flamenco\"\n                ],\n                \"common_tags_count\": 3,\n                \"user_id\": \"67373d56d523c57ea25c5848\",\n                \"username\": \"farina\"\n            }\n        ]\n    }\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftentaclepurple%2F42_matcha","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftentaclepurple%2F42_matcha","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftentaclepurple%2F42_matcha/lists"}