Site multi-onglets avec backend JS (Express) + SQL (SQLite).
Toutes les données sont enregistrées dans data/app.db (utilisateurs, réglages,
onglets, colonnes, lignes, refunds, sessions).
npm install # déjà fait
npm start # http://localhost:3000 (PORT=xxxx pour changer)
Au premier démarrage, un mot de passe admin de 16 caractères aléatoires est généré :
ADMIN_PASSWORD.txt (ignoré par git).Pour l’imposer soi-même : ADMIN_PASSWORD="..." npm start (avant le 1er run).
Pour le régénérer : supprimer data/app.db (⚠️ efface tout) ou la ligne
admin_password_hash de la table settings.
Onglets de base créés automatiquement : Boutiques, Refunds, Contacts,
Techniques, Vouchs. Tout est modifiable depuis /admin :
text, textarea, number, boolean, date, url, select).L’onglet Refunds est « système » : colonnes fixes, non supprimable.
boutique · prix · nombre d'articles · technique · documents supplémentaires ·
délais · en cours (oui/non) · vente ou perso
refund_add | ajouter des refunds en cours dans l’onglet Refunds |
| refund_manage | modifier / clôturer / rouvrir / supprimer n’importe quel refund |
| data_manage | ajouter / modifier / supprimer les lignes des autres onglets |/adminProtégé par le mot de passe 16 caractères (toi uniquement). Il sert à :
L’admin a implicitement toutes les permissions de données sur le site.
server.js API Express + service des pages
db.js SQLite (node:sqlite), schéma + amorçage + seed
session-store.js store de sessions express-session adossé à SQLite
public/
index.html js/app.js site (connexion, onglets, refunds)
admin.html js/admin.js panel admin
css/style.css
telegram-bot.legacy.js ancien prototype de bot Telegram (non branché — à reprendre)
data/app.db base SQLite (créée au 1er run, ignorée par git)
node:sqlite). Testé avec Node 24.data/ est dans un dossier OneDrive : évite d’ouvrir la base pendant que
OneDrive la synchronise. Pour un déploiement, déplace data/ hors OneDrive
(variable de chemin à ajouter si besoin).BOT_TOKEN, pas être écrit en dur.🤖 Generated with Claude Code