A terribly written Web API project that can be used as a test for potential C# applicants. It's terrible on purpose, so that you can show us how we can improve it.
Fork this repository and make your changes to this project to make it better. Simple. There are no rules, except that we know that this project is very badly written, on purpose. So, your job, should you choose to accept it, is to make the project better in any way you see fit.
To set up the project:
- Visual Studio 2015 is preferred.
- Open in VS.
- Restore nuget packages and rebuild.
- Run the project.
There should be these endpoints:
GET /products
- gets all products.GET /products?name={name}
- finds all products matching the specified name.GET /products/{id}
- gets the project that matches the specified ID - ID is a GUID.POST /products
- creates a new product.PUT /products/{id}
- updates a product.DELETE /products/{id}
- deletes a product and its options.GET /products/{id}/options
- finds all options for a specified product.GET /products/{id}/options/{optionId}
- finds the specified product option for the specified product.POST /products/{id}/options
- adds a new product option to the specified product.PUT /products/{id}/options/{optionId}
- updates the specified product option.DELETE /products/{id}/options/{optionId}
- deletes the specified product option.
All models are specified in the /Models
folder, but should conform to:
Product:
{
"Id": "01234567-89ab-cdef-0123-456789abcdef",
"Name": "Product name",
"Description": "Product description",
"Price": 123.45,
"DeliveryPrice": 12.34
}
Products:
{
"Items": [
{
// product
},
{
// product
}
]
}
Product Option:
{
"Id": "01234567-89ab-cdef-0123-456789abcdef",
"Name": "Product name",
"Description": "Product description"
}
Product Options:
{
"Items": [
{
// product option
},
{
// product option
}
]
}
Create a pull request back into this repository and describe, in as much detail as you feel necessary, what you have done to improve this project. We'll then take it from there and review.
Good luck!