Skip to content

Feature/sprint 8b2 technical excellence v2#146

Closed
frigini wants to merge 2 commits intomasterfrom
feature/sprint-8b2-technical-excellence-v2
Closed

Feature/sprint 8b2 technical excellence v2#146
frigini wants to merge 2 commits intomasterfrom
feature/sprint-8b2-technical-excellence-v2

Conversation

@frigini
Copy link
Copy Markdown
Owner

@frigini frigini commented Mar 9, 2026

Summary by CodeRabbit

  • New Features

    • Launched a complete web provider platform with customer and provider registration flows
    • Added search functionality for discovering providers with filters (distance, rating, category)
    • Introduced provider profile pages with ratings, reviews, and contact options
    • Implemented provider dashboard for managing profile, documents, services, and descriptions
    • Added customer profile management and editing capabilities
    • Enabled WhatsApp integration for provider contact
    • Added review submission and display system
  • Documentation

    • Comprehensive roadmap documentation for current and future development phases
    • Technical debt tracking and resolution documentation updated

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai bot commented Mar 9, 2026

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 345770e3-611b-4b06-a81a-2fda022a0f81

📥 Commits

Reviewing files that changed from the base of the PR and between 728370e and 62e86e0.

⛔ Files ignored due to path filters (21)
  • src/Web/MeAjudaAi.Web.Provider/app/favicon.ico is excluded by !**/*.ico
  • src/Web/MeAjudaAi.Web.Provider/app/icon.png is excluded by !**/*.png
  • src/Web/MeAjudaAi.Web.Provider/lib/api/generated/@tanstack/react-query.gen.ts is excluded by !**/generated/**
  • src/Web/MeAjudaAi.Web.Provider/lib/api/generated/client.gen.ts is excluded by !**/generated/**
  • src/Web/MeAjudaAi.Web.Provider/lib/api/generated/client/client.gen.ts is excluded by !**/generated/**
  • src/Web/MeAjudaAi.Web.Provider/lib/api/generated/client/index.ts is excluded by !**/generated/**
  • src/Web/MeAjudaAi.Web.Provider/lib/api/generated/client/types.gen.ts is excluded by !**/generated/**
  • src/Web/MeAjudaAi.Web.Provider/lib/api/generated/client/utils.gen.ts is excluded by !**/generated/**
  • src/Web/MeAjudaAi.Web.Provider/lib/api/generated/core/auth.gen.ts is excluded by !**/generated/**
  • src/Web/MeAjudaAi.Web.Provider/lib/api/generated/core/bodySerializer.gen.ts is excluded by !**/generated/**
  • src/Web/MeAjudaAi.Web.Provider/lib/api/generated/core/params.gen.ts is excluded by !**/generated/**
  • src/Web/MeAjudaAi.Web.Provider/lib/api/generated/core/pathSerializer.gen.ts is excluded by !**/generated/**
  • src/Web/MeAjudaAi.Web.Provider/lib/api/generated/core/queryKeySerializer.gen.ts is excluded by !**/generated/**
  • src/Web/MeAjudaAi.Web.Provider/lib/api/generated/core/serverSentEvents.gen.ts is excluded by !**/generated/**
  • src/Web/MeAjudaAi.Web.Provider/lib/api/generated/core/types.gen.ts is excluded by !**/generated/**
  • src/Web/MeAjudaAi.Web.Provider/lib/api/generated/core/utils.gen.ts is excluded by !**/generated/**
  • src/Web/MeAjudaAi.Web.Provider/lib/api/generated/index.ts is excluded by !**/generated/**
  • src/Web/MeAjudaAi.Web.Provider/lib/api/generated/sdk.gen.ts is excluded by !**/generated/**
  • src/Web/MeAjudaAi.Web.Provider/lib/api/generated/types.gen.ts is excluded by !**/generated/**
  • src/Web/MeAjudaAi.Web.Provider/lib/api/generated/zod.gen.ts is excluded by !**/generated/**
  • src/Web/MeAjudaAi.Web.Provider/public/favicon.ico is excluded by !**/*.ico
📒 Files selected for processing (126)
  • docs/roadmap-current.md
  • docs/roadmap-future.md
  • docs/roadmap-history.md
  • docs/roadmap.md
  • docs/technical-debt.md
  • src/Web/.eslintrc.json
  • src/Web/MeAjudaAi.Web.Provider/app/(auth)/auth/signin/page.tsx
  • src/Web/MeAjudaAi.Web.Provider/app/(auth)/cadastro/cliente/page.tsx
  • src/Web/MeAjudaAi.Web.Provider/app/(auth)/layout.tsx
  • src/Web/MeAjudaAi.Web.Provider/app/(main)/buscar/error.tsx
  • src/Web/MeAjudaAi.Web.Provider/app/(main)/buscar/loading.tsx
  • src/Web/MeAjudaAi.Web.Provider/app/(main)/buscar/page.tsx
  • src/Web/MeAjudaAi.Web.Provider/app/(main)/cadastro/prestador/page.tsx
  • src/Web/MeAjudaAi.Web.Provider/app/(main)/cadastro/prestador/perfil/documentos/page.tsx
  • src/Web/MeAjudaAi.Web.Provider/app/(main)/cadastro/prestador/perfil/endereco/page.tsx
  • src/Web/MeAjudaAi.Web.Provider/app/(main)/cadastro/prestador/perfil/page.tsx
  • src/Web/MeAjudaAi.Web.Provider/app/(main)/layout.tsx
  • src/Web/MeAjudaAi.Web.Provider/app/(main)/page.tsx
  • src/Web/MeAjudaAi.Web.Provider/app/(main)/perfil/editar/page.tsx
  • src/Web/MeAjudaAi.Web.Provider/app/(main)/perfil/page.tsx
  • src/Web/MeAjudaAi.Web.Provider/app/(main)/prestador/[id]/page.tsx
  • src/Web/MeAjudaAi.Web.Provider/app/(main)/prestador/page.tsx
  • src/Web/MeAjudaAi.Web.Provider/app/api/auth/[...nextauth]/route.ts
  • src/Web/MeAjudaAi.Web.Provider/app/api/providers/[id]/services/[serviceId]/route.ts
  • src/Web/MeAjudaAi.Web.Provider/app/api/providers/[id]/services/route.ts
  • src/Web/MeAjudaAi.Web.Provider/app/api/providers/me/route.ts
  • src/Web/MeAjudaAi.Web.Provider/app/error.tsx
  • src/Web/MeAjudaAi.Web.Provider/app/globals.css
  • src/Web/MeAjudaAi.Web.Provider/app/layout.tsx
  • src/Web/MeAjudaAi.Web.Provider/components.json
  • src/Web/MeAjudaAi.Web.Provider/components/auth/auth-selection-dropdown.tsx
  • src/Web/MeAjudaAi.Web.Provider/components/auth/customer-register-form.tsx
  • src/Web/MeAjudaAi.Web.Provider/components/auth/login-form.tsx
  • src/Web/MeAjudaAi.Web.Provider/components/home/how-it-works.tsx
  • src/Web/MeAjudaAi.Web.Provider/components/layout/footer.tsx
  • src/Web/MeAjudaAi.Web.Provider/components/layout/header.tsx
  • src/Web/MeAjudaAi.Web.Provider/components/layout/user-menu.tsx
  • src/Web/MeAjudaAi.Web.Provider/components/profile/edit-profile-form.tsx
  • src/Web/MeAjudaAi.Web.Provider/components/providers/app-providers.tsx
  • src/Web/MeAjudaAi.Web.Provider/components/providers/dashboard-client.tsx
  • src/Web/MeAjudaAi.Web.Provider/components/providers/provider-card.tsx
  • src/Web/MeAjudaAi.Web.Provider/components/providers/provider-grid.tsx
  • src/Web/MeAjudaAi.Web.Provider/components/providers/service-selector.tsx
  • src/Web/MeAjudaAi.Web.Provider/components/reviews/review-card.tsx
  • src/Web/MeAjudaAi.Web.Provider/components/reviews/review-form.tsx
  • src/Web/MeAjudaAi.Web.Provider/components/reviews/review-list.tsx
  • src/Web/MeAjudaAi.Web.Provider/components/search/ad-card.tsx
  • src/Web/MeAjudaAi.Web.Provider/components/search/city-search.tsx
  • src/Web/MeAjudaAi.Web.Provider/components/search/search-filters.tsx
  • src/Web/MeAjudaAi.Web.Provider/components/search/service-tags.tsx
  • src/Web/MeAjudaAi.Web.Provider/components/service/service-card.tsx
  • src/Web/MeAjudaAi.Web.Provider/components/ui/ad-banner.tsx
  • src/Web/MeAjudaAi.Web.Provider/components/ui/avatar.tsx
  • src/Web/MeAjudaAi.Web.Provider/components/ui/badge.tsx
  • src/Web/MeAjudaAi.Web.Provider/components/ui/button.tsx
  • src/Web/MeAjudaAi.Web.Provider/components/ui/card.tsx
  • src/Web/MeAjudaAi.Web.Provider/components/ui/checkbox.tsx
  • src/Web/MeAjudaAi.Web.Provider/components/ui/dropdown-menu.tsx
  • src/Web/MeAjudaAi.Web.Provider/components/ui/form.tsx
  • src/Web/MeAjudaAi.Web.Provider/components/ui/input.tsx
  • src/Web/MeAjudaAi.Web.Provider/components/ui/label.tsx
  • src/Web/MeAjudaAi.Web.Provider/components/ui/rating.tsx
  • src/Web/MeAjudaAi.Web.Provider/components/ui/textarea.tsx
  • src/Web/MeAjudaAi.Web.Provider/components/ui/verified-badge.tsx
  • src/Web/MeAjudaAi.Web.Provider/hooks/use-document-upload.ts
  • src/Web/MeAjudaAi.Web.Provider/hooks/use-my-provider-profile.ts
  • src/Web/MeAjudaAi.Web.Provider/hooks/use-provider-status.ts
  • src/Web/MeAjudaAi.Web.Provider/hooks/use-register-provider.ts
  • src/Web/MeAjudaAi.Web.Provider/hooks/use-services.ts
  • src/Web/MeAjudaAi.Web.Provider/hooks/use-update-provider-profile.ts
  • src/Web/MeAjudaAi.Web.Provider/hooks/use-via-cep.ts
  • src/Web/MeAjudaAi.Web.Provider/lib/api/auth-headers.ts
  • src/Web/MeAjudaAi.Web.Provider/lib/api/client.ts
  • src/Web/MeAjudaAi.Web.Provider/lib/api/fetch-client.ts
  • src/Web/MeAjudaAi.Web.Provider/lib/api/mappers.ts
  • src/Web/MeAjudaAi.Web.Provider/lib/api/response-utils.ts
  • src/Web/MeAjudaAi.Web.Provider/lib/constants.ts
  • src/Web/MeAjudaAi.Web.Provider/lib/schemas/auth.ts
  • src/Web/MeAjudaAi.Web.Provider/lib/schemas/verification-status.ts
  • src/Web/MeAjudaAi.Web.Provider/lib/services/geocoding.ts
  • src/Web/MeAjudaAi.Web.Provider/lib/services/service-catalog.ts
  • src/Web/MeAjudaAi.Web.Provider/lib/utils/cn.ts
  • src/Web/MeAjudaAi.Web.Provider/lib/utils/index.ts
  • src/Web/MeAjudaAi.Web.Provider/lib/utils/normalization.ts
  • src/Web/MeAjudaAi.Web.Provider/lib/utils/phone.ts
  • src/Web/MeAjudaAi.Web.Provider/lib/utils/schema-verification.test.ts
  • src/Web/MeAjudaAi.Web.Provider/next.config.ts
  • src/Web/MeAjudaAi.Web.Provider/openapi-ts.config.ts
  • src/Web/MeAjudaAi.Web.Provider/package.json
  • src/Web/MeAjudaAi.Web.Provider/postcss.config.mjs
  • src/Web/MeAjudaAi.Web.Provider/project.json
  • src/Web/MeAjudaAi.Web.Provider/tailwind.config.ts
  • src/Web/MeAjudaAi.Web.Provider/tsconfig.app.json
  • src/Web/MeAjudaAi.Web.Provider/tsconfig.json
  • src/Web/jest.config.ts
  • src/Web/jest.preset.js
  • src/Web/libs/api-client/.eslintrc.json
  • src/Web/libs/api-client/README.md
  • src/Web/libs/api-client/jest.config.cts
  • src/Web/libs/api-client/package.json
  • src/Web/libs/api-client/project.json
  • src/Web/libs/api-client/src/index.ts
  • src/Web/libs/api-client/src/lib/api-client.spec.ts
  • src/Web/libs/api-client/src/lib/api-client.ts
  • src/Web/libs/api-client/tsconfig.json
  • src/Web/libs/api-client/tsconfig.lib.json
  • src/Web/libs/api-client/tsconfig.spec.json
  • src/Web/libs/auth/.babelrc
  • src/Web/libs/auth/README.md
  • src/Web/libs/auth/project.json
  • src/Web/libs/auth/src/index.ts
  • src/Web/libs/auth/src/lib/auth.module.css
  • src/Web/libs/auth/src/lib/auth.tsx
  • src/Web/libs/auth/tsconfig.json
  • src/Web/libs/auth/tsconfig.lib.json
  • src/Web/libs/ui/.babelrc
  • src/Web/libs/ui/README.md
  • src/Web/libs/ui/project.json
  • src/Web/libs/ui/src/index.ts
  • src/Web/libs/ui/src/lib/ui.module.css
  • src/Web/libs/ui/src/lib/ui.tsx
  • src/Web/libs/ui/tsconfig.json
  • src/Web/libs/ui/tsconfig.lib.json
  • src/Web/nx.json
  • src/Web/package.json
  • src/Web/tsconfig.base.json

📝 Walkthrough

Walkthrough

This pull request introduces comprehensive project documentation and a complete Next.js 15 web application scaffold for the MeAjudaAi platform. It adds roadmap files, technical debt tracking, and a full-featured customer/provider web application with authentication, provider registration, search, and profile management capabilities, along with supporting libraries and NX monorepo configuration.

Changes

Cohort / File(s) Summary
Documentation & Roadmap
docs/roadmap-current.md, docs/roadmap-future.md, docs/technical-debt.md
Adds extensive multi-phase roadmap for Fase 2 (NX migration, frontend platforms, authentication, geographic restrictions) and Phase 3 future features. Updates technical debt status to reflect Sprint 8B.2 progress and resolutions (RabbitMQ unification, NX cleanup).
Root Web Project Configuration
src/Web/package.json, src/Web/tsconfig.base.json, src/Web/nx.json, src/Web/jest.config.ts, src/Web/jest.preset.js
Establishes NX monorepo workspace with TypeScript, React 19, Next.js 15, Tailwind v4, and testing infrastructure. Configures path aliases for libs (ui, auth, api-client), build targets, and ESLint/Jest plugins.
MeAjudaAi.Web.Provider App - Pages & Layouts
src/Web/MeAjudaAi.Web.Provider/app/layout.tsx, src/Web/MeAjudaAi.Web.Provider/app/(auth)/layout.tsx, src/Web/MeAjudaAi.Web.Provider/app/(main)/layout.tsx, src/Web/MeAjudaAi.Web.Provider/app/(auth)/auth/signin/page.tsx, src/Web/MeAjudaAi.Web.Provider/app/(auth)/cadastro/cliente/page.tsx, src/Web/MeAjudaAi.Web.Provider/app/(main)/page.tsx
Implements app structure with root layout, authentication and main layouts, and key pages (login, customer registration, homepage). Includes metadata, dynamic rendering directives, and responsive UI composition.
MeAjudaAi.Web.Provider App - Provider Registration & Profile
src/Web/MeAjudaAi.Web.Provider/app/(main)/cadastro/prestador/*, src/Web/MeAjudaAi.Web.Provider/app/(main)/perfil/page.tsx, src/Web/MeAjudaAi.Web.Provider/app/(main)/perfil/editar/page.tsx
Implements multi-step provider onboarding (registration, address entry, document upload) and user profile management with form validation, API integration, and session-based authentication checks.
MeAjudaAi.Web.Provider App - Search & Provider Details
src/Web/MeAjudaAi.Web.Provider/app/(main)/buscar/*, src/Web/MeAjudaAi.Web.Provider/app/(main)/prestador/page.tsx, src/Web/MeAjudaAi.Web.Provider/app/(main)/prestador/[id]/page.tsx
Implements provider search with filters, results display with pagination logic, provider detail pages with ratings/reviews, and provider dashboard with service management and metadata generation.
MeAjudaAi.Web.Provider App - API Routes
src/Web/MeAjudaAi.Web.Provider/app/api/auth/[...nextauth]/route.ts, src/Web/MeAjudaAi.Web.Provider/app/api/providers/*/route.ts
Implements NextAuth delegation route and authenticated API proxies for provider operations (profile updates, service management), with proper error handling and status code forwarding.
MeAjudaAi.Web.Provider App - Error Handling
src/Web/MeAjudaAi.Web.Provider/app/error.tsx, src/Web/MeAjudaAi.Web.Provider/app/(main)/buscar/error.tsx, src/Web/MeAjudaAi.Web.Provider/app/(main)/buscar/loading.tsx
Adds error boundary and route-specific error/loading states with user-friendly messaging and retry mechanisms.
MeAjudaAi.Web.Provider Components - Layout & Navigation
src/Web/MeAjudaAi.Web.Provider/components/layout/header.tsx, src/Web/MeAjudaAi.Web.Provider/components/layout/footer.tsx, src/Web/MeAjudaAi.Web.Provider/components/layout/user-menu.tsx
Implements header with logo and search bar, footer with mission/contact info, and user dropdown menu with session-aware navigation and provider status integration.
MeAjudaAi.Web.Provider Components - Authentication
src/Web/MeAjudaAi.Web.Provider/components/auth/login-form.tsx, src/Web/MeAjudaAi.Web.Provider/components/auth/customer-register-form.tsx, src/Web/MeAjudaAi.Web.Provider/components/auth/auth-selection-dropdown.tsx
Implements login form with email/password and social auth providers, customer registration with validation and terms acceptance, and auth type selection dropdown.
MeAjudaAi.Web.Provider Components - Provider Features
src/Web/MeAjudaAi.Web.Provider/components/providers/provider-card.tsx, src/Web/MeAjudaAi.Web.Provider/components/providers/provider-grid.tsx, src/Web/MeAjudaAi.Web.Provider/components/providers/dashboard-client.tsx, src/Web/MeAjudaAi.Web.Provider/components/providers/service-selector.tsx
Implements provider display cards, grid layouts, dashboard for description/service management, and service dropdown with filtering and API-based population.
MeAjudaAi.Web.Provider Components - Search
src/Web/MeAjudaAi.Web.Provider/components/search/city-search.tsx, src/Web/MeAjudaAi.Web.Provider/components/search/search-filters.tsx, src/Web/MeAjudaAi.Web.Provider/components/search/service-tags.tsx, src/Web/MeAjudaAi.Web.Provider/components/search/ad-card.tsx
Implements city picker, distance/rating/category filters with debounced URL updates, popular service tags, and promotional ad card.
MeAjudaAi.Web.Provider Components - Reviews & Profile
src/Web/MeAjudaAi.Web.Provider/components/reviews/*, src/Web/MeAjudaAi.Web.Provider/components/profile/edit-profile-form.tsx, src/Web/MeAjudaAi.Web.Provider/components/home/how-it-works.tsx
Implements review display cards, form submission with validation, list pagination, profile editing with session data, and collapsible "how it works" feature section.
MeAjudaAi.Web.Provider UI Components Library
src/Web/MeAjudaAi.Web.Provider/components/ui/*
Provides reusable UI primitives (button, card, input, textarea, badge, label, checkbox, dropdown-menu, form, avatar, rating, dropdown, verified-badge) with Tailwind styling and Radix UI integration.
MeAjudaAi.Web.Provider Hooks
src/Web/MeAjudaAi.Web.Provider/hooks/use-*.ts
Implements React hooks for API interactions (provider profile, status, provider registration, profile updates), form handling (document upload, ViaCEP lookup), service fetching, and session management with React Query integration.
MeAjudaAi.Web.Provider API & Utilities
src/Web/MeAjudaAi.Web.Provider/lib/api/*, src/Web/MeAjudaAi.Web.Provider/lib/services/*, src/Web/MeAjudaAi.Web.Provider/lib/utils/*, src/Web/MeAjudaAi.Web.Provider/lib/schemas/*, src/Web/MeAjudaAi.Web.Provider/lib/constants.ts
Implements API client configuration, fetch helpers with error handling/response unwrapping, mappers for DTO conversions, geocoding/service catalog services, form validation schemas (auth, address), and utility functions for normalization, phone formatting, and class name merging.
MeAjudaAi.Web.Provider Project Configuration
src/Web/MeAjudaAi.Web.Provider/tsconfig*.json, src/Web/MeAjudaAi.Web.Provider/next.config.ts, src/Web/MeAjudaAi.Web.Provider/tailwind.config.ts, src/Web/MeAjudaAi.Web.Provider/postcss.config.mjs, src/Web/MeAjudaAi.Web.Provider/components.json, src/Web/MeAjudaAi.Web.Provider/.eslintrc.json, src/Web/MeAjudaAi.Web.Provider/openapi-ts.config.ts, src/Web/MeAjudaAi.Web.Provider/project.json, src/Web/MeAjudaAi.Web.Provider/package.json, src/Web/MeAjudaAi.Web.Provider/app/globals.css
Configures TypeScript compilation, Next.js app setup with image optimization, Tailwind styling with design tokens, PostCSS, shadcn/ui, ESLint module boundaries, OpenAPI code generation, NX project metadata, and dependencies.
Shared Libraries - API Client
src/Web/libs/api-client/*
Creates minimal API client library scaffold with package config, TypeScript setup, Jest configuration, and barrel exports.
Shared Libraries - Auth
src/Web/libs/auth/*
Creates auth library scaffold with React component placeholder, Babel configuration, TypeScript setup, and project metadata.
Shared Libraries - UI
src/Web/libs/ui/*
Creates UI component library scaffold with CSS module placeholder, React component structure, TypeScript/Babel setup, and project metadata.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~65 minutes


Possibly related PRs

  • Docs/technical debt review #106 — Updates technical debt documentation in docs/technical-debt.md to reflect Sprint 8B.2 progress and resolution of messaging infrastructure refactoring.
  • Feature/sprint 8 customer app #126 — Introduces a similar Customer Next.js web application structure (app pages, components, hooks, API integration) that overlaps significantly with this PR's implementation pattern and file organization.

Poem

🐰 Whiskers twitching with delight,
A warren of pages, components so bright!
From auth to search, from hooks to UI,
This scaffold hops toward the web-app sky!
With roadmaps and schemas, all snug in their place,
A promising sprint for our MeAjudaAi race!

✨ Finishing Touches
  • 📝 Generate docstrings (stacked PR)
  • 📝 Generate docstrings (commit on current branch)
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch feature/sprint-8b2-technical-excellence-v2

@frigini frigini closed this Mar 9, 2026
@frigini frigini deleted the feature/sprint-8b2-technical-excellence-v2 branch March 9, 2026 00:12
@github-actions
Copy link
Copy Markdown

github-actions bot commented Mar 9, 2026

📊 Code Coverage Report

Coverage: 90.90% (extracted from Cobertura (Aggregated Direct))

📈 Coverage Details

  • Coverage badges: Coverage
  • Minimum threshold: 80% (warning) / 90% (good)
  • Report format: Auto-detected from OpenCover/Cobertura XML files
  • Coverage source: Cobertura (Aggregated Direct)

📋 Coverage Analysis

  • Line Coverage: Shows percentage of code lines executed during tests
  • Branch Coverage: Shows percentage of code branches/conditions tested
  • Complexity: Code complexity metrics for maintainability

🎯 Quality Gates

  • Pass: Coverage ≥ 90%
  • ⚠️ Warning: Coverage 80-89%
  • Fail: Coverage < 80%

📁 Artifacts

  • Coverage reports: Available in workflow artifacts
  • Test results: TRX files with detailed test execution data

This comment is updated automatically on each push to track coverage trends.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant