نمای کلی
GPSTech یک پلتفرم دستگاههای متصل است که بر پایه ردیابی لحظهای خودروها و مدیریت ناوگان ساخته شده است.
این سیستم ارتباط با دستگاه، پردازش تلهمتری، دادههای مکانی، APIهای بکاند، مدیریت وب و اپلیکیشنهای کاربرمحور را در کنار یکدیگر قرار میدهد.
چه چیزهایی ساختم
این پلتفرم چندین لایه از سیستم را پوشش میدهد:
- APIهای بکاند و سرویسهای دامنه
- ارتباط با دستگاه و پردازش تلهمتری
- خطوط پردازش دادههای GPS لحظهای
- دادههای مکانی و زیرساخت نقشه
- مدیریت تحت وب
- احراز هویت و مجوزدهی
- مدیریت دسترسی و مجوزهای دستگاه
- مدیریت خودرو و ناوگان
چالشهای مهندسی
بخش جذاب این پروژه در یک قابلیت خاص خلاصه نمیشود، بلکه در تعامل میان چندین سیستم است.
یک نقطه GPS میتواند از یک دستگاه ردیاب فیزیکی آغاز شود، از یک handler پروتکل دستگاه عبور کند، توسط سرویسهای بکاند پردازش شود، بهعنوان داده مکانی ذخیره شود و در نهایت روی یک نقشه زنده نمایش داده شود.
این فرایند نیازمند مدیریت دقیق موارد زیر است:
- وضعیت اتصال
- ارتباط ناپایدار دستگاهها
- نرخ دریافت تلهمتری
- مرزهای دسترسی و مجوز
- کوئریهای مکانی
- بهروزرسانیهای لحظهای
- دادههای تاریخی
معماری
بکاند بر پایه سرویسهای NestJS و ارتباط دستگاه مبتنی بر Go ساخته شده است. PostgreSQL مسئول دادههای رابطهای و مکانی است و Redis برای ارتباط میان سرویسها استفاده میشود.
لایه مدیریت وب با Next.js ساخته شده و رابطهای عملیاتی لازم برای مدیریت دستگاهها، کاربران، فروشندگان، خودروها، هشدارها و قابلیتهای مرتبط با پلتفرم را فراهم میکند.
نتیجه
نتیجه، یک پلتفرم کامل GPS است که در آن پروتکل دستگاه، زیرساخت بکاند، لایه داده و رابط کاربری بهعنوان بخشهای یک سیستم واحد طراحی شدهاند، نه مجموعهای از اپلیکیشنهای جدا از هم.