مايوركا للسياحة مايوركا للسياحة مايوركا للسياحة مايوركا للسياحة مايوركا للسياحة مايوركا للسياحة مايوركا للسياحة مايوركا للسياحة مايوركا للسياحة مايوركا للسياحة مايوركا للسياحة مايوركا للسياحة مايوركا للسياحة مايوركا للسياحة مايوركا للسياحة مايوركا للسياحة مايوركا للسياحة مايوركا للسياحة مايوركا للسياحة مايوركا للسياحة
تفاصيل العمل

Project Title: MAYORCA — Hajj & Umrah Travel Management ERP System Project Overview: Designed and developed a full-stack ERP system for a travel agency specializing in Hajj and Umrah pilgrimage management. The system handles the complete workflow: pilgrim registration, trip management, hotel contracts, flight routes, delegate/sub-agent management, document management, task tracking, and data export. My Role: Full Stack Developer (Freelance) Backend Development (Node.js + Express + MongoDB): Architected the entire backend with 14 Mongoose models and 15 controllers following a consistent Repository Pattern Implemented 3-tier authorization middleware: JWT authentication → Role-based access → Feature-level permissions (9 features × 4 actions) Built PIN-based authentication with bcryptjs (12 rounds) + JWT (HS256, 24h expiry) Integrated FingerprintJS for device whitelisting — employees can only access from authorized devices Designed a comprehensive Activity Audit Log — every Create/Update/Delete operation is logged with IP, device fingerprint, and timestamp Implemented Winston Logger with 3 transport layers: error.log, combined.log, debug.log (with auto-rotation) File upload system supporting both multipart and base64 with automatic old-file cleanup Protective delete logic across all entities — prevents deletion if related records exist (e.g., cannot delete a delegate who has pilgrims) Rate limiting, security headers (Helmet), request validation (express-validator), and graceful shutdown handling Frontend Development (React 19 + Vite 6 + Tailwind CSS 4): Built a responsive SPA with React Router DOM v7, lazy-loaded pages, and reusable component architecture AuthContext for global session management with automatic token expiry (24h) Generic useApi() hook for all CRUD operations with loading/error states Client-side export engine supporting Excel, Word, and CSV using ExcelJS (no server load for exports) PWA with service worker for offline capability — the app works in areas with poor internet (Mina, Arafat, etc.) Arabic-first design with RTL layout and full Arabic interface Tailwind CSS 4 with custom design system and reusable component library System Architecture: SPA (React) + RESTful API (Express) + MongoDB Atlas Vite dev server proxies API calls to Express backend during development Production deployment: Static SPA on Vercel + Express API on Vercel serverless functions Tech Stack: Node.js Express.js MongoDB Mongoose React 19 Vite 6 Tailwind CSS 4 JWT bcryptjs Winston FingerprintJS ExcelJS PWA Helmet Multer Sharp express-validator Morgan UUID React Router DOM lucide-react

شارك
بطاقة العمل
تاريخ النشر
منذ أسبوع
المشاهدات
17
المستقل
طلب عمل مماثل
شارك
مركز المساعدة