Evaluating bids

Development of a Serverless Api with Aws Chalice and Python

Published on the April 01, 2024 in IT & Programming

About this project

Open

Expectations for the Final Delivery:

A fully functional Restful api built with aws chalice in python, designed to centralize file handling and automation task information.
The api should integrate seamlessly with aws services including s3 for file storage, dynamodb for data management, and optionally sqs for message queuing, following best practices for security and performance.

Features must include a basic CRUD (Create, Read, Update, Delete) functionality for automation requests, file upload/download capabilities, and task status tracking.

Implementation of user authentication and authorization leveraging Amazon Cognito, ensuring that only authenticated users can access their respective tasks and files.

Rate limiting on api routes to prevent abuse, alongside comprehensive logging and monitoring setups using aws cloudwatch.

Automated tests covering major functionalities and documentation for the API endpoints using OpenAPI or similar tools.

The final product must be deployable with clear instructions for deployment and any necessary scripts or configuration files included.

Detailed Requirements:

Create Operation: Users can submit automation tasks along with files. Upon submission, files are stored in S3, and tasks are recorded in DynamoDB with a unique ID and status set to 'pending'.
Read Operation: Users can query the status of their task by the unique ID. The API retrieves and returns task details from DynamoDB.

Update Operation: A secured endpoint accessible by internal bots or services to update the task's status upon completion, including the option to attach output files or results.

Delete Operation: Users can delete their tasks. This should remove the record from DynamoDB and associated files from S3.

Authentication: Secure all endpoints with Amazon Cognito, with role-based access control where necessary.

Rate Limiting: Implement a basic rate limiting mechanism to prevent excessive requests from overloading the system.

Project overview

Let's make a document delivery API. My users will send documents (up to 10 documents or 62Mb) in .PDF and some information about delivery. I will store this on S3 and the data on Dynamodb. We will need a CRUD of document delivery requests. Then I have several bots that will pull requests from the API to deliver documents and update the status of requests. This delivery of orders is now ready. What I need now is the API to receive user requests and updates from bots.

Category IT & Programming
Subcategory Web development
What is the scope of the project? Medium-sized change
Is this a project or a position? Project
I currently have I have specifications
Required availability As needed
API Integrations Other (Other APIs)
Roles needed Developer

Delivery term: April 30, 2024

Skills needed