Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

added repository templates #10

Merged
merged 4 commits into from
Jul 28, 2024
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions solutions/task-template-submission.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Angular Music Player App Submission
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

issue: Rename to match example challenge

Suggested change
# Angular Music Player App Submission
# Node.js Simple API Submission


## Submission Link

Name - Link to Github repo / article
77 changes: 77 additions & 0 deletions task-challenges/task-template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
# Backend API Challenge: Node.js Simple API

**Creator :** XYZ

## Prerequisites

- Basic JavaScript and Node.js
- Express.js
- MongoDB (or any other database of your choice)
- Basic knowledge of RESTful API principles

## The Tech

- Node.js
- Express.js (for creating the API)
- MongoDB (for storing data; you can use Mongoose for easier interaction)
- Postman or any other API testing tool

## 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.

### Endpoints and Features

#### 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

#### For Beginner Level

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

#### For Intermediate Level

**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).
**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

**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).
**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.
Arvind644 marked this conversation as resolved.
Show resolved Hide resolved

## Deadline

- Its optional and its decided by the author.
- If timeline is given, please specify the time required for peer review.

## Deliverables (Optional)

- Deploy the API on a platform like Render, Railway, or any other cloud service.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

suggestion: Add hyperlink to Render and Railway

- Submit the code in a GitHub repository.
- Create a `README` in solutions directory with the name `task-template-solution.md` , so the person doing the challenge can post their name with link to their solution. We will take input from the repo for peer review and final submission.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

meg being anal

Suggested change
- Create a `README` in solutions directory with the name `task-template-solution.md` , so the person doing the challenge can post their name with link to their solution. We will take input from the repo for peer review and final submission.
- Create a `README` in solutions directory with the name `task-template-solution.md`, so the person doing the challenge can post their name with link to their solution. We will take input from the repo for peer review and final submission.


### Code submission

[Backend API submission readme](../solutions/task-template-submission.md)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

more meg being anal

Suggested change
### Code submission
[Backend API submission readme](../solutions/task-template-submission.md)
### Code Submission
[Backend API submission readme](../solutions/task-template-submission.md)


## Going Further

- **Authentication:** Learn about token-based authentication (e.g., JWT).
- **Testing:** Learn about testing your API using tools like Mocha, Chai, or Jest