Atlan ODL is a scalable platform designed for efficient goods transportation and logistics services. The system handles high-frequency requests, including real-time vehicle tracking and booking management, ensuring optimal performance even under heavy loads.
The platform is developed with modern web technologies, employing a microservices architecture, load balancing, and asynchronous operations to manage scalability and handle millions of requests per second.
- User Login:
- Email:
[email protected]
- Password:
User2
- Email:
- Driver Login:
- Email:
[email protected]
- Password:
Driver2
- Email:
- Admin Login:
- Email:
[email protected]
- Password:
Admin2
- Email:
Check out the project demo on YouTube: Demo Video
-
Component-Based Architecture: The platform utilizes a modular structure using React.js for the frontend, ensuring maintainability and easier future updates.
- Trade-off: Initial setup complexity and a learning curve for new developers.
-
State Management: React's state management with hooks (
useState
,useEffect
) is used for handling real-time data efficiently, such as vehicle tracking and booking status updates.- Trade-off: Managing global state for larger applications can introduce complexity.
-
Asynchronous Operations: Asynchronous data fetching and form submissions prevent blocking the main thread, ensuring smooth user interactions, especially during booking and tracking.
-
Backend Optimization: The backend is built using Node.js and Express, optimized for handling multiple concurrent requests through efficient resource management.
- Trade-off: Requires careful resource monitoring to prevent overload.
-
Asynchronous Functions: High-volume requests are handled using Axios for HTTP operations, enabling asynchronous operations and efficient real-time updates.
-
Microservices Architecture: Different services, such as user authentication, booking management, and real-time tracking, are split into microservices, enabling independent scaling.
- Trade-off: Complexity in managing inter-service communication and ensuring data consistency.
- Users can create, update, view, and delete bookings via the platform. The booking system ensures smooth form submissions with validation and asynchronous data handling.
- Vehicle location is updated in real time, allowing users to track the status of their deliveries. Updates to vehicle locations are efficiently managed to avoid system overload through throttling and efficient database operations.
-
The platform calculates the estimated price based on factors like distance, demand, and vehicle type. This dynamic pricing adjusts to real-time market demand and supply.
Key Algorithm:
- Distance between pickup and drop-off points.
- Vehicle type availability.
- Real-time demand in the user's region.
- A sophisticated matching algorithm is employed to assign drivers to users based on proximity, vehicle type, and availability. The algorithm ensures that the closest available driver with the appropriate vehicle is matched to the user's request.
- Factors considered:
- Vehicle availability and type.
- Real-time location and proximity to pickup.
- Current demand and traffic conditions.
- Factors considered:
- Admins can manage users and drivers, including pagination, search, and deletion functionalities. This ensures streamlined management of the growing user base.
- Real-time success and error notifications are handled using
react-toastify
, ensuring users are kept informed throughout their interaction with the platform.
- Frequent updates to vehicle locations are managed using a combination of real-time web sockets and throttling mechanisms. This prevents overloading the system while ensuring accurate location data.
- Throttling ensures that location updates occur at a reasonable frequency (e.g., every few seconds) rather than continuously, thus avoiding unnecessary load.
- The platform maintains consistency across databases by employing optimized indexing strategies and distributed caching to handle frequent updates without performance degradation.
- File:
client/src/server/booking/booking.jsx
- Functions:
handleBookingSubmit
: Manages form submissions, validation, and asynchronous data updates.fetchUserBookingInfo
,deleteBookingHandler
,updateBookingStatus
: Handle various booking-related operations.
- File:
client/src/components/ManageUser/manageUser.jsx
- Functions:
- Handles pagination, search, and deletion of users.
- File:
client/src/server/tracking/vehicleTracking.jsx
- Utilizes WebSockets and APIs for updating and fetching vehicle locations in real time.
- File:
client/src/utils/logMessage.jsx
- Functions:
ShowErrorMessage
,ShowSuccessMessage
: Handle real-time error/success notifications for users and admin.
- Robust error handling is crucial to prevent crashes or incorrect data submissions. The platform uses a centralized logging system for error reporting.
- Ensuring all forms, especially for bookings and user registrations, are validated to prevent incorrect or incomplete submissions.
- Managing high-frequency updates such as vehicle locations is a challenge. The platform uses optimized database queries and caching to ensure consistent data without overloading the system.