{"id":20856160,"url":"https://github.com/luismendes070/mysql-mean-api","last_synced_at":"2026-04-12T18:16:05.745Z","repository":{"id":123726240,"uuid":"307866373","full_name":"luismendes070/mysql-mean-api","owner":"luismendes070","description":"render build is error","archived":false,"fork":false,"pushed_at":"2020-12-18T18:09:45.000Z","size":12599,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"ionic-multiapp","last_synced_at":"2025-01-19T07:11:55.226Z","etag":null,"topics":["angular","docker","express","heroku","mean","mysql","rest","rest-api"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","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/luismendes070.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":"2020-10-28T00:48:49.000Z","updated_at":"2023-02-08T13:01:20.000Z","dependencies_parsed_at":null,"dependency_job_id":"c8fccca6-35ff-4257-8c0a-b9c9dd8eea88","html_url":"https://github.com/luismendes070/mysql-mean-api","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luismendes070%2Fmysql-mean-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luismendes070%2Fmysql-mean-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luismendes070%2Fmysql-mean-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luismendes070%2Fmysql-mean-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/luismendes070","download_url":"https://codeload.github.com/luismendes070/mysql-mean-api/tar.gz/refs/heads/ionic-multiapp","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243230066,"owners_count":20257640,"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":["angular","docker","express","heroku","mean","mysql","rest","rest-api"],"created_at":"2024-11-18T04:28:55.122Z","updated_at":"2025-12-11T18:13:00.480Z","avatar_url":"https://github.com/luismendes070.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c\u003c\u003c\u003c\u003c\u003c\u003c HEAD\n# Fullstack Challenge 20200630 - Back-End: Node ou PHP, MySQL \u0026 Angular 2+\n \n \n### Obrigatório\n \n- Trabalhar em um FORK deste repositório em seu usuário;\n- O projeto Web deve utilizar Angular superior a versão 2;\n- O projeto back-end deverá ser desenvolvido em Node(JS / TS) ou em PHP;\n- O Front-End deve utilizar Angular Material: https://material.angular.io/ ou https://bulma.io;\n- Os produtos disponíveis no projeto Front-End Angular devem ser recuperados através da API Rest Back-End Node ou PHP;\n- Fique atento a princípios SOLID, DDD e orientação a objetos;\n \n## API / Back-End Node.js\n \n ### Banco de Dados\n  \n - Criar um banco de dados MySQL no Heroku: https://elements.heroku.com/addons/jawsdb\n - Utilize Migrations\n - Utilize Repository Pattern\n \n ### Endpoints\n \n- Criar uma API REST usando Node ou PHP com os seguintes endpoints:\n      \n     `GET /`: Retornar um Status: 200 e uma Mensagem \"REST WebAPI Challenge 20200630 Running\"\n     \n     `POST /products`: O endpoint irá processar o [products.json](products.json) que será enviado pelo Projeto Web\n     \n     `PUT /products/:productId`: Será responsável por receber atualizações realizadas no Projeto Web\n     \n     `DELETE /products/:productId`: Remover o produto da base\n     \n     `GET /products/:productId`: Obter a informação somente de um produto da base de dados\n     \n     `GET /products`: Listar todos os produtos da base de dados\n \n - Integrar a API com o banco de dados MySQL criado no Heroku para persistir os dados\n - Até o momento, os Endpoints estão todos abertos para acesso. Isso não é legal a nível de segurança, dessa forma, queremos que você use um esquema para bloquear qualquer tipo de acesso, configurando\n uma **API Key** para que somente possa acessar os Endpoints, \"Requests\" autorizadas;\n \n \u003e Dica: Talvez o endpoint da Home precise ser público.\n\n \n### Documentação\n\nEscrever a documentação da API utlizando conceito [OpenAPI Specification](https://github.com/OAI/OpenAPI-Specification) em versões superiores ao v2.0\n \n### Extras\n\n- **Diferencial 1 -** Escrever Unit Test para o endpoint `POST /products`\n- **Diferencial 2 -** Executar o projeto usando Docker\n- **Diferencial 3 -** Escrever o esquema de segurança aplicado nos endpoints \n \n## Front-End Angular\n \n![Home](assets/images/home.png)\n\n### Upload de produtos\n \nSeu objetivo é montar uma tela para a equipe de produtos importar os arquivos JSON gerados pelo sistema de manufatura da empresa ao novo Dashboard. \nNesta tela devemos adicionar um campo do tipo File que somente permite arquivos .json e tem faça a validação dos arquivos anexados antes de serem enviados a REST API. \nSomente arquivos válidos podem ser enviados ao Dashboard. \n\nO Product Manager do projeto deixou uma sugestão de mockup acima.\n\n\u003e Recomendado adicionar alertas de validações. \n\n \n#### Listar produtos\n \nCriar uma sessão na tela com uma tabela para listar os produtos processados pela API. É importante ter os seguintes campos:\n \n        - Title\n        - Type\n        - Rating\n        - Price\n        - Created (Data do upload do produto a nova base de datos)\n        - Actions (Botões Editar e Excluir)\n \n#### Editar produto\n \nNa tabela com os produtos precisamos disponibilizar os formulários com todos os campos dos produtos para que a equipe possa editá-los. \nFazer validação de alguns campos obrigatórios:\n\n        - Title\n        - Type\n        - Price\n \n#### Remover produto\n \nAntes de completar a ação de remover produto, devemos perguntar ao usuário se ele realmente \nquer realizar a ação. Para evitar a remoção de produtos de maneira indesejada. \nApós remover com êxito, notificar o usuário com um alerta de sucesso. \n\n#### Unit Testing\n \n- **Diferencial 1 - Foco em Front-End** utilizar Unit Test no front-end para a opção de `Remover produto`. \n- **Diferencial 2 - Foco em Front-End** utilizar Unit Test no front-end para a opção de `Editar produto`. \n \n## Readme do Repositório\n \n- Deve conter o título de cada projeto\n- Uma descrição de uma frase\n- Como instalar e usar o projeto (instruções)\n- Não esqueça o [.gitignore](https://www.toptal.com/developers/gitignore)\n \n## Finalização \n\nAvisar sobre a finalização e enviar para correção em: [https://bit.ly/3e7MjcK](https://bit.ly/3e7MjcK) \nApós essa etapa será marcado a apresentação/correção do projeto.\n\n## Instruções para a Apresentação: \n\n1. Será necessário compartilhar a tela durante a vídeo chamada;\n2. Deixe todos os projetos de solução previamente abertos em seu computador antes de iniciar a chamada;\n3. Deixe os ambientes configurados e prontos para rodar; \n4. Prepara-se pois você será questionado sobre cada etapa e decisão do Challenge;\n5. Prepare uma lista de perguntas, dúvidas, sugestões de melhorias e feedbacks (caso tenha).\n\n\n## Suporte\n\nUse o nosso canal no slack: http://bit.ly/32CuOMy para tirar dúvidas sobre o processo ou envie um e-mail para contato@coodesh.com. \n=======\n# Products\n\nThis project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 10.1.1.\n\n## Development server\n\nRun `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The app will automatically reload if you change any of the source files.\n\n## Code scaffolding\n\nRun `ng generate component component-name` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module`.\n\n## Build\n\nRun `ng build` to build the project. The build artifacts will be stored in the `dist/` directory. Use the `--prod` flag for a production build.\n\n## Running unit tests\n\nRun `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io).\n\n## Running end-to-end tests\n\nRun `ng e2e` to execute the end-to-end tests via [Protractor](http://www.protractortest.org/).\n\n## Further help\n\nTo get more help on the Angular CLI use `ng help` or go check out the [Angular CLI README](https://github.com/angular/angular-cli/blob/master/README.md).\n\u003e\u003e\u003e\u003e\u003e\u003e\u003e b7dddd2 (test API endpoints)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fluismendes070%2Fmysql-mean-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fluismendes070%2Fmysql-mean-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fluismendes070%2Fmysql-mean-api/lists"}