{"id":15750755,"url":"https://github.com/guibranco/talabat-hackathon-2022","last_synced_at":"2026-01-08T12:44:55.068Z","repository":{"id":67902443,"uuid":"510690445","full_name":"guibranco/talabat-hackathon-2022","owner":"guibranco","description":":runner: :bulb: Talabat Hackathon 2022 API project","archived":false,"fork":false,"pushed_at":"2024-04-08T12:53:26.000Z","size":1036,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2024-04-08T13:47:56.094Z","etag":null,"topics":["amazon-text-to-speech","amazon-web-services","api","aws","aws-polly","hackathon","polly","service","speech-to-text","speech-to-txt","talabat","text-to-speech","txt-to-speech"],"latest_commit_sha":null,"homepage":"https://guibranco.github.io/talabat-hackathon-2022/","language":"C#","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/guibranco.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}},"created_at":"2022-07-05T10:34:02.000Z","updated_at":"2024-04-15T13:37:21.255Z","dependencies_parsed_at":null,"dependency_job_id":"57c3df52-6df2-496b-89b7-5fcd3b7d387d","html_url":"https://github.com/guibranco/talabat-hackathon-2022","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/guibranco%2Ftalabat-hackathon-2022","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/guibranco%2Ftalabat-hackathon-2022/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/guibranco%2Ftalabat-hackathon-2022/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/guibranco%2Ftalabat-hackathon-2022/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/guibranco","download_url":"https://codeload.github.com/guibranco/talabat-hackathon-2022/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246429440,"owners_count":20775809,"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":["amazon-text-to-speech","amazon-web-services","api","aws","aws-polly","hackathon","polly","service","speech-to-text","speech-to-txt","talabat","text-to-speech","txt-to-speech"],"created_at":"2024-10-04T06:42:33.651Z","updated_at":"2026-01-08T12:44:55.040Z","avatar_url":"https://github.com/guibranco.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Talabat Hackathon 2022\n\n🏃 💡 Talabat Hackathon project that translates and generates audio (voice) of menu items in the [Talabat](https://talabat.com) app into many languages using AWS Polly.\n\n[![GitHub license](https://img.shields.io/github/license/guibranco/talabat-hackathon-2022)](https://github.com/guibranco/talabat-hackathon-2022)\n[![wakatime](https://wakatime.com/badge/github/guibranco/talabat-hackathon-2022.svg)](https://wakatime.com/badge/github/guibranco/talabat-hackathon-2022)\n[![Build](https://github.com/guibranco/talabat-hackathon-2022/actions/workflows/build.yml/badge.svg)](https://github.com/guibranco/talabat-hackathon-2022/actions/workflows/build.yml)\n[![Sonar Cloud Analysis](https://github.com/guibranco/talabat-hackathon-2022/actions/workflows/sonar-cloud.yml/badge.svg)](https://github.com/guibranco/talabat-hackathon-2022/actions/workflows/sonar-cloud.yml)\n[![GitHub last commit](https://img.shields.io/github/last-commit/guibranco/talabat-hackathon-2022/main)](https://github.com/guibranco/talabat-hackathon-2022)\n\n## Code Quality\n\n[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=guibranco_talabat-hackathon-2022\u0026metric=alert_status)](https://sonarcloud.io/dashboard?id=guibranco_talabat-hackathon-2022) [![Code Smells](https://sonarcloud.io/api/project_badges/measure?project=guibranco_talabat-hackathon-2022\u0026metric=code_smells)](https://sonarcloud.io/dashboard?id=guibranco_talabat-hackathon-2022) \n\n[![Coverage](https://sonarcloud.io/api/project_badges/measure?project=guibranco_talabat-hackathon-2022\u0026metric=coverage)](https://sonarcloud.io/summary/new_code?id=guibranco_talabat-hackathon-2022)\n[![CodeFactor](https://www.codefactor.io/repository/github/ApiBR/vagas-aggregator-ui/badge)](https://www.codefactor.io/repository/github/ApiBR/vagas-aggregator-ui)\n\n[![Lines of Code](https://sonarcloud.io/api/project_badges/measure?project=guibranco_talabat-hackathon-2022\u0026metric=ncloc)](https://sonarcloud.io/dashboard?id=guibranco_talabat-hackathon-2022)\n[![Maintainability Rating](https://sonarcloud.io/api/project_badges/measure?project=guibranco_talabat-hackathon-2022\u0026metric=sqale_rating)](https://sonarcloud.io/dashboard?id=guibranco_talabat-hackathon-2022)\n\n[![Technical Debt](https://sonarcloud.io/api/project_badges/measure?project=guibranco_talabat-hackathon-2022\u0026metric=sqale_index)](https://sonarcloud.io/dashboard?id=guibranco_talabat-hackathon-2022)\n[![Duplicated Lines (%)](https://sonarcloud.io/api/project_badges/measure?project=guibranco_talabat-hackathon-2022\u0026metric=duplicated_lines_density)](https://sonarcloud.io/dashboard?id=guibranco_talabat-hackathon-2022)\n\n[![Reliability Rating](https://sonarcloud.io/api/project_badges/measure?project=guibranco_talabat-hackathon-2022\u0026metric=reliability_rating)](https://sonarcloud.io/dashboard?id=guibranco_talabat-hackathon-2022)\n[![Security Rating](https://sonarcloud.io/api/project_badges/measure?project=guibranco_talabat-hackathon-2022\u0026metric=security_rating)](https://sonarcloud.io/dashboard?id=guibranco_talabat-hackathon-2022)\n\n[![Bugs](https://sonarcloud.io/api/project_badges/measure?project=guibranco_talabat-hackathon-2022\u0026metric=bugs)](https://sonarcloud.io/dashboard?id=guibranco_talabat-hackathon-2022)\n[![Vulnerabilities](https://sonarcloud.io/api/project_badges/measure?project=guibranco_talabat-hackathon-2022\u0026metric=vulnerabilities)](https://sonarcloud.io/dashboard?id=guibranco_talabat-hackathon-2022)\n\n[![Maintainability](https://api.codeclimate.com/v1/badges/de125cc7994282bf050c/maintainability)](https://codeclimate.com/github/guibranco/talabat-hackathon-2022/maintainability)\n[![Test Coverage](https://api.codeclimate.com/v1/badges/de125cc7994282bf050c/test_coverage)](https://codeclimate.com/github/guibranco/talabat-hackathon-2022/test_coverage)\n\n---\n\n## About the Project\n\nThis **C# project** is a **web REST API** designed to enhance the Talabat app by:\n\n1. **Real-Time Translations**: Translate menu/catalog descriptions into multiple languages using [AWS Translate](https://aws.amazon.com/translate/).\n2. **Text-to-Speech**: Generate audio for menu items using [AWS Polly](https://aws.amazon.com/polly/).\n\n### Features\n- Translates menu items dynamically into the language of the user's choice.\n- Provides an audio version of menu items for accessibility.\n- Seamlessly integrates into the Talabat app ecosystem.\n\n---\n\n## Tech Stack\n\n- **Language**: C#\n- **Framework**: ASP.NET Core\n- **Cloud Services**:\n  - `AmazonTranslateClient` for translations.\n  - `AmazonPollyClient` for text-to-speech functionality.\n\n---\n\n## Installation and Usage\n\n1. Clone the repository:\n   ```bash\n   git clone https://github.com/guibranco/talabat-hackathon-2022.git\n   cd talabat-hackathon-2022\n   ```\n\n2. Install dependencies and build the project:\n   ```bash\n   dotnet restore\n   dotnet build\n   ```\n\n3. Configure AWS credentials:\n   - Use the AWS CLI to set up your credentials.\n   - Alternatively, set environment variables for AWS access key and secret.\n\n4. Run the application:\n   ```bash\n   dotnet run\n   ```\n\n5. Access the API at `http://localhost:\u003cport\u003e`.\n\n---\n\n## API Endpoints\n\n### Available Routes\n\n#### Audio Retrieval\n- **GET** `api/v{version:apiVersion}/audio/{path}`  \n  Retrieve a generated audio file by specifying the file path.\n\n#### Settings Retrieval\n- **GET** `api/v{version:apiVersion}/settings`  \n  Retrieve the current settings, including available languages with their `TranslateIsoCodes` and `TranslateIsoPairs`.\n\n#### Text-to-Speech\n- **POST** `api/v{version:apiVersion}/speech`  \n  Generate an audio file of the input text in the selected language.  \n  - **Body**:\n    ```json\n    {\n      \"text\": \"Sample text to convert to speech\",\n      \"language\": \"en\"\n    }\n    ```\n  - **Response**: A URL or file stream of the generated audio.\n\n#### Translation\n- **POST** `api/v{version:apiVersion}/translate`  \n  Translate the input text from one language to another.  \n  - **Body**:\n    ```json\n    {\n      \"text\": \"Sample text to translate\",\n      \"sourceLanguage\": \"en\",\n      \"targetLanguage\": \"es\"\n    }\n    ```\n  - **Response**: The translated text in the target language.\n\n---\n\n## Contributing\n\nContributions are welcome! Please submit issues or pull requests via the [GitHub repository](https://github.com/guibranco/talabat-hackathon-2022).\n\n---\n\n## License\n\nThis project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fguibranco%2Ftalabat-hackathon-2022","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fguibranco%2Ftalabat-hackathon-2022","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fguibranco%2Ftalabat-hackathon-2022/lists"}