Migles é um aplicativo multiplataforma (mobile + web) para gerenciamento de eventos sociais. Permite que grupos de amigos e comunidades organizem eventos com RSVP, waitlist e gestão de membros.
Nota: Migles NÃO é uma plataforma de mensagens. Ele complementa WhatsApp/Telegram organizando o que acontece fora deles.
Monorepo com pnpm workspaces:
migles/
├── api/ - Backend com NestJS
├── mobile/ - App nativo com React Native
├── web/ - Web com React
└── packages/ - Pacotes compartilhados
- Framework: NestJS
- Linguagem: TypeScript (strict mode)
- ORM: Prisma
- Banco de dados: PostgreSQL
- Validação: Zod
- Queue: BullMQ + Redis
- Testes: Vitest
- Mobile: React Native
- Web: React
- Copie o arquivo de ambiente:
cp api/.env.example api/.env-
Preencha as variáveis obrigatórias:
DATABASE_URL- conexão PostgreSQLJWT_SECRET- chave para JWTREDIS_URL- conexão Redis- Credenciais OAuth (Google, Apple)
-
Instale dependências e inicie o desenvolvimento:
# a partir da raiz do projeto
pnpm install
pnpm -F=api devExecute dentro de api/:
pnpm dev # inicia com watch mode
pnpm build # compila
pnpm test # executa testes com Vitest
pnpm test:coverage # relatório de cobertura
pnpm db:migrate # Prisma migrate dev
pnpm db:generate # regenera Prisma client
pnpm db:studio # abre Prisma Studio
pnpm db:seed # seed com dados iniciaisOs módulos do backend (api/src/modules/) seguem o padrão:
auth- Autenticação e estratégias OAuthusers- Gerenciamento de usuáriosevents- Gestão de eventoscommunities- Gerenciamento de comunidadesrsvp- Sistema de confirmação de presençacomments- Comentários em eventos
Cada módulo possui: controller, service, repository, schema Zod e types.
- Um evento deve ter at least um organizador
- Promoção automática de waitlist (FIFO) quando confirmado cancela
- Estados RSVP:
pending→confirmed|declined|waitlisted - Visibilidade:
PRIVATE(só convidados) ouCOMMUNITY(membros da comunidade) - Status de membro:
ACTIVE|PENDING|BANNED - Apenas admins da comunidade podem criar eventos ligados a uma comunidade
Todas as decisões de produto e arquitetura estão documentadas em specs/spec-v1.md.
Para mudanças no produto, atualize a spec ANTES de implementar.
MIT