vccs
Vue 3용 차트 컴포넌트 모음, Recharts에서 포팅
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기digital twin
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Web app (PWA installabile) per la mitigazione del calore in ambito urbano e vitivinicolo: casi studio, Decision Lab, dashboard, camera AR con riconoscimento AI e pannello di controllo.
Stack: TanStack Start (React 19, SSR), Tailwind CSS 4, Supabase (database, login, file), Nitro per il deploy.
supabase/migrations/20261019000000_init.sql e premi Run.npx supabase login, npx supabase link --project-ref <project-ref>, npx supabase db push.http://localhost:8080).http://localhost:8080/** e https://<tuo-dominio>/**.https://<project-ref>.supabase.co/auth/v1/callback e incolla Client ID e Secret.L'app usa sempre il progetto Supabase indicato in src/integrations/supabase/config.ts
(indirizzo e chiave pubblica sb_publishable_…, dati pubblici per natura). Per un altro progetto
cambia quei due valori. Le chiavi segrete restano fuori dal codice:
cp .env.example .env
Compila .env (e le Environment Variables della piattaforma di hosting) con la chiave segreta
SUPABASE_SERVICE_ROLE_KEY (Project Settings → API Keys) e le chiavi dei servizi esterni.
Senza OPENAI_API_KEY, GOOGLE_MAPS_API_KEY o PARALLEL_API_KEY l'app funziona lo stesso:
le relative funzioni mostrano "non configurato". Lo stato di ogni servizio si vede nel pannello admin.
I video promozionale e tutorial sono in public/videos/ (nomi in public/videos/LEGGIMI.txt).
Su tablet e desktop il tutorial parte da solo solo al primo accesso; su smartphone si apre a schermo intero in orizzontale.
npm install
npm run dev
Apri http://localhost:8080.
Registrati nell'app, poi nel SQL Editor di Supabase esegui (con la tua email):
insert into public.user_roles (user_id, role)
select id, 'admin' from auth.users where email = '[email protected]';
Ricarica la pagina: nel menu account compare Pannello di controllo (/admin).
Da lì puoi nominare altri amministratori senza tornare in SQL.
| Sezione | Funzioni |
|---|---|
| Panoramica | Numero utenti, admin, pareri in attesa, dashboard salvate; servizi configurati |
| Utenti | Ricerca, rendi/rimuovi admin, sospendi/riattiva, elimina (con i suoi file) |
| Pareri | Richieste di parere agli enti: filtra, approva/respingi/riapri, elimina |
| Fonti casi | Stato della ricerca delle pubblicazioni; pulsante Aggiorna ora |
| Servizio AI | Riattiva il riconoscimento AR se è in pausa per credito o chiave non valida |
| Registro | Ogni azione degli amministratori, con autore e data |
Tutte le azioni passano da funzioni server che verificano il ruolo admin con la chiave segreta: il browser non ha mai accesso diretto ai dati degli altri utenti.
npm run build
npm start # server Node su http://localhost:3000 (PORT per cambiarla)
npm run build produce .output/ (server + file statici). Nitro riconosce da solo Vercel, Netlify e
Cloudflare; per forzare una piattaforma: NITRO_PRESET=cloudflare-module npm run build.
Su Vercel imposta anche PWA_OUT_DIR=.vercel/output/static, così il service worker finisce nella cartella giusta.
Ricorda di impostare le stesse variabili di .env sulla piattaforma di hosting.
La ricerca giornaliera delle fonti dei casi studio è un endpoint protetto:
curl -X POST https://<tuo-dominio>/api/public/jobs/case-sources -H "Authorization: Bearer $CRON_SECRET"
Pianificalo con il cron della tua piattaforma oppure da Supabase (Integrations → Cron, estensioni pg_cron e pg_net):
select cron.schedule('case-sources-daily', '0 6 * * *', $$
select net.http_post(
url := 'https://<tuo-dominio>/api/public/jobs/case-sources',
headers := jsonb_build_object('Authorization', 'Bearer <CRON_SECRET>')
);
$$);
| Comando | Cosa fa |
|---|---|
npm run dev | Server di sviluppo su porta 8080 |
npm run build / npm start | Build di produzione e avvio |
npm test | Test unitari (Vitest) |
npm run lint | ESLint |