Directory Structure
ondelivery-api/
├── ondeliv-backend.js # Main application entry point
├── package.json # Dependencies and scripts
├── README.md # Basic project information
├── BACKEND_DOCUMENTATION.md # This file
│
├── app/ # Application code
│ ├── config/ # Configuration files
│ │ ├── api.js # External API endpoints
│ │ ├── auth.config.js # JWT secret configuration
│ │ └── db.config.js # Database connection config
│ │
│ ├── controllers/ # Business logic controllers
│ │ ├── 3p/ # 3rd-party courier integrations
│ │ │ ├── jne.controller.js
│ │ │ ├── lion-parcel.controller.js
│ │ │ ├── jt-cargo.controller.js
│ │ │ ├── anteraja.controller.js
│ │ │ └── sapx.controller.js
│ │ ├── auth/ # Authentication controllers
│ │ ├── check-fee/ # Fee calculation logic
│ │ ├── driver-app/ # Driver mobile app
│ │ ├── finance/ # Financial operations
│ │ ├── incoming-scans/ # Receiving, delivery, problems
│ │ ├── marketplace/ # Marketplace integrations
│ │ ├── outgoing-scans/ # Packing, handover operations
│ │ ├── quality-management/ # Weight, POD, POP
│ │ ├── reports/ # Report generation
│ │ ├── trucking/ # Trucking operations
│ │ └── waybill/ # Waybill CRUD operations
│ │
│ ├── middleware/ # Express middleware
│ │ ├── authJwt.js # JWT token verification
│ │ ├── passport.js # Passport strategies
│ │ └── error_param_handler.js # Error handling
│ │
│ ├── models/ # Sequelize ORM models (52+ models)
│ │ ├── index.js # Model aggregation
│ │ ├── scans.model.js # Tracking status records
│ │ ├── partners.model.js # Courier partner data
│ │ ├── user.model.js # User accounts
│ │ ├── waybill_numbers.model.js # AWB tracking
│ │ ├── resi_3p.model.js # 3P waybill mapping
│ │ └── [48+ other models]
│ │
│ ├── routes/ # API route definitions
│ │ ├── auth.routes.js # Authentication endpoints
│ │ ├── waybill/ # Waybill routes
│ │ ├── incoming_scans/ # Incoming scan routes
│ │ ├── outgoing_scans/ # Outgoing scan routes
│ │ ├── reports/ # Report routes
│ │ ├── 3p.routes.js # 3P integration webhooks
│ │ └── [35+ route files]
│ │
│ ├── schemas/ # JSON validation schemas (AJV)
│ │ └── [validation definitions]
│ │
│ ├── schedulers/ # Cron job definitions
│ │ ├── update-resi-status.js
│ │ └── transaction-terminator.js
│ │
│ ├── status/ # Status mapping JSON files
│ │ └── [courier status mappings]
│ │
│ ├── utility/ # Helper utilities
│ │ ├── check-fee.util.js # Fee calculation helpers
│ │ ├── service.util.js # Service utilities
│ │ ├── waybill.util.js # Waybill helpers
│ │ └── web-hook.js # Webhook utilities
│ │
│ ├── maping/ # Data mapping files
│ │ └── jntcargo-special-pricing.json
│ │
│ └── fonts/ # Custom fonts for PDF generation
│
├── assets/ # Static assets
├── resources/ # Resource files
│ └── temp/ # Temporary files
│ ├── img/ # Image uploads
│ │ ├── pickup/
│ │ ├── delivery/
│ │ ├── pickup_eatsok/
│ │ ├── delivery_eatsok/
│ │ └── agent/
│ └── [generated files]
│
├── scripts/ # Utility scripts
├── tests/ # Test files
├── check_fee_test.js # Fee calculation tests
├── check_price.js # Price checking script
└── debug_provinces.js # Province debugging utility
No Comments