{"id":51861640,"url":"https://github.com/juninmd/meu-barbeiro","last_synced_at":"2026-07-24T08:02:15.801Z","repository":{"id":349021168,"uuid":"1200737979","full_name":"juninmd/meu-barbeiro","owner":"juninmd","description":null,"archived":false,"fork":false,"pushed_at":"2026-07-17T11:26:33.000Z","size":122,"stargazers_count":0,"open_issues_count":5,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-07-17T13:17:23.697Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/juninmd.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-04-03T19:12:50.000Z","updated_at":"2026-07-17T11:27:02.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/juninmd/meu-barbeiro","commit_stats":null,"previous_names":["juninmd/meu-barbeiro"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/juninmd/meu-barbeiro","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/juninmd%2Fmeu-barbeiro","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/juninmd%2Fmeu-barbeiro/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/juninmd%2Fmeu-barbeiro/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/juninmd%2Fmeu-barbeiro/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/juninmd","download_url":"https://codeload.github.com/juninmd/meu-barbeiro/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/juninmd%2Fmeu-barbeiro/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35832970,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-07-20T02:08:10.276Z","status":"online","status_checked_at":"2026-07-24T02:00:07.870Z","response_time":62,"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":[],"created_at":"2026-07-24T08:02:15.092Z","updated_at":"2026-07-24T08:02:15.796Z","avatar_url":"https://github.com/juninmd.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ✂️ Meu Barbeiro\n\n\u003e A solução completa para gestão de barbearias e agendamentos.\n\n[![Deployment Status](https://img.shields.io/badge/ArgoCD-Synced-success?style=for-the-badge\u0026logo=argocd)](https://argocd.antonio-code.duckdns.org)\n[![License](https://img.shields.io/badge/License-MIT-blue?style=for-the-badge)](LICENSE)\n\n## 📝 Descrição\n\nO **Meu Barbeiro** é uma plataforma que simplifica a vida de barbeiros e clientes. Com agendamento online, gestão de serviços e controle financeiro, permitimos que o profissional foque no que faz de melhor: a arte da barbearia.\n\n## ✨ Funcionalidades\n\n- **Agendamento Online**: Link exclusivo para clientes marcarem horário.\n- **Gestão de Serviços**: Cadastro de cortes, barbas e tratamentos com preços e durações.\n- **Painel Administrativo**: Visão geral do dia, semana e faturamento.\n- **Notificações**: Lembretes automáticos para evitar faltas.\n- **SaaS multi-barbearia**: identidade, endereço, horários e política de sinal por estabelecimento.\n- **Mercado Pago**: assinatura mensal de R$ 20,00, conexão OAuth do vendedor, sinal online e comissão fixa de 1% por serviço.\n\n## 🛠️ Tech Stack\n\n- **Frontend**: [React 19](https://react.dev/) + [Vite 6](https://vite.dev/)\n- **Backend**: Node.js (API)\n- **Estilização**: Tailwind CSS v4\n- **Deployment**: Nginx + Docker\n\n## 🚀 Como Rodar Localmente\n\n1. Clone o repositório:\n   ```bash\n   git clone https://github.com/juninmd/meu-barbeiro.git\n   ```\n2. Instale as dependências:\n   ```bash\n   pnpm install\n   ```\n3. Inicie o web app em modo de desenvolvimento:\n   ```bash\n   pnpm dev\n   ```\n\nO modo de desenvolvimento abre uma área **Acesso mock**. Use **Visão cliente**\npara criar e cancelar agendamentos e **Visão barbeiro** para confirmar horários,\nconcluir atendimentos e gerenciar serviços. Os dados ficam no `localStorage` do\nnavegador. O seletor de perfis e os dados mock não são habilitados no build de\nprodução.\n\nPara testar contra a API real, copie `web/.env.example` para `web/.env.local`,\nconfigure `VITE_API_URL` e defina `VITE_ENABLE_MOCKS=false`. Para iniciar web e\nAPI juntos:\n\n```bash\npnpm dev:full\n```\n\n### API, banco e Mercado Pago\n\nCopie `api/.env.example` para `api/.env` e configure PostgreSQL, sessão, Google e\nMercado Pago. Gere `SESSION_SECRET` e `TOKEN_ENCRYPTION_KEY` com valores aleatórios;\ntokens OAuth dos vendedores são persistidos criptografados.\n\nBanco novo:\n\n```bash\npnpm --filter api prisma:migrate:deploy\n```\n\nBanco legado já criado antes do Prisma Migrate: confira que ele corresponde ao\nschema inicial, marque somente a baseline e depois aplique as demais migrations:\n\n```bash\npnpm --filter api exec prisma migrate resolve --applied 20260717000000_initial\npnpm --filter api prisma:migrate:deploy\n```\n\nNa aplicação do Mercado Pago, configure:\n\n- Redirect OAuth: `${API_PUBLIC_URL}/billing/mercado-pago/callback`\n- Webhook: `${API_PUBLIC_URL}/billing/mercado-pago/webhook`\n- Eventos: `payment` e `subscription_preapproval`\n\nUse credenciais de teste em homologação e credenciais de produção somente nos\nSecrets do ambiente. A plataforma cobra R$ 20,00/mês da barbearia. Em cada\ncheckout do cliente, `marketplace_fee` recebe 1% do valor total do serviço; o\nsinal configurado precisa ser suficiente para essa comissão.\n\n## ✅ Validação\n\n```bash\npnpm lint\npnpm test\npnpm build\npnpm test:e2e\n```\n\n## 📦 Deployment\n\nA versão web é servida via **Nginx** no cluster **K3s**.\n\n- **URL Web**: [https://barbeiro.antonio-code.duckdns.org](https://barbeiro.antonio-code.duckdns.org)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjuninmd%2Fmeu-barbeiro","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjuninmd%2Fmeu-barbeiro","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjuninmd%2Fmeu-barbeiro/lists"}