
StoreIt consente di caricare, organizzare e condividere file in modo semplice e veloce. Integra Appwrite per auth e storage, validazioni tipizzate con Zod e form affidabili con React Hook Form. La UX privilegia task frequenti (upload, rename, share) e visibilità immediata su spazio usato, recenti e distribuzione per tipo.
Login/registrazione con Appwrite, sessioni sicure e supporto OTP quando richiesto. Flussi di sessione e recupero stati sono pensati per minimizzare attrito. Esempi:
account.createEmailPasswordSession(email, password)account.deleteSession("current")account.createEmailToken({ email }) + account.createSession({ userId, secret })Upload multi‑tipo con progress bar e drag&drop; azioni su file (visualizza, rinomina, elimina). I metadati sono persistiti per query e statistiche.
storage.createFile(bucketId, ID.unique(), file)storage.getFileView(bucketId, fileId) / storage.getFileDownload(...)databases.updateDocument(db, collection, id, { name })Link sharing pubblico/privato, ricerca globale e ordinamenti per data/nome/dimensione.
databases.listDocuments(db, collection, [Query.search("name", term)])Query.orderDesc("size"), Query.orderAsc("name")storage.getFilePreview(bucketId, fileId)Vista sintetica con storage totale/consumato, ultimi upload e breakdown per estensione. Grafici reattivi e card riassuntive per monitorare l’utilizzo nel tempo.
Design system con Tailwind + componenti headless/accessibili; toasts, modali e select coerenti. Validazioni robuste su client/server:
z.object({ name: z.string().min(1), size: z.number().positive() })useForm({ resolver: zodResolver(schema) }) Tooling moderno (TypeScript, ESLint) e stato derivato da URL dove utile per consistenza e condivisione.storage.createFile e progress tracking.Query.* (name, date, size).