We are looking for an experienced professional to develop an API for our application.
The application allows consumers to submit a request for a “product”. The product has 3 sizes. The consumer selects 1 size, delivery options: current location or address, and submits a request. All providers within a 15 mile range of the consumer receives a push notification that their “product” has been requested. A provider can accept the request by clicking a button in the app to respond. Once the service is accepted, the provider will begin delivery. After the product is delivered, the provider uses the application to click a button that completes the transaction and payment is automatically made. The consumer is notified that payment was made and is asked to provide a rating of the provider.
The scope of the effort is to provide the API and associated database services only.
Must use the serverless framework (https://serverless.com/)
Must use DynamoDB
Must provide a working prototype of the API that can be run locally. Consider using
Authentication, and Authorization Service: Should use token based authentication and support Facebook and Google OAuth2.0. The developer should use this boilerplate:
User Registration Service: Allow users to provide the following information - email address, first name, last name, mobile number
Order Service: Allows users to submit orders, cancel orders, and list historical orders. Orders can be fulfilled, cancelled, etc.
Chat Service: provides a messaging/chat service
The users types in a message, hits ENTER, and the app publishes the message to an SNS Topic.
A Lambda function is triggered by the SNS message, which gets the contents of the message, and...
Stores the message in a DynamoDB table
The process of adding a new chat message to the DynamoDB table triggers another Lambda function. This requires the currently-in-preview DynamoDB Streams feature. This second Lambda function reads the last 20 messages from DynamoDB, and...
Writes them to an S3 object in JSON format
The app polls the S3 object every second, and updates the chat box with any new messages it finds.
Push Notification Service: provides a notification services that allows the app to send push notifications when user requests a product, when product has been delivered, and when payment has been made.
Email Service: provides ability for the app to send an email to the user when a user has registered, to the provider when a product has been requested and is within the 15 mile radius, and a transaction has been completed
Payment Service: Provide a marketplace
Location Service: provides a geospatial service that allows the app to send the user’s location and show the location of the provider when they are in route.