diff --git a/.gitignore b/.gitignore
index 5833bcc..24bbfa9 100755
--- a/.gitignore
+++ b/.gitignore
@@ -14,6 +14,11 @@ node_modules/
.env.test.local
.env.production.local
+# Local Copilot helper folders
+.github/instructions/
+.github/prompts/
+.github/chatmodes/
+
# Logs
npm-debug.log*
yarn-debug.log*
@@ -56,3 +61,4 @@ temp/
# Supabase
.branches
.temp
+repomix-output.xml
diff --git a/README.md b/README.md
index 0ca6d67..fdafeb0 100755
--- a/README.md
+++ b/README.md
@@ -1,82 +1,133 @@
-# Mindley App
+# Mindley
-A full-stack application built with React/TypeScript frontend and Supabase
-backend.
+
-## Project Structure
+A small productivity and knowledge-sharing platform with a React + TypeScript frontend and a Supabase backend (Edge Functions written for Deno).
+
+> [!NOTE]
+> This README is a concise developer-focused reference. For detailed API docs or deployment runbooks check the `supabase/` folder and the `frontend/README.md`.
+
+## Quick overview
+
+- Frontend: React + TypeScript, Vite, Tailwind CSS.
+- Backend: Supabase project with Deno-based Edge Functions in `supabase/functions/`.
+- Local dev: Frontend runs with `npm run dev` (in `frontend/`); Supabase functions use the Supabase CLI for local serving.
+
+## Key features
+
+- Resource listing and detail pages
+- Authentication (OTP sign-in flow) using Supabase
+- Background job monitoring via Supabase Functions
+- Small component library and UI primitives in `src/components/ui`
+
+## Repository layout
```
-├── frontend/ # React/TypeScript frontend (deployed via Vercel)
-├── supabase/ # Supabase backend and Edge Functions
-│ └── functions/ # Deno-based Edge Functions
-└── .github/workflows/ # CI/CD pipelines
+frontend/ # React app (Vite + TypeScript)
+ public/ # static assets (icons, manifest)
+ src/ # source code (components, pages, hooks, services)
+supabase/ # Supabase project and Edge Functions (Deno)
+ functions/ # serverless functions (create-resource, jobs, etc.)
+package.json # workspace-level scripts and tooling (if present)
+README.md # this file
```
-## CI/CD Pipeline
+## Getting started (local)
-### Continuous Integration
+Prerequisites:
-The CI pipeline runs on every push and pull request to `main` and `develop`
-branches. It includes:
+- Node 18+ (or project-compatible runtime)
+- npm or pnpm
+- Supabase CLI (for local testing of functions)
-#### Frontend CI
+1. Frontend
-- **Dependencies**: Installs npm packages with caching
-- **Type Checking**: Validates TypeScript types with `tsc --noEmit`
-- **Linting**: Runs ESLint to check code quality
-- **Build**: Verifies the project builds successfully
+```bash
+cd frontend
+npm install
+npm run dev
+```
-#### Supabase Functions CI
+Visit http://localhost:5173 (or the address printed by Vite).
-- **Syntax Check**: Validates Deno/TypeScript syntax for all Edge Functions
-- **Format Check**: Ensures consistent code formatting with `deno fmt`
+2. Supabase functions (local)
-#### Security Scanning
+```bash
+# from repo root or inside the supabase directory
+supabase login # one-time, if not already logged in
+supabase start # optional local DB + emulators
+supabase functions serve # serve Edge Functions locally
+```
-- **Dependency Audit**: Scans for known vulnerabilities in npm packages
-- **SARIF Upload**: Reports security findings to GitHub Security tab
+3. Environment
-### Deployment
+Create a `.env.local` in `frontend/` (do not commit):
-- **Frontend**: Automatically deployed by Vercel on push to `main`
-- **Supabase Functions**: Deployed manually via Supabase CLI
+```env
+VITE_SUPABASE_URL=https://your-project.supabase.co
+VITE_SUPABASE_ANON_KEY=public-anon-key
+```
-## Development
+## Scripts and common commands
-### Frontend
+From `frontend/`:
```bash
-cd frontend
-npm install
-npm run dev
+npm run dev # start dev server
+npm run build # build production bundle
+npm run preview # preview production build locally
+npm run lint # run ESLint
+npm run test # run tests (project tests if configured)
```
-### Supabase Functions
+Supabase / functions (examples):
```bash
-# Requires Supabase CLI
-supabase functions serve
+deno check supabase/functions/*/index.ts # type check functions
+deno fmt supabase/functions/*/index.ts # format functions
```
-## Available Scripts
+## Architecture notes
-### Frontend
+- Frontend organizes UI primitives under `src/components/ui` to keep shared building blocks.
+- Services that talk to Supabase are in `src/services/` (e.g., `resourceService.ts`, `jobService.ts`).
+- Hooks such as `use-auth` and `use-reliable-realtime` encapsulate auth state and realtime behaviors.
-- `npm run dev` - Start development server
-- `npm run build` - Build for production
-- `npm run lint` - Run ESLint
-- `npm run preview` - Preview production build
+## CI / Deployment
-### Supabase
+- Frontend is designed to deploy to Vercel (see `frontend/vercel.json`).
+- GitHub Actions run type checks, linters, build verification, and security scans for dependencies.
+- Supabase functions are typically deployed using the Supabase CLI/CI; check the `.github/workflows` directory for CI workflow examples.
-- `deno check index.ts` - Type check functions
-- `deno fmt index.ts` - Format code
+## Tests and quality gates
-## Environment Variables
+- Type checking: `tsc --noEmit` (frontend)
+- Linting: ESLint configured in `frontend/eslint.config.js`
+- Formatting: Prettier / Deno fmt for Supabase functions
-Create `.env.local` in the frontend directory:
+## Useful paths
-```
-VITE_SUPABASE_URL=your_supabase_url
-VITE_SUPABASE_ANON_KEY=your_supabase_anon_key
-```
+- Frontend entry: `frontend/src/main.tsx`
+- UI components: `frontend/src/components/ui`
+- Supabase functions: `supabase/functions/*/index.ts`
+
+## Troubleshooting
+
+> [!TIP]
+> If the frontend can't connect to Supabase locally, double-check `VITE_SUPABASE_URL` and `VITE_SUPABASE_ANON_KEY` in `frontend/.env.local` and ensure `supabase start` (local emulators) is running when using local endpoints.
+
+## Next steps / suggestions
+
+- Add end-to-end tests (Cypress or Playwright) for the main flows (auth, resource CRUD).
+- Add a small runbook for deploying Supabase functions with the CLI in CI.
+
+---
+
+Requirements coverage:
+
+- Create a concise, useful README for the project — Done
+- Use GFM and admonitions where helpful — Done
+- Avoid sections like LICENSE/CONTRIBUTING/CHANGELOG — Done
+- Include logo if present — Done (references `frontend/public/mindley-icon.svg`)
+
+If you want, I can also update `frontend/README.md` to match this top-level README or generate a brief developer runbook next.
diff --git a/frontend/index.html b/frontend/index.html
index 0f52abe..8fc1f2e 100755
--- a/frontend/index.html
+++ b/frontend/index.html
@@ -33,8 +33,10 @@
+
+
diff --git a/frontend/src/components/icons/google.tsx b/frontend/src/components/icons/google.tsx
new file mode 100755
index 0000000..095d1dc
--- /dev/null
+++ b/frontend/src/components/icons/google.tsx
@@ -0,0 +1,30 @@
+export function GoogleIcon({ className }: { className?: string }) {
+ return (
+
+ );
+}
+
+export default GoogleIcon;
diff --git a/frontend/src/components/icons/youtube.tsx b/frontend/src/components/icons/youtube.tsx
new file mode 100755
index 0000000..fe0f064
--- /dev/null
+++ b/frontend/src/components/icons/youtube.tsx
@@ -0,0 +1,17 @@
+export function YouTubeIcon({ className }: { className?: string }) {
+ return (
+
+ );
+}
+
+export default YouTubeIcon;
diff --git a/frontend/src/components/job-monitor.tsx b/frontend/src/components/job-monitor.tsx
new file mode 100755
index 0000000..5374bfe
--- /dev/null
+++ b/frontend/src/components/job-monitor.tsx
@@ -0,0 +1,343 @@
+import { useState, useEffect } from "react";
+import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card";
+import { Badge } from "@/components/ui/badge";
+import { Button } from "@/components/ui/button";
+import { Progress } from "@/components/ui/progress";
+import { useJobNotifications } from "@/hooks/use-job-notifications";
+import { useAuth } from "@/hooks/use-auth";
+import { JobService } from "@/services/jobService";
+import type { Job } from "@/types/job";
+import {
+ Clock,
+ CheckCircle,
+ XCircle,
+ AlertTriangle,
+ Play,
+ Pause,
+ MoreHorizontal,
+} from "lucide-react";
+import {
+ DropdownMenu,
+ DropdownMenuContent,
+ DropdownMenuItem,
+ DropdownMenuTrigger,
+} from "@/components/ui/dropdown-menu";
+
+interface JobProgressInfo {
+ completed: number;
+ total: number;
+ percentage: number;
+}
+
+const JobStatusIcon = ({ status }: { status: Job["status"] }) => {
+ switch (status) {
+ case "pending":
+ return {formatDate(job.created_at)} {formatDate(job.started_at)} {formatDate(job.completed_at)}
+ {getDuration(job.started_at, job.completed_at) ||
+ "In corso..."}
+ {job.error_message}
+ Accedi per visualizzare i tuoi workflow
+
+ Caricamento workflow...
+
+ Errore nel caricamento dei workflow: {error}
+
+ Nessun workflow trovato
+ Workflow Attivi
+ Workflow Recenti
+
Resource added on: {formatDate(resource.processed_date)} @@ -477,6 +620,82 @@ const ResourceDetail = () => {