Prerequisites:
Knowledge of Django, Python, SQL.
Knowledge of installing packages using pip.
Knowledge of APIs.
A Github account in order to share your code with us.
Submission guidelines
1. Before Starting the Assignment:
a. Create a public Github repository to work on this assignment
2. After completing the Assignment:
a. Share the Loom Video Recording explaining your code and how it works by showing your output in jupyter notebook by explaining each API request and response
i. Github Link & Loom recording Submission Form:
https://forms.gle/Uw1DKz6t6g6WwoCv9
ii. How to record your screen using Loom:
https://youtu.be/WSBDNlJCwtg
Note: Add jupyter notebook in the git repository which you’ll be sharing with us Queries/Issues Form: https://forms.gle/MzhDx6CoDFeXqBpu8
Project Description
There will be 2 persons one is a Rider and the other is an Asset Transportation Requester (will be referred as requester from now on).
A Rider is a person who travels from one place to another and is willing to carry some assets(packages/luggages) along with him.
A Requester is a person who wants his assets to be carried by someone else from one place to another.
We will be developing an application that supports the below mentioned features.
Features
A Rider can share his travel info with details like from and to locations, the number of assets he can take with him etc.
Requesters can request to carry their assets, with details like from and to locations, the type of assets, number of assets that need to be carried.
A Requester should be able to see all the asset transportation requests requested by him.
A Requester should be able to see all the matching travel info shared by Riders based on his asset transportation requests locations.
A Requester can apply to carry his assets from the travel details shared by Riders from the matched results.
UI Screens for above features
Asset Transportation Request (For Requester)
Share Travel Info (For Rider)
My Asset Transportation Requests (For Requester)
Matched Asset Transportation Requests (For Requester)
Note: In the above 2 screens consider # of People column as # of Assets
APIs
1. Write an API to create an asset transport request by using the reference screen mentioned below and return valid response with respective status code (For Requester)
a. Requester should be able to request an asset transport
b. Valid asset types are LAPTOP, TRAVEL_BAG, PACKAGE
c. Valid sensitivities are HIGHLY_SENSITIVE, SENSITIVE, NORMAL
Ref: Asset Transportation Request
2. Write an API to share the travel info of the Rider by using the reference screen mentioned below and return valid response (For Rider)
a. Valid travel mediums are BUS, CAR, TRAIN
b. Rider should be able to share his travel along with the # of assets he can carry
Ref: Share Travel Info
3. Write an API to get asset transport requests created by the Requester following the reference screen mentioned below and get the response details as shown in the screen. This API should also support sorting on datetime and filtering on status and asset type. If no filter is applied, all requests should be shown by default. (For Requester)
Note:
Here NO.OF PEOPLE in the reference screen means NO.OF ASSETS
The initial status of the request should be Pending.
When the request’s end datetime is completed then the status should be Expired.
You can ignore the accepted person details column
Possible statuses are Expired and Pending. Ignore the “Confirm” status shown in the reference image.
Ref: My Asset Transportation Requests
4. Write an API to get the asset transportation requests applied by the Requester that match with the travel info shared by the Riders. The API should support pagination.
Note:
Here NO.OF PEOPLE in the reference screen means NO.OF ASSETS
The matching criteria is the from, to, date fields in their respective forms.
There can be multiple matches for each request from the Requester
The initial status of the matched Asset Transportation request should be NOT_APPLIED & gets changed to APPLIED once the requester applies for it.
Ref: Matched Asset Transportation Requests
5. As a Requester, I should be able to apply for the travel info shared by a Rider Ref: Matched Asset Transportation Requests.
Comments