- Frontend Framework: SvelteKit 2 עם Svelte 5
- Styling: TailwindCSS
- Type Safety: TypeScript
- API Integration: Server-Side API Calls
- State Management: Svelte 5 Runes ($state)
- Authentication: Form Actions + Server-Side Sessions
- Session Storage: Redis
- Testing: Playwright
- Logging: Pino
מכיל את כל הלוגיקה של קריאות ה-API בצד שרת:
loginToApi()
- התחברות למערכת וקבלת טוקןlogoutFromApi()
- התנתקות מהמערכתgetMessagesFromApi()
- קבלת הודעות SMS כל הפונקציות מתקשרות עם השרת בכתובתhttps://www.call2all.co.il/ym/api/
הגדרות טיפוסים עבור TypeScript:
Message
- מבנה של הודעת SMS (תאריך, שולח, תוכן, נמען)LoginResponse
- מבנה של תשובת שרת להתחברותMessagesResponse
- מבנה של תשובת שרת לבקשת הודעות
קומפוננטות משנה של האפליקציה:
קומפוננטת טופס התחברות:
- מציגה שדות שם משתמש וסיסמה
- תומכת ב-autocomplete
- מטפלת בשגיאות התחברות
- מעוצבת עם TailwindCSS
קומפוננטה להצגת הודעת SMS בודדת:
- מקבלת כ-prop את פרטי ההודעה
- מציגה תאריך, שולח, תוכן ונמען
- מעוצבת עם TailwindCSS בצורה נקייה ומרווחת
קומפוננטה להצגת רשימת הודעות:
- מקבלת כ-props את רשימת ההודעות ופונקציות לרענון והתנתקות
- מציגה כפתורי פעולה (רענון והתנתקות)
- מרנדרת את כל ההודעות באמצעות קומפוננטת Message
הדפים והניתוב של האפליקציה:
תבנית הבסיס של האפליקציה:
- מייבאת את קובץ ה-CSS הראשי
- מגדירה את כיוון הטקסט לימין לשמאל (RTL)
- מגדירה צבע רקע בסיסי
הדף הראשי של האפליקציה:
- מנהל את מצב ההתחברות באמצעות Form Actions
- מציג טופס התחברות או רשימת הודעות בהתאם למצב
- מטפל בשגיאות ומציג הודעות למשתמש
לוגיקת צד שרת:
- מנהל את קריאות ה-API
- מנהל את הסשן והטוקן
- מטפל בפעולות המשתמש (התחברות, התנתקות, רענון)
- שימוש ב-$state של Svelte 5 לניהול משתנים ריאקטיביים:
messages
- רשימת ההודעותerror
- הודעות שגיאה
- שימוש בסשן בצד שרת לשמירת הטוקן
-
התחברות:
- טופס עם שדות שם משתמש וסיסמה
- תמיכה ב-autocomplete
- הצגת שגיאות התחברות
- שמירת טוקן בסשן בצד שרת
-
הצגת הודעות:
- טעינה אוטומטית בהתחברות
- תצוגה מאורגנת ונקייה
- מידע מלא על כל הודעה
-
רענון הודעות:
- כפתור לטעינה מחדש
- עדכון אוטומטי של התצוגה
-
התנתקות:
- ניקוי טוקן וסשן
- חזרה למסך התחברות
שירותי צד שרת:
מודול התחברות ל-Redis:
- יצירת חיבור ל-Redis באמצעות Vercel KV
- ניהול החיבור והתאוששות משגיאות
מודול ניהול סשנים:
- יצירת סשנים חדשים
- שמירה ושליפה של נתוני סשן
- ניקוי סשנים בהתנתקות
מודול לוגים עם Pino:
- רישום פעולות משתמש
- רישום שגיאות מערכת
- לוגרים ייעודיים לכל רכיב (auth, db, api, redis)
- פורמט מובנה ללוגים
כלי עזר:
עזרים לטיפול בטפסים:
- ולידציה של שדות
- טיפול בשגיאות
- עיבוד נתונים
- קריאות API מתבצעות בצד שרת
- מערכת סשנים מבוססת Redis עם Vercel KV
- הפרדה בין אימות משתמש לטוקן API
- הצפנת סיסמה בתצוגה
- ניקוי נתונים בהתנתקות
- שכבת אבטחה נוספת עם שם משתמש וסיסמה למערכת
- לוגים מפורטים של פעולות משתמש
- שימוש ב-TailwindCSS לעיצוב מודרני ונקי
- תמיכה מלאה בעברית ו-RTL
- ממשק משתמש אינטואיטיבי
- התאמה למובייל (responsive)
- התקנת תלויות:
npm install
- הרצת טסטים:
npm test
- הגדרת קובץ .env עם הפרטים הבאים:
# API Credentials API_USERNAME=your_api_username API_PASSWORD=your_api_password # Client Credentials CLIENT_USERNAME=admin CLIENT_PASSWORD=123456 # API URL API_URL=https://www.call2all.co.il/ym/api/
- הרצת שרת פיתוח:
npm run dev
- גישה לאפליקציה בדפדפן:
http://localhost:5173
הפרויקט כולל מערכת טסטים מקיפה עם Playwright:
טסטים למערכת ההתחברות:
- בדיקת התחברות תקינה
- בדיקת שגיאות התחברות
- בדיקת התנתקות
- הרצת כל הטסטים:
npm test
- הרצת טסט ספציפי:
npm test tests/login.spec.ts
- הרצה במצב UI:
npm run test:ui
- הגדרת Vercel KV (Redis):
- יצירת מופע Redis חדש ב-Vercel Dashboard
- העתקת פרטי החיבור (URL ו-Token) למשתני הסביבה:
KV_REST_API_URL=your_kv_url KV_REST_API_TOKEN=your_kv_token
- העלאת הפרויקט ל-Vercel
- הגדרת כל משתני הסביבה ב-Vercel Dashboard
- שם משתמש: admin
- סיסמה: 123456