Evaluating bids

Develop Apis for Crud operations using Aws Cognito / Api Gateway / Lambda (nodejs) / Rds (Mysql)

Published on the April 20, 2022 in IT & Programming

About this project

Open

I need to develop user register/login and CRUD APIs for a real estate web app, using the following AWS services.

Cognito
API Gateway
Lambda (Node.js)
RDS (MySQL)

What you will need to do:

- Create Node.js Lambda functions to insert, read, update, delete and list data from RDS MySQL database
- Create Rest api methods in the api gateway that will expose functionality and execute the respective lambda functions
- user registration and oauth login, integrated with cognito. On user registration, a row will be added in the users table in the database. This row will need to relate with the user profile on Cognito somehow. I'm not sure how this will work, and it will need to be discussed with you.
- Some API methods will need user authorization, using the user access token from Cognito. I will need advice from you on that matter. By authorization, I refer not only if an user has a valid token, but retrieve user data (openid connect?), if it has permission to execute a method, or read/update/delete a certain data row. I'm not sure if authorization must be verified in the gateway or lambda (or both).
- Real Estate properties will receive images to be stored in a S3 bucket.

Some notes:

- I will provide Postman collections for the APIs to be created
- Database is already set. You won't need to do anything in the database structure. I will do any changes needed.
- This is my first serveless project using AWS services, so any advice will be very welcome
- This is a long term project. Initial APIs will need maintenance and new ones will be developed in the next months.

Here is a briefing of the possible initial APIs (subject to change).

POST /usuario - Register an user
GET /usuario/[id] - Return an user data
PUT /usuario/[id] - Update an user data
DELETE /usuario/[id] - Delete an user
POST /usuario/lista/ - Return a list of users based on body params filters

POST /imovel - Register a real estate property and images
GET /imovel/[id] - Return a real estate property data and images
PUT /imovel/[id] - Update a real estate property data and images
DELETE /imovel/[id] - Delete a real estate property data and images
POST /imovel/lista/ - Return a list of real estate properties based on body params filters

POST /imovel/image - Add images to real estate property
GET /imovel/image/[id] - Return a real estate image data
PUT /imovel/[id] - Update a real estate image
DELETE /imovel/image/[id] - Delete a real estate property image
GET /imovel/image/lista/[id] - Return the list of image from a real estate property

POST /imobiliaria - Register a real estate agency
GET /imobiliaria/[id] - Return a real estate agency data
PUT /imobiliaria/[id] - Update a real estate agency data
DELETE /imobiliaria/[id] - Delete a real estate agency
POST /imobiliaria/lista/ - Return a list of real estate agencies based on body params filters

POST /corretor - Register a real estate agent
GET /corretor/[id] - Return a real estate agent data
PUT /corretor/[id] - Update a real estate agent data
DELETE /corretor/[id] - Delete a real estate agent
POST /corretor/lista/ - Return a list of real estate agents based on body params filters


On your proposal, estimate how much hours of development you think will be initially needed based on what was exposed in this job description, and when you can start.

Category IT & Programming
Subcategory Web development
Is this a project or a position? Project
I currently have I have specifications
Required availability Part time
API Integrations Cloud Storage (Dropbox, Google Drive, etc.), Other (Other APIs)
Roles needed Developer

Project duration More than 6 months

Skills needed

Other projects posted by M. C. R. S.