Skip to content

Latest commit

 

History

History
110 lines (70 loc) · 3.46 KB

_example-task-challenge.md

File metadata and controls

110 lines (70 loc) · 3.46 KB

Simple Backend API Challenge

Creator: Arvind

Source/Author: ChatGPT

The Challenge

Create a simple backend API to manage a collection of resources (e.g., articles, tasks, or any other entity). This challenge will help to understand your thinking process and judge your skill level.

Prerequisites

  • Backend language of your choice
  • Backend library/framework of your choice (optional)
  • MongoDB (or any other database of your choice)
  • Basic knowledge of RESTful API principles

The Tech

  • MongoDB (or any other database of your choice)
  • Postman or any other API testing tool

For Beginner Level

CRUD Operations on a Simple Resource (e.g., Articles, Tasks)

  • Create Resource: Add a new resource.
  • Get All Resources: Retrieve all resources.
  • Get Resource by ID: Retrieve a specific resource by its ID.
  • Update Resource: Update a specific resource.
  • Delete Resource: Delete a specific resource.

Bonus Points

  • Search Functionality: Implement a search endpoint to find resources by title or content.

For Intermediate Level

CRUD Operations on a Simple Resource (e.g., Articles, Tasks)

  • Create Resource: Add a new resource.
  • Get All Resources: Retrieve all resources.
  • Get Resource by ID: Retrieve a specific resource by its ID.
  • Update Resource: Update a specific resource.
  • Delete Resource: Delete a specific resource.

User Authentication

  • Sign Up: Create a new user account.
  • Login: Authenticate a user and return a token.
  • Logout: Log out a user (invalidate the token).

Bonus Points

  • Get User Profile: Retrieve the authenticated user's profile
  • Search Functionality: Implement a search endpoint to find resources by title or content.

For Advanced Level

CRUD Operations on a Simple Resource (e.g., Articles, Tasks)

  • Create Resource: Add a new resource.
  • Get All Resources: Retrieve all resources.
  • Get Resource by ID: Retrieve a specific resource by its ID.
  • Update Resource: Update a specific resource.
  • Delete Resource: Delete a specific resource.

User Authentication

  • Sign Up: Create a new user account.
  • Login: Authenticate a user and return a token.
  • Logout: Log out a user (invalidate the token).

Bonus Points

  • Get User Profile: Retrieve the authenticated user's profile.
  • Token Refresh: Implement a token refresh mechanism to allow users to obtain a new token without re-authenticating.
  • Password Reset: Implement a password reset functionality.
  • Search Functionality: Implement a search endpoint to find resources by title or content.

Deadline (Optional)

  • It's optional and it's decided by the author.
  • If a timeline is given, please specify the time required for peer review.

Deliverables

  • Deploy the API on a platform like Render, Railway, or any other cloud service.
  • Submit the code in a GitHub repository and post it under your name in the Members Attempting section so others can access it for peer review and final submission.

Members Attempting

Addie Codes

  • GitHub repo (with link)

Members Completed

Denny Rollins

  • GitHub repo (with link)
  • Blog post (with link)

Going Further

  • Authentication: Learn about token-based authentication (e.g., JWT).
  • Testing: Learn about testing your API using your backend language's native testing tools