Lexiverse
Lexiverse - AI contextual reading engine for English learners. Your next article is your next review.
Autorité nationale d'Assurance Qualité de l'Enseignement supérieur, de la Recherche et de l'Innovation
Translation pending
EducationTypeScript · JavaScriptGitHub @CMCode2001OnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗Application web de dématérialisation de la fiche de présence des visiteurs de l'ANAQ-Sup (Autorité Nationale d'Assurance Qualité de l'Enseignement Supérieur).
Les visiteurs se présentent à l'accueil pour obtenir des informations sur les établissements d'enseignement supérieur habilités et les programmes accrédités. Cette application remplace la fiche papier par un formulaire en ligne, avec recueil du consentement, tableau de bord et exports.
Interface publique
Espace administrateur (/admin, authentifié -non lié depuis les pages
publiques : les visiteurs n'ont pas à connaître son existence, les agents
habilités y accèdent par l'URL directe)
.xlsx) et PDF de la liste filtrée| Domaine | Choix |
|---|---|
| Framework | Next.js 15 (App Router) + React 19 |
| Langage | TypeScript (strict) |
| Styles | Tailwind CSS v4 |
| Composants | shadcn/ui (Radix UI) |
| Base de données | PostgreSQL via Supabase |
| Authentification | Supabase Auth |
| Validation | Zod (client et serveur) |
| Sélecteur de pays | cmdk + Radix Popover (recherche clavier) |
| Téléphone international | react-phone-number-input + libphonenumber-js |
| Graphiques | Recharts |
| Export Excel | SheetJS (xlsx) |
| Export PDF | jsPDF + jspdf-autotable |
| Déploiement | Vercel |
Aucun serveur backend dédié : Supabase joue le rôle de Backend-as-a-Service, ce qui réduit le coût d'infrastructure et de maintenance de la V1.
src/
├── app/
│ ├── page.tsx # Formulaire public
│ ├── confirmation/ # Page de confirmation
│ ├── politique-confidentialite/
│ ├── admin/
│ │ ├── actions.ts # Server Actions (connexion, suppression)
│ │ ├── login/ # Connexion administrateur
│ │ └── (protected)/ # Groupe de routes protégées
│ │ ├── layout.tsx # requireAdmin() + coquille d'admin
│ │ ├── dashboard/
│ │ ├── visitors/[id]/
│ │ └── archives/ # Liste + statistiques/
│ └── api/
│ ├── visitors/ # POST public (enregistrement)
│ └── admin/
│ ├── exports/excel|pdf/
│ ├── exports/archives/excel|pdf|stats/
│ └── visitors/[id]/pdf/
│
├── components/
│ ├── ui/ # Primitives shadcn/ui
│ ├── visitor/ # Formulaire public
│ ├── admin/ # Tableau, filtres, exports, dialogues
│ └── charts/ # Graphiques Recharts
│
├── lib/
│ ├── supabase/ # client / server / admin / middleware
│ ├── repositories/ # Accès aux données (contrat + Supabase)
│ ├── services/ # Logique métier
│ ├── validation/ # Schémas Zod
│ ├── exports/ # Excel, PDF, nommage de fichiers
│ ├── auth/ # Garde d'accès administrateur
│ ├── security/ # Limitation de débit
│ └── constants.ts, env.ts, utils.ts
│
├── types/ # Modèle métier + typage de la base
└── middleware.ts # Rafraîchissement de session + garde /admin
supabase/migrations/ # Schéma SQL, RLS, compte administrateur
scripts/archive-docx-to-sql.mjs # Registre Word → SQL d'import des archives
Séparation des responsabilités
This is the beginning of the README. Read the rest at the original. Read the full README ↗