2026-10-08 14:02:01 +02:00
2026-10-08 14:02:01 +02:00
2026-10-08 14:02:01 +02:00
2026-10-08 14:02:01 +02:00
2026-10-08 14:02:01 +02:00
2026-10-08 14:02:01 +02:00
2026-10-08 14:02:01 +02:00
2026-09-30 09:05:43 +02:00
2026-09-28 10:01:09 +02:00
2026-10-08 14:02:01 +02:00
2026-09-28 10:01:09 +02:00
2026-09-28 10:01:09 +02:00
2026-10-06 14:50:12 +02:00
2026-09-28 10:01:09 +02:00
2026-10-08 14:02:01 +02:00
2026-09-28 10:01:09 +02:00
2026-09-28 10:01:09 +02:00
2026-10-07 09:08:43 +02:00
2026-09-28 10:01:09 +02:00
2026-09-28 10:01:09 +02:00
2026-09-28 10:01:09 +02:00
2026-09-28 10:01:09 +02:00
2026-09-28 10:01:09 +02:00
2026-09-28 10:01:09 +02:00
2026-10-06 14:50:12 +02:00
2026-10-06 14:50:12 +02:00
2026-09-28 10:01:09 +02:00
2026-09-28 10:01:09 +02:00
2026-10-06 14:50:12 +02:00
2026-09-28 10:01:09 +02:00
2026-09-28 10:01:09 +02:00
2026-10-06 14:50:12 +02:00
2026-09-28 10:01:09 +02:00
2026-10-06 14:50:12 +02:00
2026-10-06 14:50:12 +02:00

Portal do Investidor — esqueleto Laravel

Estes ficheiros correspondem ao domínio de sectores, oportunidades e manifestações de interesse do Portal do Investidor. Foram desenhados para casar exactamente com os dados de exemplo usados no protótipo React (PortalInvestidor.jsx) — mesmos slugs de sector, mesmas referências de oportunidade.

Como instalar num projecto Laravel novo

composer create-project laravel/laravel portal-investidor
cd portal-investidor

Copie as pastas deste pacote para dentro do projecto (substituindo os ficheiros correspondentes):

app/Models/*.php                         -> app/Models/
app/Http/Controllers/Api/V1/*.php        -> app/Http/Controllers/Api/V1/
app/Http/Requests/*.php                  -> app/Http/Requests/
database/migrations/*.php                -> database/migrations/
database/seeders/*.php                   -> database/seeders/
routes/api.php                           -> routes/api.php (substitui o existente)

Registe os seeders em database/seeders/DatabaseSeeder.php:

public function run(): void
{
    $this->call([
        SectorSeeder::class,
        OpportunitySeeder::class,
    ]);
}

Configure a base de dados no .env e depois:

php artisan migrate:fresh --seed
php artisan serve

A API fica disponível em http://localhost:8000/api/v1/...:

  • GET /api/v1/home
  • GET /api/v1/sectors
  • GET /api/v1/sectors/{slug}
  • GET /api/v1/opportunities/search?q=&sector=&province=&maturity_level=
  • GET /api/v1/opportunities/{slug}
  • POST /api/v1/interest-requests

Ligar ao frontend React

A homepage mantida é resources/js/pages/PortalInvestidor.tsx, já ligada às APIs do portal. O catálogo e os novos percursos estão em resources/js/pages/investment/; a extensão usa /api/v1/investment e mantém os endpoints anteriores. O ficheiro JSX antigo é um protótipo não montado.

Nota

A aplicação Laravel/React está executável localmente. A extensão do catálogo, manifestações, perfil, empresas declaradas, conversa e notificações está documentada em Unificação do portal, com contratos de API, migrações, backups verificados, testes e limites da entrega. A consolidação da outra máquina foi adiada pelo proprietário para uma fase futura.

S
Description
No description provided
Readme
1.6 GiB
Languages
TypeScript 38.9%
PHP 32.3%
JavaScript 17.7%
Python 10.2%
PowerShell 0.4%
Other 0.5%