Refactored locally

This commit is contained in:
krikorios
2025-06-08 22:26:43 +03:00
parent 8d26a47b46
commit 83ffdf860a
11 changed files with 89 additions and 43 deletions
+2
View File
@@ -0,0 +1,2 @@
DATABASE_URL="postgresql://postgres:postgres@localhost:5432/postgres"
NODE_ENV=development
+32 -30
View File
@@ -1,36 +1,38 @@
import { Switch, Route, Redirect } from "wouter";
import { queryClient } from "./lib/queryClient";
import { QueryClientProvider } from "@tanstack/react-query";
import { Toaster } from "@/components/ui/toaster";
import { TooltipProvider } from "@/components/ui/tooltip";
import { FloatingVoiceControl } from "@/components/voice/FloatingVoiceControl";
import { AuthProvider, useAuth } from "@/context/AuthContext";
import { ThemeProvider } from "@/context/ThemeContext";
import { AdaptiveThemeProvider } from "@/context/AdaptiveThemeContext";
import { VoiceProvider } from "@/context/VoiceProvider";
import { NotificationProvider } from "@/context/NotificationProvider";
import { TourManagerProvider } from "@/components/onboarding/TourManager";
import { MoodDetector } from "@/components/MoodDetector";
import { RTLProvider } from "@/components/RTLProvider";
import { Skeleton } from "@/components/ui/skeleton";
import LandingPage from "@/pages/LandingPage";
import DashboardPage from "@/pages/DashboardPage";
import LoginPage from "@/pages/LoginPage";
import ProfessionalDirectory from "@/pages/ProfessionalDirectory";
import OnboardingPage from "@/pages/OnboardingPage";
import TasksPage from "@/pages/TasksPage";
import FinancesPage from "@/pages/FinancesPage";
import VoicePage from "@/pages/VoicePage";
import AIPage from "@/pages/AIPage";
import AnalyticsPage from "@/pages/AnalyticsPage";
import SystemMonitoringPage from "@/pages/SystemMonitoringPage";
import SettingsPage from "@/pages/SettingsPage";
import FocusPage from "@/pages/FocusPage";
import ThemePage from "@/pages/ThemePage";
import BenchmarkPage from "@/pages/BenchmarkPage";
import ChatPage from "@/pages/ChatPage";
import ComfortHubPage from "@/pages/ComfortHubPage";
import NotFound from "@/pages/not-found";
import { Toaster } from "./components/ui/toaster";
import { TooltipProvider } from "./components/ui/tooltip";
import { FloatingVoiceControl } from "./components/voice/FloatingVoiceControl";
import { AuthProvider, useAuth } from "./context/AuthContext";
import { ThemeProvider } from "./context/ThemeContext";
import { AdaptiveThemeProvider } from "./context/AdaptiveThemeContext";
import { VoiceProvider } from "./context/VoiceProvider";
import { NotificationProvider } from "./context/NotificationProvider";
import { TourManagerProvider } from "./components/onboarding/TourManager";
import { MoodDetector } from "./components/MoodDetector";
import { RTLProvider } from "./components/RTLProvider";
import { Skeleton } from "./components/ui/skeleton";
// Page imports
import LandingPage from "./pages/LandingPage";
import DashboardPage from "./pages/DashboardPage";
import LoginPage from "./pages/LoginPage";
import OnboardingPage from "./pages/OnboardingPage";
import TasksPage from "./pages/TasksPage";
import FinancesPage from "./pages/FinancesPage";
import VoicePage from "./pages/VoicePage";
import AIPage from "./pages/AIPage";
import AnalyticsPage from "./pages/AnalyticsPage";
import SystemMonitoringPage from "./pages/SystemMonitoringPage";
import SettingsPage from "./pages/SettingsPage";
import FocusPage from "./pages/FocusPage";
import ThemePage from "./pages/ThemePage";
import BenchmarkPage from "./pages/BenchmarkPage";
import ChatPage from "./pages/ChatPage";
import ComfortHubPage from "./pages/ComfortHubPage";
import ProfessionalDirectory from "./pages/ProfessionalDirectory";
import NotFound from "./pages/not-found";
// Protected Route wrapper
function ProtectedRoute({ component: Component }: { component: React.ComponentType }) {
+1
View File
@@ -19,6 +19,7 @@
--secondary-foreground: 222.2 84% 4.9%;
--muted: 210 40% 96%;
--muted-foreground: 215.4 16.3% 46.9%;
--border: 214.3 31.8% 91.4%;
--accent: 210 40% 96%;
--accent-foreground: 222.2 84% 4.9%;
--destructive: 0 84.2% 60.2%;
+1 -1
View File
@@ -6,7 +6,7 @@ import { Badge } from '@/components/ui/badge';
import { Tabs, TabsContent, TabsList, TabsTrigger } from '@/components/ui/tabs';
import { PerformanceBenchmark } from '@/components/PerformanceBenchmark';
import { Header } from '@/components/layout/Header';
import { Sidebar } from '@/components/layout/Sidebar';
import Sidebar from '@/components/layout/Sidebar';
import {
Activity,
BarChart3,
+12
View File
@@ -0,0 +1,12 @@
import { defineConfig } from "vite";
import react from "@vitejs/plugin-react";
import path from "path";
export default defineConfig({
plugins: [react()],
resolve: {
alias: {
"@": path.resolve(__dirname, "src"),
},
},
});
+16 -3
View File
@@ -49,6 +49,7 @@
"compression": "^1.8.0",
"connect-pg-simple": "^10.0.0",
"date-fns": "^3.6.0",
"dotenv": "^16.5.0",
"drizzle-orm": "^0.39.1",
"drizzle-zod": "^0.7.0",
"embla-carousel-react": "^8.6.0",
@@ -4137,9 +4138,9 @@
}
},
"node_modules/caniuse-lite": {
"version": "1.0.30001677",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001677.tgz",
"integrity": "sha512-fmfjsOlJUpMWu+mAAtZZZHz7UEwsUxIIvu1TJfO1HqFQvB/B+ii0xr9B5HpbZY/mC4XZ8SvjHJqtAY6pDPQEog==",
"version": "1.0.30001721",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001721.tgz",
"integrity": "sha512-cOuvmUVtKrtEaoKiO0rSc29jcjwMwX5tOHDy4MgVFEWiUXj4uBMJkwI8MDySkgXidpMiHUcviogAvFi4pA2hDQ==",
"dev": true,
"funding": [
{
@@ -4787,6 +4788,18 @@
"csstype": "^3.0.2"
}
},
"node_modules/dotenv": {
"version": "16.5.0",
"resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.5.0.tgz",
"integrity": "sha512-m/C+AwOAr9/W1UOIZUo232ejMNnJAJtYQjUbHoNTBNTJSvqzzDh7vnrei3o3r3m9blf6ZoDkvcw0VmozNRFJxg==",
"license": "BSD-2-Clause",
"engines": {
"node": ">=12"
},
"funding": {
"url": "https://dotenvx.com"
}
},
"node_modules/drizzle-kit": {
"version": "0.30.4",
"resolved": "https://registry.npmjs.org/drizzle-kit/-/drizzle-kit-0.30.4.tgz",
+1
View File
@@ -51,6 +51,7 @@
"compression": "^1.8.0",
"connect-pg-simple": "^10.0.0",
"date-fns": "^3.6.0",
"dotenv": "^16.5.0",
"drizzle-orm": "^0.39.1",
"drizzle-zod": "^0.7.0",
"embla-carousel-react": "^8.6.0",
+1
View File
@@ -1,3 +1,4 @@
import 'dotenv/config';
import express, { type Request, Response, NextFunction } from "express";
import { registerRoutes } from "./routes";
import { taskScheduler } from "./services/taskScheduler";
+5 -2
View File
@@ -1,11 +1,14 @@
import express, { type Express } from "express";
import fs from "fs";
import path from "path";
import { fileURLToPath } from 'node:url';
import { createServer as createViteServer, createLogger } from "vite";
import { type Server } from "http";
import viteConfig from "../vite.config";
import { nanoid } from "nanoid";
const __dirname = path.dirname(fileURLToPath(import.meta.url));
const viteLogger = createLogger();
export function log(message: string, source = "express") {
@@ -46,7 +49,7 @@ export async function setupVite(app: Express, server: Server) {
try {
const clientTemplate = path.resolve(
import.meta.dirname,
__dirname,
"..",
"client",
"index.html",
@@ -68,7 +71,7 @@ export async function setupVite(app: Express, server: Server) {
}
export function serveStatic(app: Express) {
const distPath = path.resolve(import.meta.dirname, "public");
const distPath = path.resolve(__dirname, "public");
if (!fs.existsSync(distPath)) {
throw new Error(
+10 -2
View File
@@ -2,7 +2,12 @@ import type { Config } from "tailwindcss";
export default {
darkMode: ["class"],
content: ["./client/index.html", "./client/src/**/*.{js,jsx,ts,tsx}"],
content: [
"./index.html",
"./src/**/*.{js,ts,jsx,tsx}",
"./client/index.html",
"./client/src/**/*.{js,ts,jsx,tsx}"
],
theme: {
extend: {
borderRadius: {
@@ -10,9 +15,13 @@ export default {
md: "calc(var(--radius) - 2px)",
sm: "calc(var(--radius) - 4px)",
},
borderColor: {
DEFAULT: "hsl(var(--border))",
},
colors: {
background: "hsl(var(--background))",
foreground: "hsl(var(--foreground))",
border: "hsl(var(--border))",
card: {
DEFAULT: "hsl(var(--card))",
foreground: "hsl(var(--card-foreground))",
@@ -41,7 +50,6 @@ export default {
DEFAULT: "hsl(var(--destructive))",
foreground: "hsl(var(--destructive-foreground))",
},
border: "hsl(var(--border))",
input: "hsl(var(--input))",
ring: "hsl(var(--ring))",
chart: {
+8 -5
View File
@@ -1,8 +1,11 @@
import { defineConfig } from "vite";
import react from "@vitejs/plugin-react";
import path from "path";
import { fileURLToPath } from 'node:url';
import runtimeErrorOverlay from "@replit/vite-plugin-runtime-error-modal";
const __dirname = path.dirname(fileURLToPath(import.meta.url));
export default defineConfig({
plugins: [
react(),
@@ -18,14 +21,14 @@ export default defineConfig({
],
resolve: {
alias: {
"@": path.resolve(import.meta.dirname, "client", "src"),
"@shared": path.resolve(import.meta.dirname, "shared"),
"@assets": path.resolve(import.meta.dirname, "attached_assets"),
"@": path.resolve(__dirname, "client", "src"),
"@shared": path.resolve(__dirname, "shared"),
"@assets": path.resolve(__dirname, "attached_assets"),
},
},
root: path.resolve(import.meta.dirname, "client"),
root: path.resolve(__dirname, "client"),
build: {
outDir: path.resolve(import.meta.dirname, "dist/public"),
outDir: path.resolve(__dirname, "dist/public"),
emptyOutDir: true,
},
});