مايوركا للسياحة
تفاصيل العمل
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
مهارات العمل
بطاقة العمل
طلب عمل مماثل