Files
marcocosta10000 79d12fa2f4 feat: add City10 platform with Laravel 13, AI agents, 3D viewer, and LGPD compliance
Initial commit of the complete City10 virtual city simulation platform.

Backend (Laravel 13):
- REST API with Sanctum tokens and session-based web authentication
- Role-based access control (admin/user) with middleware protection
- AI agent CRUD with OpenRouter.ai integration restricted to free models
- Store management with 3D coordinates and AI shopkeeper assignment
- Versioned legal documents (Terms, Privacy, Cookies) with LGPD audit trail
- Math CAPTCHA on public forms and multi-language support (pt_BR, en, es)

Frontend:
- Responsive Blade templates with Tailwind CSS v4
- Three.js 3D city viewer with SSE chat streaming to AI agents
- Admin panel for store and user administration

Infrastructure:
- MariaDB/MySQL database with comprehensive migrations
- Database seeders for demo content and test accounts
- PHPUnit test suite and Laravel Pint code styling
- Vite build configuration with hot reload
2026-10-17 20:46:15 -03:00

54 lines
2.2 KiB
PHP
Executable File

@extends('layouts.app')
@section('title', 'City10 — Cidade 3D Virtual com Agentes de IA')
@section('content')
<div class="hero" style="text-align:center; padding: 2.5rem 0 1.5rem;">
<h1 style="font-size: clamp(2rem, 5vw, 3.2rem); margin: 0 0 .75rem; color:#fff; line-height:1.1;">
City<span style="color: var(--brand);">10</span>
</h1>
<p style="color: var(--muted); max-width: 640px; margin: 0 auto 1.5rem; font-size: 1.05rem;">
{{ __('welcome.tagline') }}
</p>
@auth
<a href="{{ route('dashboard') }}" class="btn btn-primary" style="display:inline-block; padding:.8rem 1.6rem;">{{ __('Dashboard') }}</a>
@else
<a href="{{ route('login') }}" class="btn btn-primary" style="display:inline-block; padding:.8rem 1.6rem;">{{ __('Login') }}</a>
<a href="{{ route('register') }}" class="btn" style="display:inline-block; padding:.8rem 1.6rem;">{{ __('Register') }}</a>
@endauth
</div>
<div class="grid-3" style="margin-top:1.5rem;">
<div class="card">
<h3 style="margin-top:0; color:#fff;">{{ __('welcome.card1.title') }}</h3>
<p style="color:var(--muted); font-size:.95rem;">{{ __('welcome.card1.desc') }}</p>
</div>
<div class="card">
<h3 style="margin-top:0; color:#fff;">{{ __('welcome.card2.title') }}</h3>
<p style="color:var(--muted); font-size:.95rem;">{{ __('welcome.card2.desc') }}</p>
</div>
<div class="card">
<h3 style="margin-top:0; color:#fff;">{{ __('welcome.card3.title') }}</h3>
<p style="color:var(--muted); font-size:.95rem;">{{ __('welcome.card3.desc') }}</p>
</div>
</div>
<div class="card" style="margin-top:1.5rem;">
<h3 style="margin-top:0; color:#fff;">{{ __('welcome.city.title') }}</h3>
<p style="color:var(--muted); font-size:.95rem;">
{{ __('welcome.city.desc') }}
</p>
</div>
@endsection
@push('styles')
<style>
.hero { animation: fadeUp .6s ease both; }
.grid-3 .card { animation: fadeUp .6s ease both; }
.grid-3 .card:nth-child(2) { animation-delay: .08s; }
.grid-3 .card:nth-child(3) { animation-delay: .16s; }
@keyframes fadeUp { from { opacity:0; transform: translateY(14px);} to {opacity:1; transform:none;} }
</style>
@endpush