尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證製作者的介紹僅有上面的一句話。 更多詳情請閱讀儲存庫 README。 儲存庫 README ↗
正在載入完整 README。
檢視完整 README ↗FormulaBase è una web app avanzata per creare, organizzare e condividere formulari scientifici e cheat sheet. Permette di scrivere contenuti complessi in Markdown e LaTeX, organizzarli in capitoli e argomenti, salvarli nel proprio spazio personale, condividerli tramite link pubblici o codici QR e utilizzare assistenti AI di ultima generazione per generare o migliorare formule ed appunti.
iron-session./admin dedicato per il monitoraggio degli utenti attivi, la creazione di formulari, l'analisi della distribuzione delle risorse e la lettura dei feedback degli utenti.pg_trgm per la ricerca fuzzy)@monaco-editor/react)react-katex, rehype-katex), React Markdown e Mermaid.js@google/generative-ai) e Groq API (groq-sdk)Prima di iniziare, assicurati di avere installato:
Clona la repository ed installa i pacchetti necessari:
npm install
Crea il tuo file .env.local partendo dal modello di esempio:
cp .env.example .env.local
(Su Windows PowerShell):
Copy-Item .env.example .env.local
Compila il file .env.local configurando le chiavi per Firebase, il database PostgreSQL, Gemini/Groq e Umami.
Esegui lo script SQL fornito per generare le tabelle:
psql "$DATABASE_URL" -f sql/create_tables.sql
[!IMPORTANT] Dashboard di Amministrazione (
/admin): Lo schema SQL di base non include di default privilegi di amministrazione per gli utenti. Per abilitare l'accesso alla dashboard admin, aggiungi la colonnais_adminalla tabellausers:ALTER TABLE users ADD COLUMN is_admin BOOLEAN DEFAULT FALSE;Dopodiché, imposta a
TRUEil flag per il tuo specificouidutente (assegnato da Firebase):UPDATE users SET is_admin = TRUE WHERE uid = 'IL_TUO_UID_FIREBASE';
Avvia il server locale di sviluppo:
npm run dev
L'applicazione sarà disponibile all'indirizzo: http://localhost:3000
| Variabile | Descrizione |
|---|---|
DATABASE_URL | Stringa di connessione a PostgreSQL |
NEXT_PUBLIC_FIREBASE_API_KEY | Chiave API Firebase Client |
NEXT_PUBLIC_GOOGLE_CLIENT_ID | Client ID OAuth Google per il login ed il Google One Tap |
NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN | Dominio di autenticazione Firebase |
NEXT_PUBLIC_FIREBASE_PROJECT_ID | ID progetto Firebase |
NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET | Bucket di storage Firebase |
NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID | ID mittente messaggi Firebase |
NEXT_PUBLIC_FIREBASE_APP_ID | App ID Firebase Client |
NEXT_PUBLIC_FIREBASE_MEASUREMENT_ID | ID di misurazione Analytics Firebase |
FIREBASE_PRIVATE_KEY | Chiave privata del Service Account Firebase Admin |
FIREBASE_CLIENT_EMAIL | Email del Service Account Firebase Admin |
SESSION_SECRET | Chiave segreta di crittografia per iron-session (min. 32 caratteri) |
NEXT_PUBLIC_APP_URL | URL pubblico dell'applicazione (es. per canonical URL/condivisione) |
NEXT_PUBLIC_FORMULARIO_BENVENUTO_ID | beautiful_id del formulario predefinito clonato per i nuovi utenti |
GEMINI_API_KEY | API Key per l'accesso ai modelli Google Gemini |
GROQ_API_KEY | API Key per l'accesso ai modelli di inferenza Groq |
L'applicazione dispone di scorciatoie da tastiera integrate per velocizzare la navigazione e la formattazione scientifica all'interno dell'editor.
Ctrl + KCtrl + Shift + ICtrl + Shift + AAlt + AAlt + 1Alt + 2Alt + 3Ctrl + BCtrl + ICtrl + Shift + QCtrl + Shift + 7Ctrl + Shift + 8Ctrl + Shift + 9Alt + TCtrl + Shift + JCtrl + Shift + UCtrl + Shift + GCtrl + Shift + HCtrl + Shift + [1-6]Ctrl + SCtrl + Z / Ctrl + YCtrl + DCtrl + Shift + LAlt + ClickAlt + ↑ / Alt + ↓Shift + Alt + ↓Ctrl + Shift + Ksrc/
├── app/ # Pagine, rotte, API Next.js e logica di routing (robots.ts, sitemap.ts)
├── components/ # Componenti UI riutilizzabili e moduli di dominio (editor, auth, home)
├── data/ # Configurazione statica e costanti (es. kbs.json per shortcut)
├── hooks/ # Custom hooks di React (es. useIsMobile, useFilters)
├── lib/ # Utility, inizializzazione DB (pg), Firebase SDK e iron-session
├── proxy.ts # Logica e matcher per la protezione delle rotte ed i reindirizzamenti
└── styles/ # Fogli di stile CSS globali, KaTeX ed editor personalizzati
public/ # Asset statici (loghi, manifest.json, immagini e icone)
sql/ # Script di creazione delle tabelle del database PostgreSQL
Il database PostgreSQL utilizza le seguenti tabelle configurate in sql/create_tables.sql:
users: Informazioni sul profilo degli utenti registrati (UID Firebase, nome, email, foto profilo).formulari: Testata del formulario (titolo, descrizione, visibilità privata/pubblica/condivisa, contatore visualizzazioni, owner).capitoli: Sezioni intermedie collegate a un formulario con ordine di ordinamento personalizzato.argomenti: Le pagine effettive contenenti il testo scritto in Markdown/LaTeX.preferiti: Relazione molti-a-molti che traccia i formulari salvati dagli utenti nella dashboard.feedback: Valutazioni da 1 a 5 stelle e recensioni fornite dagli utenti per il monitoraggio della qualità.Viene inoltre abilitata l'estensione pg_trgm per supportare ricerche testuali con corrispondenze parziali e similarità di stringhe.
/api/auth/login.iron-session. Se l'utente non è censito nel DB locale, viene registrato automaticamente nella tabella users.src/proxy.ts protegge le rotte riservate (come /home, /editor, /settings, /admin) reindirizzando gli utenti non autenticati al login./editor/[argomentoId], l'utente può scrivere note con formattazione istantanea KaTeX. Può chiedere supporto all'AI Chat, che recupera il contenuto corrente per ottimizzare il prompt. I dati vengono salvati automaticamente su PostgreSQL./community e i motori di ricerca lo indicizzeranno grazie alla sitemap dinamica (/sitemap.ts).npm run dev: Avvia il server di sviluppo locale.npm run build: Esegue la compilazione del progetto per l'ambiente di produzione.npm run start: Avvia l'applicazione Next.js già compilata in produzione.npm run lint: Esegue i controlli statici del codice con ESLint.npm run format:check: Controlla lo stile del codice usando Prettier.npm run format:fix: Applica automaticamente le correzioni di formattazione di Prettier in tutto il progetto.NEXT_PUBLIC_UMAMI_APP_ID| ID del sito configurato per il tracciamento Umami Analytics |