Skip to content

Repository files navigation

Vaultify

Vaultify est une application web de découverte technique. Elle transforme une recherche naturelle en résultats GitHub et Web, avec README formaté, favoris, collections et exploration des développeurs béninois.

Valeur produit

  • Recherche GitHub et Web exécutée côté serveur via des routes API Vercel.
  • Expansion des requêtes avec Groq et recherche Web via DuckDuckGo, SearXNG et Firecrawl en fallback.
  • Vue détaillée des repositories avec README formaté et sécurisé.
  • Exploration spécialisée des développeurs béninois.
  • Synchronisation facultative des favoris, collections et historiques dans Neon Postgres.

Fonctionnalites

  • Recherche parallèle sur l'API GitHub et la recherche Web.
  • Jusqu'à 30 repositories GitHub et résultats Web indépendants par recherche.
  • Recherche repository forcée sur les résultats publics, même avec token GitHub.
  • Profils développeurs avec repos publics, statistiques GitHub et badges committers.top.
  • Export des favoris en JSON et Markdown.
  • SEO renforcé : Open Graph, Twitter Cards, JSON-LD, sitemap et robots.

Stack technique

Domaine Outils
Frontend React 18, TypeScript, Vite
Backend API routes Vercel, Zod, fetch avec retries et timeouts
Recherche GitHub REST, Serper Web, Groq
Persistance Neon Postgres
UI Tailwind CSS, Lucide Icons
State Zustand
Routing React Router
Tests Vitest

Flux produit

  1. L'utilisateur décrit son besoin en langage naturel.
  2. Le frontend interroge GitHub directement pour préserver le flux de repositories existant.
  3. La route /api/search interroge Serper Web et Groq côté serveur.
  4. Les résultats Web sont affichés indépendamment des repositories GitHub.
  5. Les favoris, tags, notes et collections restent disponibles dans l'interface.
  6. Les données peuvent être synchronisées dans Neon et exportées en JSON ou Markdown.

Demarrage

npm install
npm run dev

Scripts disponibles

npm run dev
npm run build
npm run preview
npm run lint
npm run test

Architecture (fichiers clés)

  • src/pages/Landing.tsx : landing page et informations produit visiteurs.
  • src/pages/Results.tsx : affichage des repositories GitHub et des résultats Web.
  • src/pages/RepoDetail.tsx : detail repository et README formate.
  • src/pages/DevProfile.tsx : profil developpeur GitHub et committers.top.
  • src/pages/BeninDevs.tsx : exploration des developpeurs beninois.
  • src/lib/github.ts : couche API GitHub, découverte des ressources accessibles et enrichissement committers.top Benin.
  • src/lib/searchApi.ts : client frontend de la recherche Web.
  • api/search.ts : route serveur d'orchestration Groq et Web.
  • api/data.ts : synchronisation anonyme avec Neon Postgres.
  • db/migrations/001_vaultify_data.sql : schéma initial Neon.

Transparence et limites

  • Verifier systematiquement la licence, l'activite et la qualite du README d'un repo.
  • Sans token GitHub, les quotas d'API sont plus limites; le token optionnel est conserve seulement dans la session du navigateur.
  • Les variables VITE_* et les secrets serveur sont configures au deploiement.

Assets SEO et social

  • public/favicon.svg
  • public/favicon.ico
  • public/og-image.jpg (1200x630)
  • public/og-image-square.jpg (1200x1200)
  • public/sitemap.xml
  • public/robots.txt

Variables de déploiement

Copier .env.example vers l'environnement serveur local. Pour Vercel, ajouter ces variables dans Project Settings → Environment Variables pour Production, Preview et/ou Development. Les secrets ne doivent jamais être préfixés par VITE_.

  • GITHUB_TOKEN : token GitHub serveur facultatif, pour augmenter les quotas.
  • SEARXNG_URL : URL d'une instance SearXNG facultative, utilisée après DuckDuckGo.
  • FIRECRAWL_API_KEY : clé Firecrawl facultative, utilisée en dernier fallback.
  • GROQ_API_KEY et GROQ_MODEL : clé et modèle Groq.
  • DATABASE_URL : chaîne de connexion Neon Postgres.
  • SESSION_SECRET : secret serveur utilisé pour signer les sessions anonymes.
  • APP_ORIGIN : origine autorisée par les API, par exemple https://votre-app.vercel.app.

Endpoints principaux :

  • POST /api/search : recherche GitHub + web, résultats partiels acceptés.
  • POST /api/ai-proxy : analyse Groq côté serveur.
  • GET|PUT /api/data : synchronisation des favoris, collections et historique.

Le token GitHub saisi par l'utilisateur est transmis uniquement dans la requête HTTPS GitHub, utilisé pour la session du navigateur puis non envoyé à Neon. Il n'est pas inclus dans le cache serveur.

La migration initiale Neon se trouve dans db/migrations/001_vaultify_data.sql. Exécutez-la une fois dans la console SQL Neon avant d'utiliser la synchronisation des données. L'API vérifie aussi automatiquement la présence de la table au premier appel.

Déploiement Vercel

  1. Importer le dépôt GitHub dans Vercel.
  2. Garder le framework détecté comme Vite et la commande npm run build.
  3. Ajouter les variables serveur ci-dessus sans les commiter.
  4. Exécuter la migration Neon.
  5. Déployer puis vérifier /api/search, les favoris et les résultats Web.

Le développement local utilise le middleware API de vite.config.ts, qui charge .env et expose les routes /api/* sur http://localhost:8080.

About

Vaultify est une application web de découverte technique assistée par IA. Elle transforme une recherche exprimée en langage naturel en une sélection de repositories GitHub pertinents, accompagnés de résultats Web, de synthèses et de recommandations exploitables.

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages