82 lines
2.8 KiB
Markdown
82 lines
2.8 KiB
Markdown
# Portal do Investidor — InvesteMoz
|
|
|
|
## Executar esta plataforma no Windows
|
|
|
|
Consulte [Execução local](deploy/local/README.md). Com Docker Desktop iniciado,
|
|
execute `./deploy/local/start.ps1`. Depois da preparação, `composer run dev`
|
|
inicia a plataforma em http://127.0.0.1:8000.
|
|
|
|
O ambiente local usa uma base PostgreSQL/PostGIS de demonstração isolada.
|
|
Não execute os exemplos históricos de criação de um projecto novo sobre esta
|
|
instalação ou sobre dados existentes.
|
|
|
|
## Referência histórica do pacote inicial
|
|
|
|
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
|
|
|
|
```bash
|
|
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`:
|
|
|
|
```php
|
|
public function run(): void
|
|
{
|
|
$this->call([
|
|
SectorSeeder::class,
|
|
OpportunitySeeder::class,
|
|
]);
|
|
}
|
|
```
|
|
|
|
Configure a base de dados no `.env` e depois:
|
|
|
|
```bash
|
|
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=§or=&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](docs/investmoz/unification/README.md), 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.
|