100% found this document useful (1 vote)
94 views2 pages

Dot Net Assignment - Techdome

The document outlines an assignment to create a .NET Core Web API with CRUD functionality for todo items. The API should include an AuthController for registration and login with JWT token authentication. A TodoController requires authentication and includes APIs for getting, creating, updating and deleting todo items. The API code should be uploaded to GitHub along with documentation. Bonus points include deploying the API with Swagger documentation and GitHub actions.

Uploaded by

rd8029386
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (1 vote)
94 views2 pages

Dot Net Assignment - Techdome

The document outlines an assignment to create a .NET Core Web API with CRUD functionality for todo items. The API should include an AuthController for registration and login with JWT token authentication. A TodoController requires authentication and includes APIs for getting, creating, updating and deleting todo items. The API code should be uploaded to GitHub along with documentation. Bonus points include deploying the API with Swagger documentation and GitHub actions.

Uploaded by

rd8029386
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 2

linkedin.

com/company/techdome-solutions
techdome.io

Assignment

As a part of selection process, please complete the following assignment.


Summary

You need to create a .NET Core based Web API with following specification.

1. It should be based on .NET Core 6.0 or above

2. You need to use a InMemory database which should be accessed via Entity Framework Core

3. There will be two controllers

o TodoController : Should have all the CRUD APIs


▪ /get/{id} : Get single todo item
▪ /getall : Get all the todo items
▪ /put/{id} : Update single Todo item
▪ /create/{id} : Create new todo item
▪ /delete/{id} : Delete a todo item
o AuthController : Should have APIs related to registration and login

4. TodoController will be protected via [Authorize] header and only authenticated users will have
access to the controller. There will be two roles in the database for user with different set of access.

o User: These users will be able to get list of todo items, when accessing other APIs, they should get a
HTTP 401: Unauthorized error
o Admin: Admin users will be able to access all the APIs

5. In AuthController as response to successful login, a JWT token will return in response. The JWT token
should have following fields encoded:

o First Name
o Last Name
o Email
o IsActive
o Roles

6. The code should be uploaded to a public GitHub repository and its link should be shared with the
moderator or interviewer.

While coding please keep following things in mind:

• Please document all the controllers and APIs by using proper comments throughout the application.
• Proper indentation and naming of the variables is highly appreciated.
• Verbose commit messages will be appreciated.
• A ReadMe file in the GitHub repo root folder explaining what the API does and small
documentation of each API can be beneficial.

[email protected]
+91-7987249341 pg. 0
203 Vikram Heights, 25/2, Yashwant Niwas Road, Near SBI Bank, Indore (M.P.), 452009
linkedin.com/company/techdome-solutions
techdome.io

• For any doubt or questions, contact your interviewer.

Bonus Points
These are not must-have part of the assignment but good to have. Having these things implemented can
further help to prioritize your profile as well as can help you score better opportunity at Techdome.
• The application is deployed to a accessible endpoint with Swagger documentation.
• The GitHub repository has GitHub actions for automatic deployment.
• Comments inside the code are welcome to explain overall execution.
• A proper readme file with running instructions.
• Configurations stored as environment variables.
• Containerization of the application.

[email protected]

pg. 1
Hyderabad / Indore

You might also like