Site boursier — Affichage des actions

Application web permettant d'afficher les actions et leurs informations boursières dans une interface simple et dynamique.

Le projet utilise PHP, JavaScript, HTML, Tailwind CSS et MySQL.

Une partie importante de l'interface est constituée d'un bandeau défilant d'actions, affiché en bas de page dans le footer.


Fonctionnalités

  • Affichage des actions depuis la base de données MySQL

  • Utilisation de PHP avec PDO pour l'accès à la base

  • Affichage dynamique des données en JavaScript

  • Bandeau horizontal défilant en continu

  • Affichage des informations boursières dans le bandeau

  • Mise à jour périodique des données

  • Interface responsive

  • Utilisation de Tailwind CSS

  • Séparation entre :

    • interface HTML/PHP
    • logique JavaScript
    • accès à la base de données
    • sécurité

Technologies

Frontend

  • HTML5
  • JavaScript
  • Tailwind CSS

Backend

  • PHP
  • PDO

Base de données

  • MySQL / MariaDB

Architecture

L'organisation générale du projet est basée sur une séparation entre l'affichage, le JavaScript et le PHP.

Exemple :

/html/
    index.php
    securite.html

/js/
    app.js
    securite.js

/php/
    database.php
    securite/
        users.php
        create.php
        password.php
        status.php

Les fichiers peuvent être adaptés à l'organisation définitive du site.


Connexion à MySQL

La connexion à la base de données est centralisée dans :

php/database.php

L'utilisation de PDO permet d'éviter de multiplier les connexions dans les différents scripts PHP.

Exemple de principe :

$pdo = new PDO(
    $dsn,
    $username,
    $password,
    [
        PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
        PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
    ]
);

Les requêtes utilisent des requêtes préparées lorsque des paramètres utilisateur sont impliqués.


Affichage des actions

Les informations affichées proviennent de la base MySQL.

Une action peut notamment être identifiée par :

  • son indice
  • son nom
  • son ISIN
  • son symbole
  • son état actif
  • son état d'affichage

Exemple de structure :

indice
nom
isin
symbole
actif
afficher

Le champ afficher permet notamment de déterminer quelles actions doivent apparaître dans le bandeau.


Bandeau défilant

Le site comporte un bandeau horizontal situé dans le footer.

Le principe est :

┌──────────────────────────────────────────────────────────────┐
│  CAC40  │  AIR LIQUIDE +0.42%  │  LVMH -0.31%  │  ORANGE ...│
└──────────────────────────────────────────────────────────────┘
                         ← défilement →

Le bandeau défile automatiquement de manière continue.

L'utilisateur n'a pas besoin d'interagir avec celui-ci.


Principe du scroll

Le défilement est réalisé côté navigateur avec JavaScript/CSS.

Le JavaScript récupère les données puis construit dynamiquement les éléments du ticker.

Le principe général est :

MySQL
  ↓
PHP / PDO
  ↓
Données des actions
  ↓
JavaScript
  ↓
Bandeau HTML
  ↓
Animation CSS

Mise à jour des données

Les données affichées peuvent être actualisées périodiquement sans recharger toute la page.

Le principe retenu est une actualisation JavaScript régulière, par exemple toutes les 10 secondes.

setInterval(() => {
    chargerActions();
}, 10000);

L'actualisation concerne uniquement les données nécessaires au bandeau.

Cela évite de recharger complètement la page.


Performance

Le site est conçu pour éviter les traitements inutiles.

Le navigateur :

  1. charge la page ;
  2. récupère les données nécessaires ;
  3. construit le bandeau ;
  4. lance l'animation ;
  5. actualise périodiquement les données.

L'animation du scroll est réalisée côté client afin de ne pas solliciter inutilement PHP ou MySQL pendant le déplacement.


Tailwind CSS

Tailwind CSS est utilisé pour la mise en forme de l'interface.

Exemple :

<div class="flex items-center">

ou :

<footer class="fixed bottom-0 w-full">

Les classes Tailwind permettent notamment de gérer :

  • dimensions
  • espacements
  • couleurs
  • positionnement
  • responsive design
  • affichage du footer
  • éléments du ticker

Sécurité

Les accès à la base de données sont regroupés dans :

php/database.php

Les fonctions de sécurité sont séparées dans :

php/securite/

avec notamment :

users.php
create.php
password.php
status.php

Le système d'authentification utilise une table login.

Structure actuelle :

login
├── id
├── nom
├── pass
├── actif
├── dernier_login
├── updated_at
└── created_at

Le mot de passe minimum utilisé par le système est de 4 caractères.


JavaScript

Les scripts JavaScript sont placés dans :

js/

Le principe est de conserver dans les fichiers JavaScript :

  • manipulation du DOM
  • récupération des données
  • animation du bandeau
  • gestion des événements
  • actualisation périodique

Le HTML reste ainsi principalement consacré à la structure de la page.


Principe du ticker

Le ticker peut être représenté comme une longue ligne horizontale :

| ACTION 1 | ACTION 2 | ACTION 3 | ACTION 4 | ACTION 5 | ...
<------------------------------------------------------------>

Lorsque la fin de la ligne arrive, les éléments sont répétés afin de créer un défilement continu.

Le principe permet d'éviter une coupure visible lorsque le premier élément revient à l'écran.


Footer

Le bandeau est placé dans le footer afin de rester visible indépendamment du contenu principal.

Structure simplifiée :

<body>

    <main>
        <!-- Contenu principal -->
    </main>

    <footer>
        <!-- Bandeau boursier -->
    </footer>

</body>

Le footer peut être positionné en bas de la fenêtre selon la mise en page utilisée.


Organisation recommandée

Une organisation claire du projet permet de conserver une séparation entre les différentes fonctions :

projet/
│
├── html/
│   ├── index.php
│   └── securite.html
│
├── js/
│   ├── app.js
│   └── securite.js
│
├── php/
│   ├── database.php
│   │
│   └── securite/
│       ├── users.php
│       ├── create.php
│       ├── password.php
│       └── status.php
│
└── README.md

Flux général de l'application

                  ┌──────────────┐
                  │    MySQL     │
                  └──────┬───────┘
                         │
                         ▼
                  ┌──────────────┐
                  │     PHP      │
                  │     PDO      │
                  └──────┬───────┘
                         │
                         ▼
                  ┌──────────────┐
                  │  JavaScript  │
                  └──────┬───────┘
                         │
             ┌───────────┴───────────┐
             ▼                       ▼
       Affichage actions        Bandeau scroll

Évolution possible

L'architecture permet d'ajouter progressivement de nouvelles fonctionnalités sans modifier profondément le système existant.

Par exemple :

  • ajout de nouveaux indices
  • ajout de nouvelles actions
  • affichage des variations
  • affichage du dernier cours
  • volume
  • couleur selon la variation
  • filtrage par indice
  • affichage/masquage d'une action
  • mise à jour automatique des cotations
  • pages détaillées pour chaque action

Objectif

L'objectif du projet est de disposer d'une interface boursière légère, rapide et dynamique, capable d'afficher les marchés et leurs composants tout en conservant une architecture PHP/JavaScript/MySQL simple à maintenir.

Le bandeau défilant constitue un élément permanent de l'interface et permet d'afficher rapidement les informations importantes sur les actions suivies.


Auteur

Projet personnel de suivi et d'affichage des marchés financiers.

Technologies principales :

PHP · JavaScript · MySQL · PDO · HTML · Tailwind CSS

S
Description
Lecture de la BD créer avec extraction-actions et affichage sous forme d'un site html.
Readme 203 KiB
Languages
JavaScript 40.2%
HTML 38.7%
PHP 20.9%
CSS 0.2%