From 85ff0a428f488865453a92220dd964578ee9d5a7 Mon Sep 17 00:00:00 2001 From: Alameen Date: Tue, 23 Dec 2025 18:28:10 +0530 Subject: [PATCH 1/7] feat: add demo mode for portfolio showcase - Add separate MongoDB collections (demoUsers, demoWatchlist) with TTL indexes - Auto-delete demo accounts after configurable TTL. --- cinetrack-app/client/src/App.tsx | 17 +- .../components/common/DemoWelcomeModal.tsx | 88 ++++++++++ .../src/components/features/SettingsModal.tsx | 151 +++++++++++------- .../client/src/contexts/AuthContext.tsx | 1 + cinetrack-app/client/src/pages/AuthPage.tsx | 63 +++++--- cinetrack-app/server/.env.example | 6 + cinetrack-app/server/src/config.js | 2 + cinetrack-app/server/src/routes/authRoutes.js | 70 ++++++-- .../server/src/routes/watchlistRoutes.js | 63 ++++++-- cinetrack-app/server/src/server.js | 31 +++- 10 files changed, 364 insertions(+), 128 deletions(-) create mode 100644 cinetrack-app/client/src/components/common/DemoWelcomeModal.tsx diff --git a/cinetrack-app/client/src/App.tsx b/cinetrack-app/client/src/App.tsx index ad407f9..1c87deb 100644 --- a/cinetrack-app/client/src/App.tsx +++ b/cinetrack-app/client/src/App.tsx @@ -6,6 +6,7 @@ import { useWatchlistStore, getWatchlistIds } from "./store/useWatchlistStore"; import { UIProvider, useUIContext } from "./contexts/UIContext"; import { DiscoverProvider } from "./contexts/DiscoverContext"; import { AuthProvider, useAuthContext } from "./contexts/AuthContext"; +import { DemoWelcomeModal, useDemoWelcome } from "./components/common/DemoWelcomeModal"; import { SearchBar } from "./components/common/SearchBar"; import { SearchPalette } from "./components/common/SearchPalette"; import { NotificationsModal } from "./components/common/NotificationsModal"; @@ -56,21 +57,21 @@ const Header: React.FC = memo(() => { {/* Tablet - Regular SearchBar */}
-
+
-
+
{