Middleware App development | NodeJS

Job ID: 34470851

Budget: ₹150,000 – ₹250,000 INR

I am looking for an experienced full stack React Js / Node Js developer to develop a Nodejs based project. The candidate needs to be experienced in architect & implement full-stack web applications, distributed computing and building scalable solutions.

I am interested in hearing proposals on the solution.
The specific tasks will be:
- Present a design for the client - server architecture
- Determine the specification of the real time collaboration which the client and server will exchange during the course of the user experience
- Proposed modules (Authentication, SSO, scheduler, Integration (Slack, Gmail, Google Calendar) & Chat)
- Suggestions / Guidelines
#Need logging system (can use Winston logger)
# We should have common interface of our own to send data for API on each success or failure responses. (Meaning it should maintain the same object pattern for both)
#Create a constant file where you can declare all your http status code error message and use from them
#It is good if we can integrate swagger with multiple endpoint support that will in long run will make life easier
#Need your opinion on weather is it advisable to go for framework such as nestjs. Please explain
#Create a folder structure to make it very clear section wise to find routes controller and models separately.
#Use Dependency injection
#Maintain DB transactions in a service
#Create a utility or library for common functions across the application to use
#All the connection and pass phrases should come from env or config file which should not be committed
#Use async await and try catch as much as possible rather than call-backs
#Make use of passport js for token-based authentication
#Establish a scripts folder for long npm scripts
#Scheduler - Internal based (every few minutes or second) - in Memory
#Publisher and Subscriber Model
Use case – Update and sync updates in task details with all stockholders
Socket.io (suggest if you have anything else in mind e.g., google pubsub)
# Take Layered Approach (Controller | Service layer | Data access layer )
#API
-Implement authentication.
-Implement authorization.
-Validate all requests.
-Encrypt all requests and responses.
-Only include necessary information in responses.
-Throttle API requests and establish quotas.
-Log API activity.
-Conduct security tests.
-Use JSON as the Format for Sending and Receiving Data
-Use Nouns Instead of Verbs in Endpoints
- Name Collections with Plural Nouns
- Use Status Codes in Error Handling
-Use Nesting on Endpoints to Show Relationships
-Use Filtering, Sorting, and Pagination to Retrieve the Data Requested
- Cache data to improve performance
-Use HTTP headers to Send Metadata
-Embrace Rate Limiting
-Use a style guide
#Use Linters
#Use gzip compression
#Use promises
#Use promises’ error handling support
#Preferred Libraries
- Nest Js
-Type ORM
-Winston logger
-Swagger
-Passport Js
-Socket.io (suggest if you have any other lib in mind)
-Bull or Agenda (que / scheduler ) (suggest if you have any other lib in mind)
#Integration to be done
1) Cloud Storage (Google Drive, DropBox, OneDrive)
2) Calendar (Google)
3)Email Notification (Gmail, outlook)
4)Bulk Email - SendGrid
5) Integration - Zapier
6) Productivity - zoon integration, office 365, google workspace, Microsoft team
7) Repository - Github, bitbucket
Related categories: MySQL Node.js Redis