- SendIT is a courier service that helps users deliver parcels to different destinations. SendIT provides courier quotes based on weight categories.
- Users can create an account and log in.
- Users can create a parcel delivery order.
- Users can change the destination of a parcel delivery order.
- Users can cancel a parcel delivery order.
- Users can see the details of a delivery order.
- Admin can change the status and present location of a parcel delivery order.
- The application should display a Google Map with Markers showing the pickup location and the destination.
- The application should display a Google Map with a line connecting both Markers (pickup location and the destination).
- The application should display a Google Map with computed travel distance and journey duration between the pickup location and the destination.
- The user gets real-time email notification when Admin changes the status of their parcel.
- The user gets real-time email notification when Admin changes the present location their parcel.
- The user can only cancel or change the destination of a parcel delivery when the parcel’s status is yet to be marked as delivered.
- Only the user who created the parcel delivery order can cancel the order.
Project management (Agile) https://www.pivotaltracker.com
Version control (Git) https://git-scm.com/
Clone the repository below
git clone https://github.com/kelvinndmo/send.git
virtualenv env --python=python3.6
source env/bin/activate
pip install -r requirements.txt
$ export FLASK_APP="run.py"
$ export FLASK_DEBUG=1
$ export APP_SETTINGS="development"
$ flask run
Method | Endpoint | Description | Roles |
---|---|---|---|
POST | /api/v1/auth/signup | sign up a user | users |
POST | /api/v1/parcels | post a parcel order | users |
GET | /api/v1/orders/users//parcels | Get as specific users orders | users/admin |
GET | /api/v1/parcels/acceptedorders | get accepted parcel orders | User |
GET | /api/v1/parcels/declined | return a list of declined orders | user |
PUT | /api/v1/parcels/1/declined | Decline a specific order | Admin |
PUT | /api/v1/parcels//cancel | cancel a spefic order | Users |
POST | /api/v1/auth/login | Login to the application | Users/Admin |
GET | /api/v1/parcels/ | Get a specific order by id | user/Admin |
GET | api/v1/parcels/intransit | get orders in transit | Admin/users |
DELETE | /api/v1/parcels/ | delete a specific order | Admin/users |
PUT | /api/v1/parcels//ompleted | complete an order | Admin |
PUT | /api/v1/parcels//intransit | approve an order to be in transit | Admin |
PUT | /api/v1/parcels//approved | approve a pending order | Admin |
GET | /api/v1/parcels | Get a list of all orders | Admin/users |
nosetests
- Testing with coverage
nosetests --with-coverage --cover-package=app
Kelvin Onkundi Ndemo
MIT