diff --git a/Backend1/logs/combined.log b/Backend1/logs/combined.log index f6b9dda..400de10 100644 --- a/Backend1/logs/combined.log +++ b/Backend1/logs/combined.log @@ -108,6 +108,3 @@ {"level":"info","message":"🚀 Server running on port 5001 in development mode","timestamp":"2026-03-27 00:47:20"} >>>>>>> Stashed changes {"clientVersion":"5.22.0","errorCode":"P1000","level":"error","message":"Failed to start server: Authentication failed against database server at `localhost`, the provided database credentials for `virendrakala` are not valid.\n\nPlease make sure to provide valid database credentials for the database server at `localhost`.","name":"PrismaClientInitializationError","stack":"PrismaClientInitializationError: Authentication failed against database server at `localhost`, the provided database credentials for `virendrakala` are not valid.\n\nPlease make sure to provide valid database credentials for the database server at `localhost`.\n at t (C:\\Users\\code\\Demo\\Backend1\\node_modules\\@prisma\\client\\runtime\\library.js:112:2488)\n at main (C:\\Users\\code\\Demo\\Backend1\\src\\server.ts:29:5)","timestamp":"2026-03-27 01:05:12"} -{"level":"info","message":"✅ Database connected successfully","timestamp":"2026-03-27 09:57:20"} -{"level":"info","message":"🔑 Super Admin account guaranteed (admin@iitk.ac.in / admin@123)","timestamp":"2026-03-27 09:57:21"} -{"level":"info","message":"🚀 Server running on port 5001 in development mode","timestamp":"2026-03-27 09:57:21"} diff --git a/Backend1/package-lock.json b/Backend1/package-lock.json index e298f6b..e3a7bf4 100644 --- a/Backend1/package-lock.json +++ b/Backend1/package-lock.json @@ -3020,7 +3020,6 @@ "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, "hasInstallScript": true, "license": "MIT", "optional": true, diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 02088f5..196659a 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -63,8 +63,7 @@ "sonner": "2.0.3", "tailwind-merge": "3.2.0", "tw-animate-css": "1.3.8", - "vaul": "1.1.2", - "zod": "^4.3.6" + "vaul": "1.1.2" }, "devDependencies": { "@tailwindcss/vite": "4.1.12", @@ -5786,15 +5785,6 @@ "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", "dev": true, "license": "ISC" - }, - "node_modules/zod": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/zod/-/zod-4.3.6.tgz", - "integrity": "sha512-rftlrkhHZOcjDwkGlnUtZZkvaPHCsDATp4pGpuOOMDaTdDDXF91wuVDJoWoPsKX/3YPQ5fHuF3STjcYyKr+Qhg==", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/colinhacks" - } } } } diff --git a/frontend/package.json b/frontend/package.json index 618cee2..7c0774b 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -63,8 +63,7 @@ "sonner": "2.0.3", "tailwind-merge": "3.2.0", "tw-animate-css": "1.3.8", - "vaul": "1.1.2", - "zod": "^4.3.6" + "vaul": "1.1.2" }, "devDependencies": { "@tailwindcss/vite": "4.1.12", diff --git a/frontend/src/app/components/AuthPage.tsx b/frontend/src/app/components/AuthPage.tsx index d7ef603..4975ddf 100644 --- a/frontend/src/app/components/AuthPage.tsx +++ b/frontend/src/app/components/AuthPage.tsx @@ -1,6 +1,5 @@ import React, { useState } from 'react'; import { useNavigate } from 'react-router-dom'; -import { z } from 'zod'; import { useApp } from '@/app/contexts/AppContext'; import { Input } from '@/app/components/ui/input'; import { Label } from '@/app/components/ui/label'; @@ -22,8 +21,6 @@ import { ForgotPassword } from './ForgotPassword'; type AppRole = 'CUSTOMER' | 'VENDOR' | 'RIDER' | 'ADMIN'; -const phoneSchema = z.string().length(10, "Phone number must be 10 digits").regex(/^\d+$/, "Phone number must be numeric"); - export function AuthPage() { const navigate = useNavigate(); const { login, register } = useApp(); @@ -34,7 +31,6 @@ export function AuthPage() { const [showPassword, setShowPassword] = useState(false); const [showConfirm, setShowConfirm] = useState(false); const [loading, setLoading] = useState(false); - const [phoneError, setPhoneError] = useState(null); const [loginData, setLoginData] = useState({ email: '', password: '' }); @@ -93,13 +89,6 @@ export function AuthPage() { const handleRegister = async (e: React.FormEvent) => { e.preventDefault(); - const validation = phoneSchema.safeParse(registerData.phone); - if (!validation.success) { - setPhoneError(validation.error.issues[0].message); - return; - } - setPhoneError(null); - if (registerData.password !== registerData.confirmPassword) { toast.error('Passwords do not match'); return; @@ -383,16 +372,9 @@ export function AuthPage() { type="tel" placeholder="10-digit number" value={registerData.phone} - onChange={(e) => { - const val = e.target.value; - if (val && !/^\d+$/.test(val)) return; - if (val.length > 10) return; - setRegisterData({ ...registerData, phone: val }); - setPhoneError(null); - }} - className={`pl-10 h-11 bg-white dark:bg-[#0F1E3A] border-blue-100 dark:border-blue-900/40 focus:border-[#1E3A8A] rounded-xl ${phoneError ? 'border-red-500' : ''}`} + onChange={(e) => setRegisterData({ ...registerData, phone: e.target.value })} + className="pl-10 h-11 bg-white dark:bg-[#0F1E3A] border-blue-100 dark:border-blue-900/40 focus:border-[#1E3A8A] rounded-xl" /> - {phoneError &&

{phoneError}

} diff --git a/frontend/src/app/components/CourierInterface.tsx b/frontend/src/app/components/CourierInterface.tsx index ccc9d45..599313c 100644 --- a/frontend/src/app/components/CourierInterface.tsx +++ b/frontend/src/app/components/CourierInterface.tsx @@ -1,6 +1,5 @@ import React, { useState, useEffect, useMemo } from 'react'; import { useNavigate } from 'react-router-dom'; -import { z } from 'zod'; import { useApp } from '@/app/contexts/AppContext'; import api from '@/api/axios'; import { Header } from '@/app/components/Header'; @@ -26,8 +25,6 @@ function MetricCard({ label, value, icon: Icon, colorClass }: { label: string; v ); } -const phoneSchema = z.string().length(10, "Phone number must be 10 digits").regex(/^\d+$/, "Phone number must be numeric"); - export function CourierInterface() { const navigate = useNavigate(); const { currentUser, authLoading, logout, setCurrentUser, updateUser } = useApp(); @@ -108,18 +105,9 @@ export function CourierInterface() { phone: currentUser?.phone || '' }); const [isSavingSettings, setIsSavingSettings] = useState(false); - const [phoneError, setPhoneError] = useState(null); const handleSaveSettings = async () => { if (!currentUser) return; - - const validation = phoneSchema.safeParse(settingsData.phone); - if (!validation.success) { - setPhoneError(validation.error.issues[0].message); - return; - } - setPhoneError(null); - setIsSavingSettings(true); try { await updateUser(currentUser.id, { @@ -395,18 +383,9 @@ export function CourierInterface() {
{ - const val = e.target.value; - if (f.field === 'phone') { - if (val && !/^\d+$/.test(val)) return; - if (val.length > 10) return; - setPhoneError(null); - } - setSettingsData({ ...settingsData, [f.field]: val }); - }} + onChange={(e) => setSettingsData({ ...settingsData, [f.field]: e.target.value })} disabled={f.field === 'email'} - className={`w-full h-11 bg-[#F0F4FF] dark:bg-[#0A1628] border rounded-xl px-3.5 text-sm focus:outline-none focus:border-[#1E3A8A] disabled:opacity-60 disabled:cursor-not-allowed ${f.field === 'phone' && phoneError ? 'border-red-500' : 'border-blue-100 dark:border-blue-900/30'}`} /> - {f.field === 'phone' && phoneError &&

{phoneError}

} + className="w-full h-11 bg-[#F0F4FF] dark:bg-[#0A1628] border border-blue-100 dark:border-blue-900/30 rounded-xl px-3.5 text-sm focus:outline-none focus:border-[#1E3A8A] disabled:opacity-60 disabled:cursor-not-allowed" />
); })} diff --git a/frontend/src/app/components/UserInterfaceNew.tsx b/frontend/src/app/components/UserInterfaceNew.tsx index 6ed58f9..270c0a2 100644 --- a/frontend/src/app/components/UserInterfaceNew.tsx +++ b/frontend/src/app/components/UserInterfaceNew.tsx @@ -1,6 +1,5 @@ import React, { useState, useMemo } from 'react'; import { useNavigate } from 'react-router-dom'; -import { z } from 'zod'; import { useApp } from '@/app/contexts/AppContext'; import { Header } from '@/app/components/Header'; import { Sidebar, SidebarItem } from '@/app/components/Sidebar'; @@ -34,8 +33,6 @@ function StatusBadge({ status }: { status: string }) { ); } -const phoneSchema = z.string().length(10, "Phone number must be 10 digits").regex(/^\d+$/, "Phone number must be numeric"); - const NAV_ITEMS: SidebarItem[] = [ { id: 'browse', label: 'Browse', icon: Search }, { id: 'orders', label: 'My Orders', icon: Package }, @@ -65,7 +62,6 @@ export function UserInterface() { name: currentUser?.name || '', email: currentUser?.email || '', phone: currentUser?.phone || '', address: currentUser?.address || '', photo: currentUser?.photo || '' }); - const [phoneError, setPhoneError] = useState(null); const [feedbackDialog, setFeedbackDialog] = useState<{ open: boolean; orderId: string; type: 'product' | 'courier' | 'vendor' }>({ open: false, orderId: '', type: 'product' }); const [rating, setRating] = useState(5); @@ -616,30 +612,14 @@ export function UserInterface() {
{ - const val = e.target.value; - if (f.field === 'phone') { - if (val && !/^\d+$/.test(val)) return; - if (val.length > 10) return; - setPhoneError(null); - } - setSettingsData({ ...settingsData, [f.field]: val }); - }} - className={`h-11 bg-[#F0F4FF] dark:bg-[#0A1628] border rounded-xl focus:border-[#1E3A8A] ${f.field === 'phone' && phoneError ? 'border-red-500' : 'border-blue-100 dark:border-blue-900/30'}`} /> - {f.field === 'phone' && phoneError &&

{phoneError}

} + onChange={e => setSettingsData({ ...settingsData, [f.field]: e.target.value })} + className="h-11 bg-[#F0F4FF] dark:bg-[#0A1628] border-blue-100 dark:border-blue-900/30 rounded-xl focus:border-[#1E3A8A]" />
); })}