Projetos
Academic Group Project·2026·4 Milestones / Sprints de 2 semanas

LevelEstate - Plataforma Imobiliária Gamificada

Plataforma imobiliária gamificada full-stack constituída por API ASP.NET Core 8 em C# com WebSockets, portal web em Angular 19 com pesquisa geográfica Mapbox, aplicação móvel Android nativa em Kotlin com Jetpack Compose, agendamento de tarefas Quartz.NET e pipelines CI/CD automatizadas no GitLab.

Secção 01

Gamificando o setor imobiliário e a interação agente-cliente.

Desenvolvida na unidade curricular de Laboratório de Desenvolvimento de Software (LDS) do Politécnico do Porto, a LevelEstate liga Agentes Imobiliários e Clientes ao introduzir mecânicas inovadoras de gamificação (rankings, pontos e medalhas/badges) para motivar o desempenho dos agentes.

A plataforma compreende três pilares de código: Backend REST & WebSockets em ASP.NET Core 8 (EF Core 9, SQL Server, tarefas Quartz.NET), Portal Web em Angular 19 (TailwindCSS 4, DaisyUI 5, Mapbox GL JS 3.16 para pesquisa por delimitação geográfica) e App Android Nativa em Kotlin (Jetpack Compose, Room SQLite local, Retrofit 2, Firebase Push).

3Bases de Código Multiplataforma (.NET, Angular, Kotlin)
4Tarefas Automatizadas Quartz.NET
WebSocketsChat e Notificações em Tempo Real
GitLab CIPipeline de Build, Testes & E2E
LevelEstate - Plataforma Imobiliária Gamificada

Mockup das interfaces multiplataforma do LevelEstate destacando o portal web em Angular e a app móvel Android

Secção 02

O Problema & Desafios Chave

As plataformas imobiliárias tradicionais carecem de mecanismos interativos de incentivo para os agentes e sofrem de lentidão na comunicação cliente-agente e filtros de pesquisa rígidos.

O LevelEstate resolve este desafio ao integrar comunicação bidirecional em tempo real por WebSockets, filtros geográficos por Bounding Box em mapa interativo, consolidação automática de pontos e uma experiência móvel nativa de alto desempenho.

Desafios Chave de Engenharia
  • Implementar endpoints WebSockets nativos em ASP.NET Core 8 (/ws/chat, /ws/chatHistory, /ws/notifications) para mensagens instantâneas sem latência
  • Configurar tarefas Quartz.NET em segundo plano (ConvertPointsJob, BadgeAssignmentJob, CreateRankingJob) para atribuição diária de pontos e rankings mensais
  • Integrar Mapbox GL JS e Turf.js no Angular 19 para cálculo de áreas e pesquisas delimitadas por Bounding Box no mapa
  • Desenvolver a aplicação Android nativa em Kotlin com Jetpack Compose, armazenamento offline Room SQLite e notificações Push via Firebase FCM
  • Automatizar a pipeline CI/CD no GitLab executando testes unitários em xUnit, testes de integração Postman/Newman, testes E2E em Selenium e cobertura JaCoCo
Secção 03

Arquitetura & Decisões Técnicas

Arquitetura orientada a domínios em camadas com API REST e WebSockets em ASP.NET Core 8, portal Web desacoplado em Angular 19, aplicação Android nativa em Kotlin e base de dados SQL Server.

Diagrama de Topologia & Fluxo de Componentes
Loading architecture topology...
Porquê Esta Arquitetura
  • Arquitetura de monólito modular bem estruturado por domínios garante transações atómicas no SQL Server e fácil manutenção
  • Comunicação por WebSockets elimina overhead de polling HTTP para chat e notificações ao vivo
  • Cliente Android nativo oferece excelente desempenho com renderização declarativa em Jetpack Compose e suporte offline com Room DB
Secção 04

Stack Tecnológica & Infraestrutura

.NET.NET C#
AngularAngular
KotlinKotlin
SQL Server
Socket.ioSockets