Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

69 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

██╗   ██╗███████╗██╗██╗     ██╗     ███████╗██╗   ██╗██████╗ 
██║   ██║██╔════╝██║██║     ██║     ██╔════╝██║   ██║██╔══██╗
██║   ██║█████╗  ██║██║     ██║     █████╗  ██║   ██║██████╔╝
╚██╗ ██╔╝██╔══╝  ██║██║     ██║     ██╔══╝  ██║   ██║██╔══██╗
 ╚████╔╝ ███████╗██║███████╗███████╗███████╗╚██████╔╝██║  ██║
  ╚═══╝  ╚══════╝╚═╝╚══════╝╚══════╝╚══════╝ ╚═════╝ ╚═╝  ╚═╝
  

Veilleur

Veilleur

Votre sentinelle de l'information

FonctionnalitésDémarrageStackDocumentation

Node.js TypeScript Fastify MariaDB Redis Docker

License Issues TDD First Français


📖 À propos

Veilleur est un agrégateur d'actualités libre et open source. Ajoutez vos sources RSS et sites web favoris, personnalisez votre fil d'actualités, et découvrez de nouvelles sources via la communauté.

« Restez informé, simplement. »


✨ Fonctionnalités

📰 Agrégation

  • Ajout de sources RSS et sites web
  • Détection automatique des flux
  • Extraction des métadonnées (Open Graph, Twitter Cards)

🎯 Personnalisation

  • Notation des sources (1-5 étoiles)
  • Tags personnalisés
  • Paramètres avancés par source

🌐 Communauté

  • Découverte de sources populaires
  • Filtrage par tags
  • Notes moyennes communautaires

⚡ Performance

  • Cache agressif (90% hit rate)
  • Réponses < 200ms (p95)
  • 1000 utilisateurs simultanés

🏗️ Architecture

graph TB
    subgraph Client["🖥️ Client"]
        WC[Web Components]
        CSS[CSS Moderne]
    end

    subgraph API["⚡ API Fastify"]
        Routes[Routes]
        MW[Middlewares]
        Auth[JWT Auth]
    end

    subgraph Domaine["🎯 Domaine"]
        Services[Services]
        Entites[Entités]
    end

    subgraph Infra["🔧 Infrastructure"]
        Scraping[Scraping]
        Cache[Cache]
        BDD[Base de données]
    end

    subgraph External["☁️ Externe"]
        RSS[Sources RSS]
        Sites[Sites Web]
    end

    Client --> API
    API --> Domaine
    Domaine --> Infra
    Scraping --> External

    subgraph Storage["💾 Stockage"]
        MariaDB[(MariaDB)]
        Redis[(Redis)]
    end

    BDD --> MariaDB
    Cache --> Redis
Loading

🚀 Démarrage Rapide

Avec Docker (Recommandé)

# 1. Cloner le projet
git clone https://github.com/yrbane/veilleur.git
cd veilleur

# 2. Configurer et démarrer
cp .env.example .env
make dev

App Adminer Redis

📋 Commandes Make

Commande Description
make dev 🟢 Démarrer l'environnement
make down 🔴 Arrêter les conteneurs
make logs 📜 Voir les logs
make shell 💻 Shell dans l'app
make db-shell 🗄️ Shell MariaDB
make test 🧪 Lancer les tests
make debug 🔧 Avec outils admin
make help ❓ Toutes les commandes

Sans Docker

git clone https://github.com/yrbane/veilleur.git
cd veilleur
npm install
cp .env.example .env
# Configurer MariaDB et Redis localement
npm run db:migrate
npm run dev

🛠️ Stack Technique

mindmap
  root((Veilleur))
    Backend
      Node.js 22 LTS
      Fastify 5.x
      TypeScript 5.7+
      Drizzle ORM
      BullMQ
    Frontend
      Vanilla TS
      Web Components
      CSS Moderne
        Nesting
        oklch
        Container Queries
    Stockage
      MariaDB 11.x
      Redis 7.x
    Tests
      Vitest
      Playwright
    Scraping
      cheerio
      rss-parser
Loading

Détail des technologies

Catégorie Technologie Rôle
🔙 Backend Runtime JavaScript
Framework web performant
Typage statique
ORM type-safe
File de tâches Redis
🎨 Frontend Composants natifs
Styles modernes
Build tool
💾 Stockage Base de données relationnelle
Cache et sessions
🧪 Tests Tests unitaires
Tests E2E
🔍 Scraping Parsing HTML
Parsing RSS/Atom

🐳 Docker

Services

graph LR
    subgraph Docker["🐳 Docker Compose"]
        App["📦 veilleur-app<br/>Node.js 22"]
        DB["🗄️ veilleur-mariadb<br/>MariaDB 11"]
        Cache["⚡ veilleur-redis<br/>Redis 7"]

        App --> DB
        App --> Cache
    end

    subgraph Debug["🔧 Debug (optionnel)"]
        Adminer["🔍 Adminer<br/>:8080"]
        RedisUI["📊 Redis Commander<br/>:8081"]
    end

    DB -.-> Adminer
    Cache -.-> RedisUI
Loading

Volumes persistants

Volume Contenu
veilleur-mariadb-data Données MariaDB
veilleur-redis-data Données Redis (AOF)

📚 Documentation

Document Description
📋 Spécification User stories et exigences
🗺️ Plan Plan d'implémentation
📊 Data Model Schéma de données
🔌 API Contrat OpenAPI
🔬 Recherche Choix techniques
🚀 Quickstart Guide de démarrage
Tâches 101 tâches à réaliser

📈 Roadmap

gantt
    title Milestones Veilleur
    dateFormat  YYYY-MM-DD
    section MVP
    Le Réveil du Veilleur (Setup)       :m1, 2025-01-01, 3d
    Les Yeux Grands Ouverts (Fondations):m2, after m1, 5d
    Première Veille (US1 Sources)       :m3, after m2, 4d
    Le Fil de l'Info (US2 Articles)     :m4, after m3, 3d
    section Features
    Identité Secrète (US5 Compte)       :m5, after m4, 2d
    Les Étoiles du Veilleur (US3 Notes) :m6, after m5, 3d
    Ajustements Nocturnes (US6 Params)  :m7, after m6, 3d
    Communauté des Veilleurs (US4)      :m8, after m7, 3d
    section Polish
    Le Grand Polish                      :m9, after m8, 3d
Loading

🎯 Principes


Tests avant code

Security by design

Cache agressif

Code propre

Ergonomie

Tout en français

Beauté du code

🤝 Contribution

Les contributions sont les bienvenues ! Consultez les issues pour voir les tâches disponibles.

# Fork et clone
git clone https://github.com/votre-user/veilleur.git

# Créer une branche
git checkout -b feature/ma-fonctionnalite

# Développer avec TDD
make test-watch

# Push et PR
git push origin feature/ma-fonctionnalite

📄 Licence

MIT License


Fait avec ❤️ par la communauté

Star

About

Agrégateur d'actualités libre - Votre sentinelle de l'information

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages