O iTeacher é uma plataforma inovadora que conecta alunos e professores, facilitando o agendamento de aulas presenciais e, futuramente, remotas. O sistema foi projetado para promover a educação personalizada, aproximando quem quer aprender de quem pode ensinar, com foco em qualidade, segurança e experiência do usuário.
A plataforma permite que alunos encontrem professores por proximidade, área de conhecimento, avaliação e especialidade, utilizando recursos de geolocalização para recomendações inteligentes. Professores podem criar perfis detalhados, cadastrar horários disponíveis, definir preços e receber avaliações dos alunos, promovendo um ambiente meritocrático e transparente.
O iTeacher diferencia-se por:
- Sistema de avaliação robusto, com critérios diferenciados para professores verificados e não verificados.
- Busca inteligente baseada em localização e ranking.
- Processo seguro de cadastro e validação de usuários.
- Gestão de agenda e bloqueio automático de horários.
- Foco inicial em aulas presenciais, com arquitetura preparada para expansão para aulas remotas e recursos multimídia.
O público-alvo são estudantes de todas as idades que buscam reforço escolar, aulas particulares ou desenvolvimento de novas habilidades, e professores/autônomos que desejam ampliar sua rede de alunos e profissionalizar seu serviço.
O MVP contempla:
- Cadastro e validação de alunos e professores
- Busca e agendamento de aulas presenciais
- Sistema de avaliação
- Gestão de perfis e agenda
- Geolocalização para recomendações
A visão de futuro inclui integração com plataformas de vídeo, aulas remotas, pagamentos online, notificações e muito mais.
Sistema backend modular para gestão de usuários, perfis e aulas, baseado em NestJS, Prisma e PostgreSQL, com foco em educação, avaliações e geolocalização. O projeto segue princípios de arquitetura limpa e escalável.
O iTeacher é uma API backend para conectar alunos e professores, permitindo marcação de aulas presenciais, avaliações, busca por proximidade e gerenciamento de perfis. O sistema foi desenhado para ser seguro, escalável e fácil de evoluir, com regras de negócio claras para cada perfil de usuário.
- MVP: Inicialmente, apenas aulas presenciais podem ser marcadas.
- Cadastro de Aluno: Inclui endereço (convertido em coordenadas geográficas), telefone, e-mail (com validação via token) e senha hasheada.
- Cadastro de Professor: Dois tipos (verificado e não verificado), com envio de documentação para verificação e perfil público detalhado.
- Sistema de Avaliação:
- Notas de 0 a 5 estrelas.
- Professores verificados: avaliação ponderada (peso extra).
- Professores não verificados e alunos: média simples.
- Busca e Listagem:
- Alunos podem buscar professores por nome, disciplina, assunto, proximidade e avaliação.
- Professores listados por proximidade e ranking.
- Geolocalização: Endereços são convertidos em coordenadas para recomendações e visualização no mapa.
- Agenda do Professor: Professores cadastram horários livres; horários ocupados são bloqueados automaticamente.
- Avaliação: Alunos avaliam professores e vice-versa.
- Desativação e Exclusão de Conta: Alunos podem desativar (reversível) ou deletar (irreversível) suas contas.
- Valores monetários: Sempre salvos como inteiros (ex: centavos).
- Cadastro, validação de e-mail, login, edição de dados, desativação/exclusão de conta.
- Cadastro e edição de perfil (bio, data de nascimento, site, imagem, etc).
- Busca e avaliação de professores.
- Escolha entre professores verificados ou não, filtro por proximidade e avaliação.
- Cadastro (verificado ou não), envio de documentação, criação de perfil público.
- Cadastro de agenda e horários disponíveis.
- Cadastro de aulas gravadas (exemplo via YouTube).
- Avaliação de alunos.
- Definição de pontuação mínima de alunos para aceitar aulas.
- NestJS (v11)
- Prisma ORM (v6)
- PostgreSQL
- Docker
- Jest (testes)
- Swagger (documentação automática)
- ESLint, Prettier, Husky
- Clone o repositório:
git clone <url-do-repo> cd iTeacher
- Copie o arquivo de variáveis de ambiente:
cp .env.example .env
- Suba os containers Docker:
docker compose up -d
- Instale as dependências:
npm install
- Gere o client do Prisma:
npx prisma generate
- Rode as migrações:
npx prisma migrate deploy
- Inicie a aplicação em modo desenvolvimento:
npm run start:dev
- Acesse a documentação Swagger em: http://localhost:3000/api
├── src
│ ├── main.ts
│ ├── app.module.ts
│ └── modules
│ ├── users
│ │ ├── domain
│ │ ├── application
│ │ ├── infrastructure
│ │ └── presentation
│ └── profiles
│ ├── domain
│ └── http
├── prisma
│ ├── schema.prisma
│ └── migrations
├── test
├── docs
├── Dockerfile
├── docker-compose.yml
└── ...
- Para rodar todos os testes:
npm run test - Para rodar testes de cobertura:
npm run test:cov
- Gerar documentação automática:
npm run doc
- Acesse a documentação Swagger em: http://localhost:3000/api
- Lean Architecture
- Padrões de Projeto, Service, Repository
- Princípios SOLID, Dependency Inversion
- Regras de Negócio
- Faça um fork do projeto
- Crie uma branch para sua feature (
git checkout -b feature/nome-feature) - Commit suas alterações (
git commit -m 'feat: minha feature') - Push para a branch (
git push origin feature/nome-feature) - Abra um Pull Request
Consulte os guias internos para:
- Nova variável de ambiente
- Novo módulo
- Novo DTO
- Novo Controller
- Novo Service
- Novo Model
- Novo Repository
MIT