{"id":26142592,"url":"https://github.com/wpdas/chat-app-chaindb-nextjs","last_synced_at":"2026-04-19T18:31:39.837Z","repository":{"id":280751278,"uuid":"669984150","full_name":"wpdas/chat-app-chaindb-nextjs","owner":"wpdas","description":"A Chat app built using NextJS and the experimental database ChainDB.","archived":false,"fork":false,"pushed_at":"2025-03-05T04:57:31.000Z","size":273,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-05T05:31:01.469Z","etag":null,"topics":["app","chaindb","chat","nextjs"],"latest_commit_sha":null,"homepage":"https://chat-rooms-steel.vercel.app","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/wpdas.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":"2023-07-24T03:21:29.000Z","updated_at":"2025-03-05T04:57:34.000Z","dependencies_parsed_at":"2025-03-05T05:31:08.099Z","dependency_job_id":"12facb3d-6dcd-43ed-a06b-61b453eeb1c8","html_url":"https://github.com/wpdas/chat-app-chaindb-nextjs","commit_stats":null,"previous_names":["wpdas/chat-app-chaindb-nextjs"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/wpdas/chat-app-chaindb-nextjs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wpdas%2Fchat-app-chaindb-nextjs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wpdas%2Fchat-app-chaindb-nextjs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wpdas%2Fchat-app-chaindb-nextjs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wpdas%2Fchat-app-chaindb-nextjs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wpdas","download_url":"https://codeload.github.com/wpdas/chat-app-chaindb-nextjs/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wpdas%2Fchat-app-chaindb-nextjs/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32017819,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-18T20:23:30.271Z","status":"online","status_checked_at":"2026-04-19T02:00:07.110Z","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":["app","chaindb","chat","nextjs"],"created_at":"2025-03-11T03:57:18.840Z","updated_at":"2026-04-19T18:31:39.801Z","avatar_url":"https://github.com/wpdas.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Chain Chat App\n\nUm aplicativo de chat em tempo real construído com [ChainDB](https://github.com/wpdas/chain-db), um banco de dados que mantém um histórico completo de alterações.\n\n![ChainChat Screenshot](screenshot.png)\n\n## Sobre o Projeto\n\nChainChat é uma aplicação de chat em salas que demonstra o poder do ChainDB como solução de armazenamento para aplicações em tempo real. Utilizando o cliente TypeScript [chain-db-ts](https://github.com/wpdas/chain-db-ts), o aplicativo oferece:\n\n- **Autenticação de usuários** - Crie uma conta com nome de usuário e senha\n- **Salas de chat** - Crie novas salas ou participe de salas existentes\n- **Mensagens em tempo real** - Comunicação instantânea usando WebSockets\n- **Histórico completo** - Acesso ao histórico de todas as mensagens anteriores\n\n## Tecnologias Utilizadas\n\n- **Frontend/Backend**: React/Next.js, ChakraUI\n- **Banco de Dados**: [ChainDB](https://github.com/wpdas/chain-db)\n- **Cliente DB**: [chain-db-ts](https://github.com/wpdas/chain-db-ts)\n\n## Por que ChainDB?\n\nO ChainDB foi escolhido como banco de dados para este projeto devido às suas características únicas:\n\n1. **Histórico Completo** - Cada mensagem é preservada no histórico, permitindo visualizar a evolução das conversas\n2. **Segurança** - Dados criptografados com AES-256-GCM\n3. **Eventos em Tempo Real** - Suporte nativo a WebSockets para atualizações em tempo real\n4. **Simplicidade** - API intuitiva e fácil de usar\n5. **Confiabilidade** - Operações atômicas com capacidade de rollback\n6. **Filtro de buscas** - Operações de buscas com filtros\n\n## Estrutura de Dados\n\nO ChainChat utiliza quatro tabelas principais no ChainDB:\n\n### Tabela de Usuários\n\n```typescript\ninterface UserSchema {\n  id: string\n  username: string\n  password: string\n}\n```\n\n### Tabela de Salas\n\n```typescript\ninterface RoomSchema {\n  rooms: Room[]\n}\n```\n\n### Tabela de Mensagens\n\n```typescript\ninterface MessageSchema {\n  username?: string\n  message?: string\n  b64Image?: string\n  timestamp?: number\n}\n```\n\n### Tabela de Registro de Usuários com Conta\n\nEsta é uma tabela estratégica para pode fazer uma tipo de link entre propriedade de tabelas.\n\n```typescript\ninterface UserIdsSchema {\n  id: string // same id as UserSchema.id\n  username: string // user name. this is used to get the user table\n}\n```\n\n## Funcionalidades\n\n- [x] Registro e login de usuários\n- [x] Criação de salas de chat\n- [x] Envio de mensagens em tempo real\n- [x] Histórico de mensagens\n- [x] Listagem de salas disponíveis\n- [x] Participação em múltiplas salas\n- [ ] Mensagens privadas (em desenvolvimento)\n- [ ] Notificações (em desenvolvimento)\n- [x] Compartilhamento de fotos\n\n## Contribuição\n\nContribuições são bem-vindas! Sinta-se à vontade para abrir issues ou enviar pull requests.\n\n## Licença\n\nEste projeto está licenciado sob a licença MIT - veja o arquivo [LICENSE](LICENSE) para mais detalhes.\n\n## Agradecimentos\n\n- [ChainDB](https://github.com/wpdas/chain-db) - O banco de dados que torna este projeto possível\n- [chain-db-ts](https://github.com/wpdas/chain-db-ts) - Cliente TypeScript para o ChainDB\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwpdas%2Fchat-app-chaindb-nextjs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwpdas%2Fchat-app-chaindb-nextjs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwpdas%2Fchat-app-chaindb-nextjs/lists"}