{"id":51533923,"url":"https://github.com/heitorpolidoro/nexdom","last_synced_at":"2026-07-09T06:30:26.709Z","repository":{"id":352885521,"uuid":"1216439376","full_name":"heitorpolidoro/nexdom","owner":"heitorpolidoro","description":"Sistema de Gestão de Controle de Tarefas","archived":false,"fork":false,"pushed_at":"2026-06-12T18:14:10.000Z","size":844,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-06-12T18:25:01.138Z","etag":null,"topics":["fastapi","python","sqlmodel","task-management"],"latest_commit_sha":null,"homepage":"https://sigecon-back.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/heitorpolidoro.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":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-20T22:56:49.000Z","updated_at":"2026-06-12T18:14:15.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/heitorpolidoro/nexdom","commit_stats":null,"previous_names":["heitorpolidoro/sigecon","heitorpolidoro/nexdom"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/heitorpolidoro/nexdom","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/heitorpolidoro%2Fnexdom","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/heitorpolidoro%2Fnexdom/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/heitorpolidoro%2Fnexdom/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/heitorpolidoro%2Fnexdom/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/heitorpolidoro","download_url":"https://codeload.github.com/heitorpolidoro/nexdom/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/heitorpolidoro%2Fnexdom/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35290235,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-09T02:00:07.329Z","response_time":57,"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":["fastapi","python","sqlmodel","task-management"],"created_at":"2026-07-09T06:30:26.019Z","updated_at":"2026-07-09T06:30:26.695Z","avatar_url":"https://github.com/heitorpolidoro.png","language":"TypeScript","funding_links":["https://github.com/sponsors/heitorpolidoro"],"categories":[],"sub_categories":[],"readme":"# NEXDOM — Sistema de Gestão de Condomínios e Associações\n\n\u003cdiv\u003e\n\u003c!-- GitHub CI \u0026 Sponsors --\u003e\n\u003ca href=\"https://github.com/heitorpolidoro/nexdom/actions/workflows/ci.yml\"\u003e\u003cimg src=\"https://github.com/heitorpolidoro/nexdom/actions/workflows/ci.yml/badge.svg\" alt=\"CI Status\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/sponsors/heitorpolidoro\"\u003e\u003cimg src=\"https://img.shields.io/github/sponsors/heitorpolidoro?color=ea4aaa\" alt=\"GitHub Sponsors\"\u003e\u003c/a\u003e\n\u003cbr\u003e\n\n\u003c!-- GitHub Stats --\u003e\n\n\u003ca href=\"https://github.com/heitorpolidoro/nexdom/releases/latest\"\u003e\u003cimg src=\"https://img.shields.io/github/v/release/heitorpolidoro/nexdom?label=Latest%20Version\" alt=\"Latest Version\"\u003e\u003c/a\u003e\n\u003cimg src=\"https://img.shields.io/github/release-date/heitorpolidoro/nexdom\" alt=\"GitHub Release Date\"\u003e\n\u003cimg src=\"https://img.shields.io/github/commits-since/heitorpolidoro/nexdom/latest\" alt=\"GitHub commits since latest release\"\u003e\n\u003cimg src=\"https://img.shields.io/github/last-commit/heitorpolidoro/nexdom\" alt=\"GitHub last commit\"\u003e\n\u003cbr\u003e\n\n\u003c!-- GitHub Activity --\u003e\n\n\u003ca href=\"https://github.com/heitorpolidoro/nexdom/issues\"\u003e\u003cimg src=\"https://img.shields.io/github/issues/heitorpolidoro/nexdom\" alt=\"GitHub issues\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/heitorpolidoro/nexdom/pulls\"\u003e\u003cimg src=\"https://img.shields.io/github/issues-pr/heitorpolidoro/nexdom\" alt=\"GitHub pull requests\"\u003e\u003c/a\u003e\n\u003cbr\u003e\n\n\u003c!-- DeepSource --\u003e\n\n\u003ca href=\"https://app.deepsource.com/gh/heitorpolidoro/nexdom/\" target=\"_blank\"\u003e\u003cimg alt=\"DeepSource\" title=\"DeepSource\" src=\"https://app.deepsource.com/gh/heitorpolidoro/nexdom.svg/?label=active+issues\u0026show_trend=true\"/\u003e\u003c/a\u003e\n\u003ca href=\"https://app.deepsource.io/gh/heitorpolidoro/nexdom/\"\u003e\u003cimg src=\"https://app.deepsource.com/gh/heitorpolidoro/nexdom.svg/?label=coverage\" alt=\"DeepSource Coverage\"\u003e\u003c/a\u003e\n\u003cbr\u003e\n\n\u003c!-- SonarCloud --\u003e\n\n\u003ca href=\"https://sonarcloud.io/summary/new_code?id=heitorpolidoro_nexdom\"\u003e\u003cimg src=\"https://sonarcloud.io/api/project_badges/measure?project=heitorpolidoro_nexdom\u0026metric=alert_status\" alt=\"SonarCloud Quality Gate\"\u003e\u003c/a\u003e\n\u003ca href=\"https://sonarcloud.io/summary/new_code?id=heitorpolidoro_nexdom\"\u003e\u003cimg src=\"https://sonarcloud.io/api/project_badges/measure?project=heitorpolidoro_nexdom\u0026metric=coverage\" alt=\"SonarCloud Coverage\"\u003e\u003c/a\u003e\n\u003ca href=\"https://sonarcloud.io/summary/new_code?id=heitorpolidoro_nexdom\"\u003e\u003cimg src=\"https://sonarcloud.io/api/project_badges/measure?project=heitorpolidoro_nexdom\u0026metric=security_rating\" alt=\"SonarCloud Security Rating\"\u003e\u003c/a\u003e\n\u003cbr\u003e\n\u003ca href=\"https://sonarcloud.io/summary/new_code?id=heitorpolidoro_nexdom\"\u003e\u003cimg src=\"https://sonarcloud.io/api/project_badges/measure?project=heitorpolidoro_nexdom\u0026metric=bugs\" alt=\"SonarCloud Bugs\"\u003e\u003c/a\u003e\n\u003ca href=\"https://sonarcloud.io/summary/new_code?id=heitorpolidoro_nexdom\"\u003e\u003cimg src=\"https://sonarcloud.io/api/project_badges/measure?project=heitorpolidoro_nexdom\u0026metric=vulnerabilities\" alt=\"SonarCloud Vulnerabilities\"\u003e\u003c/a\u003e\n\u003ca href=\"https://sonarcloud.io/summary/new_code?id=heitorpolidoro_nexdom\"\u003e\u003cimg src=\"https://sonarcloud.io/api/project_badges/measure?project=heitorpolidoro_nexdom\u0026metric=code_smells\" alt=\"SonarCloud Code Smells\"\u003e\u003c/a\u003e\n\u003ca href=\"https://sonarcloud.io/summary/new_code?id=heitorpolidoro_nexdom\"\u003e\u003cimg src=\"https://sonarcloud.io/api/project_badges/measure?project=heitorpolidoro_nexdom\u0026metric=sqale_rating\" alt=\"SonarCloud Maintainability\"\u003e\u003c/a\u003e\n\n\u003c/div\u003e\n\nO **Nexdom** é uma plataforma web para gestão de condomínios e associações. O módulo atual cobre a gestão de tarefas da administração: criação, atribuição, acompanhamento de status, comentários e auditoria completa de alterações, com controle de acesso por papéis.\n\n- **Frontend (produção):** https://nexdom-front.vercel.app\n- **Backend (produção):** https://nexdom-back.vercel.app\n\n## Funcionalidades\n\n- **Gestão de tarefas** com categorias, prioridades, status e atribuição a usuários\n- **Controle de acesso (RBAC)** com três papéis: Administrador, Diretor e Gerente\n- **Auditoria** — todo histórico de alterações de uma tarefa é registrado e exibido na linha do tempo\n- **Comentários** por tarefa\n- **Internacionalização** (pt-BR e en) via i18next\n\n## Tecnologias\n\n### Backend\n\n- **Linguagem:** Python 3.13\n- **Framework:** FastAPI\n- **ORM:** SQLModel (SQLAlchemy) com migrações via Alembic\n- **Banco de Dados:** PostgreSQL 16\n- **Autenticação:** JWT (PyJWT) + bcrypt, rate limiting com slowapi\n- **Gerenciador de Pacotes:** uv\n\n### Frontend\n\n- **Framework:** React 19 (TypeScript)\n- **Build Tool:** Vite\n- **Estilização:** Tailwind CSS + Radix UI\n- **Estado de servidor:** TanStack Query\n\n## Execução local\n\n### Docker Compose (tudo junto)\n\n```bash\ndocker compose up --build\n# backend  → http://localhost:8001\n# frontend → http://localhost:3001\n# postgres → localhost:5436\n```\n\n### Manual\n\n```bash\n# Backend\ncd backend\nuv sync --all-groups\nuv run uvicorn app.main:app --reload --port 8001\n\n# Frontend\ncd frontend\nnpm install\nnpm run dev   # http://localhost:3000\n```\n\nAs configurações de ambiente (banco de dados, chaves secretas, etc.) ficam em `backend/.env` e `frontend/.env.local` — veja o `CLAUDE.md` para os valores de desenvolvimento.\n\n## Testes\n\n```bash\n# Backend (cobertura mínima: 90%)\ncd backend \u0026\u0026 uv run pytest --cov=app tests/\n\n# Frontend (cobertura mínima: 75%)\ncd frontend \u0026\u0026 npm run test:coverage\n```\n\n## Deploy\n\nO deploy é feito na **Vercel** (projetos `nexdom-front` e `nexdom-back`). Todo merge na branch `master` dispara automaticamente o deploy de produção dos dois projetos via integração Git. As migrações de banco rodam no GitHub Actions (`migrate.yml`) a cada push na `master`.\n\n## Contribuição e Fluxo de Trabalho\n\nBranches de feature (`feat/`), commits descritivos e Pull Requests para a branch principal (`master`). O CI (GitHub Actions) roda testes de backend e frontend com gates de cobertura, além de análise no SonarCloud e DeepSource — um PR só pode ser mergeado com todos os checks verdes.\n\n## Segurança\n\nAutenticação via JWT (HS256) e controle de acesso baseado em papéis (RBAC) — Administrador, Diretor e Gerente, com permissões distintas para tarefas e categorias. Credenciais sensíveis são gerenciadas via variáveis de ambiente.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fheitorpolidoro%2Fnexdom","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fheitorpolidoro%2Fnexdom","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fheitorpolidoro%2Fnexdom/lists"}