{"id":20180405,"url":"https://github.com/ppcamp/go-eventials-code-challenge","last_synced_at":"2025-05-07T03:30:31.429Z","repository":{"id":114434381,"uuid":"379409629","full_name":"ppcamp/go-eventials-code-challenge","owner":"ppcamp","description":"Repositório para o desafio Backend da Eventials","archived":true,"fork":false,"pushed_at":"2021-06-25T20:15:06.000Z","size":100,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-03T05:43:43.968Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","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/ppcamp.png","metadata":{"files":{"readme":"README.ORIGINAL.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":"2021-06-22T21:52:54.000Z","updated_at":"2024-05-19T17:41:40.000Z","dependencies_parsed_at":null,"dependency_job_id":"389d7fc0-72ad-4a35-b4f7-0a7093903873","html_url":"https://github.com/ppcamp/go-eventials-code-challenge","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/ppcamp%2Fgo-eventials-code-challenge","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ppcamp%2Fgo-eventials-code-challenge/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ppcamp%2Fgo-eventials-code-challenge/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ppcamp%2Fgo-eventials-code-challenge/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ppcamp","download_url":"https://codeload.github.com/ppcamp/go-eventials-code-challenge/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252806321,"owners_count":21807188,"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-14T02:30:40.893Z","updated_at":"2025-05-07T03:30:31.420Z","avatar_url":"https://github.com/ppcamp.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Data integration challenge\n\n\nWelcome to Data Integration challenge.\n\nYawoen company has hired you to implement a Data API for Data Integration team.\n\nData Integration team is focused on combining data from different heterogeneous sources and providing it to an unified view into entities.\n\n## The challenge\n\nIt would be really good if you try to make the code using Go language :)\nThe other technologies you can feel free to choose.\n\n### 1 - Load treated company data in a database\n\nRead data from CSV file and load into the database to create an entity named **companies**.\n\nThis entity should contain the following fields: id, company name and zip code. \n\n- The loaded data should have the following treatment:\n    - **Name:** upper case text\n    - **zip:** a five digit text\n\nsupport file: q1_catalog.csv\n\n\n### 2 - An API to integrate data using a database\n\nYawoen now wants to get website data from another source and integrate it with the entity you've just created on the database. When the requirements are met, it's **mandatory** that the **data are merged**.\n\nThis new source data must meet the following requirements:\n\n- Input file format: CSV\n- Data treatment\n    - **Name:** upper case text\n    - **zip:** a five digit text\n    - **website:** lower case text\n- Parameters\n    - Name: string\n    - Zip: string \n    - Website: string\n\nBuild an API to **integrate** `website` data field into the entity records you've just created using **HTTP protocol**.\n\nThe `id` field is non existent on the data source, so you'll have to use the available fields to aggregate the new attribute **website** and store it. If the record doesn't exist, discard it.\n\nsupport file: q2_clientData.csv\n\n\n### Extra - Matching API to retrieve data\n\nNow Yawoen wants to create an API to provide information getting companies information from the entity to a client. \nThe parameters would be `name` and `zip` fields. To query on the database an **AND** logic operator must be used between the fields.\n\nYou will need to have a matching strategy because the client might only have a part of the company name. \nExample: \"Yawoen\" string from \"Yawoen Business Solutions\".\n\nOutput example: \n ```\n {\n \t\"id\": \"abc-1de-123fg\",\n \t\"name\": \"Yawoen Business Solutions\",\n \t\"zip\":\"10023\",\n \t\"website\": \"www.yawoen.com\"\n }\n ```\n\n## Notes\n\n\n- Make sure other developers can easily run the application locally.\n- Yawoen isn't picky about the programming language, the database and other tools that you might choose. Just take notice of the market before making your decision.\n- Automated tests are mandatory.\n- Document your API: fill out a **README.md** file with instructions on how to install and use it.\n\n\n## Deliverable\n\n\n- :heavy_check_mark: It would be REALLY nice if it was hosted in a git repo of your **own**. You can create a new empty project, create a branch and Pull Request it to the new master branch you have just created. Provide the PR URL for us so we can discuss the code :grin:. BUT if you'd rather, just compress this directory and send it back to us.\n- :heavy_check_mark: Make sure Yawoen folks will have access to the source code.\n- :heavy_check_mark: Fill the **Makefile** targets with the apropriated commands (**TODO** tags). That is for easy executing the deliverables (tests and execution). If you have other ideas besides a Makefile feel free to use and reference it on your documentation.\n- :x: **Do not** start a Pull Request to this project.\n\nHave fun!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fppcamp%2Fgo-eventials-code-challenge","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fppcamp%2Fgo-eventials-code-challenge","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fppcamp%2Fgo-eventials-code-challenge/lists"}