The backend assessment task focuses on evaluating the candidates' proficiency in designing, troubleshooting and debugging backend systems
Candidates will be tasked with setting up and troubleshooting a broken codebase, thus demonstrating their understanding of key concepts such as database management, API design, server-side scripting, and system architecture. The assessment will assess candidates' ability to navigate and maintain a codebase.
Through this task, candidates will showcase their problem-solving skills and their capacity to deliver high-quality backend solutions that meet specified requirements and can scale with growing user demands.
- Clone the repo
git clone https://github.com/easepay/backend-assessment.git assessment
cd assessment
- Install dependencies
npm install
- run the application
npm run start:dev
-
fix the bugs See the task section
-
commit and save
- Create a
.env
file from the env template - Ensure the application starts successfully
- Ensure the application base URL returns
"Hey! Application up and Running!"
- Run the Database Migrations
- Make a request to
http://localhost:3000/v1/waitlist
, to add a user to the waitlist. The request body takes "email" and "fullname" fields - Implement a
PUT
endpoint and update the email of the previously added user - The
GET
request returns incorrect data, fix the request to theGET::http://localhost:3000/v1/[email protected]
to fetch the user's record - Remove
data.id
property from theGET::http://localhost:3000/v1/[email protected]
HTTP response - Make a
DELETE
request to thehttp://localhost:3000/v1/[email protected]
to remove the user's record - Review changes
write a bash script that automates the deployment of the above application to a production environment
This will be an oral / written conversation to gauge your understanding of Nextjs Fundamentals
-
How does NestJS handle dependency injection, and what are the benefits? Can you explain the difference between a provider and an injectable in NestJS??
-
Can you walk me through how you would Dockerize a NestJS application that uses a separate API gateway and multiple microservices? How would you handle environment variables and configuration for each service?
-
How would you use bash scripting to automate the testing and linting of a NestJS application?
-
What is SQL injection, and how can it be prevented in NestJS?