Add demo mode with hourly reset, example trips & demo banner

DEMO_MODE=true enables: auto-seeded admin + demo user, 3 example trips
(Tokyo, Barcelona, Wien), hourly reset of demo user data, one-click
demo login, visible banner with feature info. Zero behavior change
when DEMO_MODE is not set.
This commit is contained in:
Maurice
2026-03-19 13:25:37 +01:00
parent f8dcce802e
commit e8acbbd129
13 changed files with 558 additions and 5 deletions
+20 -1
View File
@@ -102,4 +102,23 @@ function start() {
console.log(`[Auto-Backup] Geplant: ${settings.interval} (${expression}), Aufbewahrung: ${settings.keep_days === 0 ? 'immer' : settings.keep_days + ' Tage'}`);
}
module.exports = { start, loadSettings, saveSettings, VALID_INTERVALS };
// Demo mode: hourly reset of demo user data
let demoTask = null;
function startDemoReset() {
if (demoTask) { demoTask.stop(); demoTask = null; }
if (process.env.DEMO_MODE !== 'true') return;
demoTask = cron.schedule('0 * * * *', () => {
try {
const { db } = require('./db/database');
const { resetDemoUser } = require('./demo/demo-reset');
resetDemoUser(db);
} catch (err) {
console.error('[Demo Reset] Error:', err.message);
}
});
console.log('[Demo] Hourly reset scheduled (at :00 every hour)');
}
module.exports = { start, startDemoReset, loadSettings, saveSettings, VALID_INTERVALS };