{"id":21711551,"url":"https://github.com/developerdavi/ioasys-chat-challenge","last_synced_at":"2026-04-11T09:03:34.167Z","repository":{"id":42249749,"uuid":"283614549","full_name":"developerdavi/ioasys-chat-challenge","owner":"developerdavi","description":null,"archived":false,"fork":false,"pushed_at":"2022-12-22T17:54:57.000Z","size":1275,"stargazers_count":2,"open_issues_count":22,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-17T04:39:06.620Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","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/developerdavi.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}},"created_at":"2020-07-29T22:27:18.000Z","updated_at":"2023-03-07T10:41:10.000Z","dependencies_parsed_at":"2023-01-30T15:45:46.565Z","dependency_job_id":null,"html_url":"https://github.com/developerdavi/ioasys-chat-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/developerdavi%2Fioasys-chat-challenge","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/developerdavi%2Fioasys-chat-challenge/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/developerdavi%2Fioasys-chat-challenge/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/developerdavi%2Fioasys-chat-challenge/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/developerdavi","download_url":"https://codeload.github.com/developerdavi/ioasys-chat-challenge/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244666584,"owners_count":20490288,"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-25T23:27:32.073Z","updated_at":"2026-04-11T09:03:34.128Z","avatar_url":"https://github.com/developerdavi.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🏗 O que fazer?\n\n- Você deve realizar um fork deste repositório e, ao finalizar, enviar o link do seu repositório para a nossa equipe. Lembre-se, NÃO é necessário criar um Pull Request para isso, nós iremos avaliar e retornar por email o resultado do seu teste.\n\n# 🚨 Requisitos\n\n- [x] A API deverá ser construída em **NodeJS**\n- [x] Implementar autenticação e deverá seguir o padrão **JWT**, lembrando que o token a ser recebido deverá ser no formato **Bearer**\n- [x] Seu projeto terá que ser implementado em **ExpressJS** ou **SailsJS**\n- [x] Para a comunicação com o banco de dados utilize algum **ORM**/**ODM**\n- **Bancos relacionais permitidos**:\n  - MySQL\n  - MariaDB\n  - Postgre\n- **Bancos não relacionais permitidos**:\n  - [x] MongoDB\n- [x] Sua API deverá seguir os padrões Rest na construção das rotas e retornos\n- [x] Sua API deverá conter a collection/variáveis do postman ou algum endpoint da documentação em openapi para a realização do teste\n- [-] Você deverá implementar microsserviço\n- [-] Utilizar docker para a separação das APIs\n- [-] Utilizar Docker Compose para a orquestração dos serviços\n- [-] Suas APIs deverão ser independentes, porém elas poderão se comunicar\n- [ ] Instruções para execução do projeto\n- [ ] Migrations para a criação das tabelas do banco relacional\n\n# 🎁 Extra\n\nEsses itens não são obrigatórios, porém desejados.\n\n- [ ] Testes unitários\n- [x] Linter\n- [ ] Code Formater\n\n# 🖥 O que desenvolver?\n\n- Você deverá desenvolver serviços que serão responsáveis por um chat em tempo real entre usuários, esses só serão permitidos utilizar o chat caso estejam autenticados\n- O chat será separado por salas, ou seja, cada sala será um canal de comunicação entre usuários.\n- Um usuário pode estar em mais de uma sala ao mesmo tempo\n- A sala possuirá um moderador, que será o usuário quem a criou\n- O moderador poderá remover outros usuários a qualquer momento\n- Não há necessidade de criar interfaces (UI)\n\n# 🕵🏻‍♂️ Itens a serem avaliados\n\n- Se o projeto entregue atendeu a todos os [requisitos](#--🚨-requisitos) e o que for exigido na seção [O que desenvolver?](#--🖥-o-que-desenvolver-?)\n- Estrutura de pastas das APIs\n- Funcionamento das APIs\n- Segurança da API, como autenticação, senhas salvas no banco, SQL Injection e outros\n- Boas práticas da Linguagem/Framework\n\n# ⚠️ Observações\n\nLembre-se de se atentar aos detalhes em relação a documentação e migration para garantir a boa execução do projeto\n\n# 🔗 Links\n\n- Documentação JWT https://jwt.io/\n- Frameworks NodeJS:\n  1. https://expressjs.com/pt-br/\n  2. https://sailsjs.com/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdeveloperdavi%2Fioasys-chat-challenge","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdeveloperdavi%2Fioasys-chat-challenge","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdeveloperdavi%2Fioasys-chat-challenge/lists"}