Wocart
Wocart runs the whole cash-on-delivery business for Algerian stores: an Arabic-first checkout, phone verification, Yalidine, ZR Express, NOEST, Guepex and 82 EcoTrack couriers, your own drivers, and M
翻訳待ち
No updates detected yet. GitHub releases will appear here.
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗Plataforma brasileira para conectar quem busca imóveis às imobiliárias. Reúne portal de compra e locação, busca inteligente, tours 360°, gestão do portfólio, base de clientes, CRM e Analytics com isolamento por organização.
Portal público de compra e locação com busca inteligente, catálogo publicado, filtros e paginação; área profissional em /para-imobiliarias.
Base de Leads separada do CRM, cadastro e complementação de clientes (nome, e-mail, celular, CPF e nascimento), captação pelo portal e cadastro sem imóvel definido.
Analytics com evolução diária e indicadores reais; tema claro padrão e opção de modo escuro. Funcionamento, IA opcional e migration.
Login, logout, recuperação de senha por SMTP, sessões persistidas, rate limiting e rotas protegidas.
Organizações e memberships independentes de usuários, OWNER/ADMIN/MEMBER/VIEWER e seleção de workspace.
Dashboard com contagens reais; listagem/busca; cadastro em três etapas; edição, publicação e arquivamento.
Páginas públicas somente para imóveis publicados, metadata dinâmica, Open Graph e compartilhamento.
PostgreSQL com constraints, índices, migrations e RLS; runtime com role sem privilégios administrativos.
Testes unitários, integração com PostgreSQL real e E2E com Chromium; workflow de CI.
Editor de tours 360° por imóvel: panoramas 2:1, ambientes, pontos clicáveis, visualizador WebGL, rascunhos e publicação independente.
Upload direto para bucket privado do Supabase, validação real dos pixels, remoção de metadados e URLs temporárias. Exige conexão ao projeto e configuração do Storage; não existe upload fictício na aplicação.
Planta baixa opcional no tour (até 5 pavimentos): a imobiliária marca cada ambiente na planta e o visitante navega clicando nela.
Vista 3D externa do condomínio: maquete gerada a partir de torres, andares, posição do apartamento e lazer, com controle tipo drone, sol e sombras reais por data e horário e horas de sol direto na fachada. A página pública recebe só coordenadas arredondadas.
Pontos de informação ("i") nos ambientes do tour: a imobiliária destaca acabamentos e itens; cada detalhe aberto conta na nota de interesse.
Simulador de financiamento (SAC/Price) nos imóveis à venda, com taxa inicial configurável por imobiliária. Com medição autorizada, entrada, prazo e parcela aparecem na ficha do lead e contam na nota de interesse.
Sino de notificações por usuário, cadastro obrigatório antes do tour público e atribuição de leads por responsável, rodízio ou desempenho. Avisos automáticos de visita por WhatsApp com fila e tentativas de reenvio; exigem configurar a integração Meta. Configuração e regras.
Vídeos, convites, cobrança, autosave e onboarding comercial ainda não estão implementados. A página de contato é informativa; não há formulário que finja enviar mensagens.
Node.js 22.14+ (22 LTS recomendado), npm, PostgreSQL 16+ e SMTP. Next.js 16.3, React 19, TypeScript strict, Tailwind 4, Prisma 7, Better Auth, Zod e React Hook Form. Docker é opcional. O build obtém Manrope via Google Fonts.
npm install
npm run setup:env
docker compose up -d
npm run db:setup
npm run dev
Abra http://localhost:3000. Mailpit: http://localhost:8025. O Compose só expõe as portas em loopback e usa credenciais descartáveis de desenvolvimento.
setup:env gera .env com secrets aleatórios se ele não existir. Nunca sobrescreve configuração existente. Next.js e os scripts CLI compartilham esse arquivo; por isso o exemplo utiliza .env, e não exclusivamente .env.local.
db:setup cria a role limitada, prepara o banco de testes, aplica migrations, concede grants e executa seeds nos dois bancos. É idempotente e só aceita bancos locais. Não redefine senhas existentes.
Foi preparada uma instância PostgreSQL exclusiva em .local/postgres, porta 55432, limitada a 127.0.0.1. Docker não estava em execução. Não inicie também o container PostgreSQL nessa porta.
Reiniciar ou parar essa instância, a partir da raiz:
pg_ctl -D .local/postgres -l .local/postgres.log -o '-p 55432 -h 127.0.0.1' start
pg_ctl -D .local/postgres stop
Em outro Windows com PostgreSQL nativo, antes de db:setup:
initdb -D .local/postgres -U imobview --auth=trust --encoding=UTF8 --locale=C
pg_ctl -D .local/postgres -l .local/postgres.log -o '-p 55432 -h 127.0.0.1' start
createdb -h 127.0.0.1 -p 55432 -U imobview imobview
npm run db:setup
Trust é exclusivo para esse cluster local isolado. Em produção use autenticação forte e TLS.
[email protected]: OWNER da Imobiliária Demo, com três imóveis fictícios.[email protected]: OWNER de Outra Imobiliária, com um imóvel privado.A senha das contas está em SEED_PASSWORD, no arquivo local .env. Não há senha fixa no repositório. Os seeds não rodam em NODE_ENV=production nem em host remoto; não use essas contas em ambiente comercial. O cadastro público está fechado neste ciclo.
Para testar recuperação fora do E2E, inicie docker compose up -d mailpit ou configure um servidor SMTP de desenvolvimento. Os testes E2E iniciam seu próprio receptor SMTP na porta 11025, sem enviar mensagens externas.
This is the beginning of the README. Read the rest at the original. Read the full README ↗