מערכת Full Stack בזמן אמת לסימולציה וניהול מעליות בבניינים. פותחה ב-ASP.NET Core (API), React (TypeScript), SQL Server ו-SignalR לעדכונים בזמן אמת.
- שרת (Backend): ASP.NET Core (API)
- לקוח (Frontend): React (TypeScript)
- בסיס נתונים: SQL Server (Entity Framework Core)
- עדכונים בזמן אמת: SignalR
AdivceBackend/ # שרת (API ב-#C)
AdviceFrontend/ # לקוח (React)
- יש לוודא ש-SQL Server רץ מקומית (ניתן לשנות connection string לפי הצורך).
- המיגרציות ירוצו אוטומטית בהרצה ראשונה.
cd AdivceBackend/AdivceBackend
# התקנת תלויות
dotnet restore
# הרצת השרת
dotnet run- ה-API יהיה זמין ב-
https://localhost:5001(או כפי שהוגדר).
cd AdviceFrontend
# התקנת תלויות
npm install
# הרצת הלקוח
npm run dev- האפליקציה תהיה זמינה ב-
http://localhost:3000.
- אימייל:
admin@gmail.com - סיסמה: (נקבעת בהרשמה. הראשון שנרשם עם האימייל הזה הופך לאדמין. אין סיסמה קבועה מראש)
- הרשאה: Admin
- אימייל:
user@gmail.com - סיסמה:
User123! - הרשאה: User
- רק המשתמש הראשון שנרשם עם
admin@gmail.comמקבל הרשאת אדמין. - אין אפשרות להירשם שוב כאדמין אם כבר קיים משתמש כזה.
- כל שאר המשתמשים שנרשמים מקבלים הרשאת User רגילה.
- עדכוני סטטוס ותנועת מעליות נשלחים ל-Frontend בזמן אמת באמצעות SignalR.
- המשתמשים רואים מיידית את מיקום המעלית, מצב הדלתות והקצאות הקריאות.
- הרשמה והתחברות (כולל אדמין ומשתמש רגיל)
- ניהול בניינים ומעליות
- סימולציית קריאות והקצאת מעליות
- עדכונים בזמן אמת לסטטוס המעליות
- סטטיסטיקות והיסטוריית קריאות
- אלגוריתם הקצאה מתקדם: האלגוריתם בוחר את המעלית הקרובה ביותר במצב Idle, ואם אין – מחשב ציון לכל מעלית לפי מרחק, כיוון, ועומס. זה משפר את היעילות ומפחית זמני המתנה.
- תמיכה במספר מעליות לכל בניין: כל בניין יכול להכיל כמה מעליות, והמערכת יודעת לנהל קריאות והקצאות לכל אחת.
- שימוש ב-SignalR לעדכונים בזמן אמת: כל שינוי במצב המעלית (קומה, דלתות, כיוון) משודר ל-Frontend מידית.
- UI משופר עם אנימציות: השתמשתי בקומפוננטות עיצוב מתקדמות כדי להמחיש תנועת מעליות וסטטוס דלתות.
- ניהול הרשאות אדמין: רק המשתמש הראשון שנרשם עם
admin@gmail.comהופך לאדמין, וכל השאר משתמשים רגילים.
- כל הסיסמאות נשמרות בצורה מוצפנת ובטוחה.
- ניתן לשנות הגדרות חיבור (connection strings) וקונפיגורציות נוספות ב-
appsettings.jsonשל השרת. - אם לא השתמשת בפיצ'רי בונוס – יש לציין זאת (במקרה שלך כן השתמשת).
בהצלחה!