A modern React + TypeScript app showcasing a drag-and-drop multi-file uploader with validation, animated progress steps, cancel support, and a generated reports view. Built with Vite and Tailwind CSS.
- Drag-and-drop or click-to-upload
- Multi-file selection with a configurable limit (default: 5)
- Client-side validation with Zod and TanStack React Form
- Animated progress steps (upload → process → generate)
- Cancel in-progress runs
- Example “Generated Reports” view
- Pure front-end demo (no files are actually uploaded to a backend)
- React 19 + TypeScript
- Vite 7
- Tailwind CSS 4 (
@tailwindcss/vite) - Motion (animations)
- TanStack React Form + Zod (forms and validation)
- React Dropzone (drag-and-drop)
- Lucide React (icons)
- Node.js 18 or newer
- Package manager of your choice (pnpm recommended since a
pnpm-lock.yamlis present)
Using pnpm:
pnpm installUsing npm:
npm installUsing yarn:
yarn installpnpm devOpen http://localhost:5173 in your browser.
pnpm buildpnpm previewpnpm lintKey files and directories:
index.html: App HTML entrysrc/components/file-upload.tsx: Drag-and-drop file uploader UIcomponents/file-upload-form.tsx: Form, validation, and run flowcomponents/steps.tsx: Animated progress steps with cancelcomponents/reports.tsx: Generated reports view
vite.config.ts: Vite config and@alias forsrctsconfig*.json: TypeScript configs
- This is a front-end demo; files are not transmitted to a server.
- The run steps are simulated with timed delays and can be cancelled.