Kalpas Innovations Pvt. Ltd.

Hi, We are Kalpas Innovations

We are Hiring for

Bangalore, Karnataka | Posted on 10/07/2024

We hire both, on project as well as a full time basis. For Project hiring, Kindly reach our to us at hello@kalpas.in

Node.js Developer

Salary Range: 1.8 - 5 LPA
Job Description:

We are seeking a talented and experienced Node.js Developer to join our dynamic team. As a Node.js Developer, you will be responsible for developing server-side logic, optimizing performance, and ensuring the responsiveness of our applications. You will work closely with our front-end developers and other stakeholders to deliver high-quality software solutions.

Roles and Responsibilities:
  1. Backend Development:
  •    Design, develop, and maintain efficient and scalable server-side applications using Node.js.
  •    Implement robust, reusable, and modular code to support our applications.
  1. API Development:
  • Build and maintain RESTful APIs to enable seamless communication between the front-end and back-end systems.
  • Collaborate with front-end developers to integrate user-facing elements using server-side logic.
  1. Database Management:
  • Utilize and optimize database systems, such as MongoDB, MySQL, or others, to ensure data consistency and reliability.
  • Design and implement data storage solutions as per project requirements
  1. Performance Optimization:
  • Identify and address performance bottlenecks to ensure optimal application speed and responsiveness.
  • Conduct regular code reviews and performance tuning to maintain high-quality standards.
  1. Collaboration:
  • Work closely with cross-functional teams to understand project requirements and deliver solutions that meet business objectives.
  • Collaborate with front-end developers, UI/UX designers, and other team members to ensure seamless integration of components.
  1. Security:
  • Implement security best practices to safeguard data and ensure the integrity of the applications.
  • Stay updated on the latest security trends and technologies to proactively address potential vulnerabilities.
  1. Documentation:
  • Create and maintain technical documentation for the codebase, APIs, and other relevant aspects of the projects.
  • Collaborate with the team to ensure knowledge transfer and documentation accuracy.

Requirements:

  • Minimum of 1 year of hands-on experience with Node.js development.
  • Strong proficiency in JavaScript and familiarity with ES6+ features.
  • Experience working with database systems, such as MongoDB, MySQL, etc.
  • Knowledge of RESTful API development and integration.
  • Understanding of asynchronous programming and event-driven architecture.
  • Familiarity with version control systems, preferably Git.
  • Excellent problem-solving skills and attention to detail.
  • If you are a passionate Node.js Developer with a proven track record of delivering high-quality solutions, we invite you to apply and be a key contributor to our innovative projects. Join us in shaping the future of technology!

Complete the task.

Build a bookkeeping service where there are three models namely Books, Users and Libraries. A User can either be an Author or a Borrower, a Book is written by some User (Author), and is currently owned by a certain library and is currently borrowed by a certain user (Borrower).

Books:

  • GET /api/books – Retrieve a list of all books
  • GET /api/books/:id – Retrieve details of a specific book by its ID — API should include the details of the Library, Author and Borrower associated with the Book.
  • POST /api/books – Create a new book entry
  • PUT /api/books/:id – Update details of a specific book by its ID
  • DELETE /api/books/:id – Delete a book by its ID

Users:

  • POST /api/users/register – Register a new user (both authors and borrowers)
  • POST /api/users/login – Authenticate user and generate JWT token

Borrowing:

  • POST /api/borrow – Borrow a book against a charge
  • PUT /api/return/:id – Return a borrowed book by its ID

Libraries:

  • GET /api/libraries – Retrieve a list of all libraries
  • GET /api/libraries/:id – Retrieve details of a specific library by its ID — API should include the details of all the Books owned by the Library, each Book object should include the details of the Borrower.
  • POST /api/libraries – Create a new library
  • PUT /api/libraries/:id – Update details of a specific library by its ID
  • DELETE /api/libraries/:id – Delete a library by its ID

Library Inventory:

  • GET /api/libraries/:id/inventory – Retrieve a list of books available in a specific library
  • POST /api/libraries/:id/inventory – Add a book to the inventory of a specific library
  • DELETE /api/libraries/:id/inventory/:bookId – Remove a book from the inventory of a specific library by its ID

Constraints:

  • Each Book object should have an image field that stores the reference to the Book Cover stored in Firebase.
  • All the APIs should check for authorization — All endpoints except registration and login should require a valid JWT token for access.
  • The APIs should be multilingual. i.e., the error or success messages should be in the language of choice of the user — English and Hindi being the two languages.
  • Only authenticated users with appropriate roles can add or remove books from the library inventory.


Evaluation Criteria:

  • Code quality — The code should be concise and readable.
  • API performance – Optimized API logic will be highly regarded.
  • Security & Testing — APIs should be stable and secure, the false cases should be tested and addressed accordingly.

Submission process:

  • Create a Git repository containing your code and commit your changes. Keep the Repo Public.
  • Include a README.md file with detailed instructions on how to run the application locally, including setup and usage instructions.
  • Share the repository link with the hiring team for review.
  • Create a postman collection and share the Import URL in the form below.
  • Host the application on freely available platforms and share the API endpoint in the form below.

Apply now for the job now!

Node JS Form