{"id":28720080,"url":"https://github.com/albumprinter/dotnet-engineer-assignment","last_synced_at":"2025-06-15T06:06:47.393Z","repository":{"id":43877552,"uuid":"317283815","full_name":"albumprinter/dotnet-engineer-assignment","owner":"albumprinter","description":"Test assignment for Dotnet engineers hiring process","archived":false,"fork":false,"pushed_at":"2023-12-04T12:17:59.000Z","size":39,"stargazers_count":3,"open_issues_count":1,"forks_count":0,"subscribers_count":29,"default_branch":"master","last_synced_at":"2024-03-15T19:57:52.465Z","etag":null,"topics":["area-create","build-na","code-scanning-not-supported","deploy-na","domain-documentation","hosting-aws","owner-beam","type-assets"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/albumprinter.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-11-30T16:35:32.000Z","updated_at":"2024-01-04T10:13:05.000Z","dependencies_parsed_at":"2022-07-19T01:02:31.942Z","dependency_job_id":null,"html_url":"https://github.com/albumprinter/dotnet-engineer-assignment","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/albumprinter/dotnet-engineer-assignment","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/albumprinter%2Fdotnet-engineer-assignment","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/albumprinter%2Fdotnet-engineer-assignment/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/albumprinter%2Fdotnet-engineer-assignment/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/albumprinter%2Fdotnet-engineer-assignment/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/albumprinter","download_url":"https://codeload.github.com/albumprinter/dotnet-engineer-assignment/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/albumprinter%2Fdotnet-engineer-assignment/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259929974,"owners_count":22933536,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["area-create","build-na","code-scanning-not-supported","deploy-na","domain-documentation","hosting-aws","owner-beam","type-assets"],"created_at":"2025-06-15T06:06:46.616Z","updated_at":"2025-06-15T06:06:47.371Z","avatar_url":"https://github.com/albumprinter.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cimg src=\"default_albelli.nl.jpg\" width=\"200\"\u003e\n\n# .NET Software Engineer Technical Assignment\n\n## Things we look for in this test\n\nWe expect the candidate to show us their skills in building testable and maintainable software with design and architecture in mind using industry best practices.\nWe value _simple_ more highly than _complex_, _working_ is better than _nice_. Readability matters.\n\n## Business flow\n\nA customer can order 1 or multiple items.  \nFor example, an order could consist of a photo book and 2 canvases.  \nAfter the order is produced, it is delivered to one out of thousands of pickup points across the country.  \nThe package is put in a bin on a shelf at the pickup point. The bin has to be sufficiently wide for the package.  \nSince bins are reserved upfront, we need to calculate the minimum bin width required for the order at the moment of order creation.  \n\n## Assignment\n\nCreate a .NET Web API that accepts an order, stores it, and responds with the minimum bin width.  \nWe also should be able to get back all the information that is known about the order by its ID.  \nCover code with tests where you find it important.  \n\nOrder information submitted by customers:\n\n* `OrderID`\n* `ProductType` and `Quantity`. // _Product type can be 1 of type_ `photoBook`, `calendar`, `canvas`, `cards`, `mug`\n\nOrder information retrievable from the Web API by OrderID:\n* `ProductType` with quantity\n* `RequiredBinWidth` in millimeters (mm)\n\n## Simplified width calculation rules\n\nItems are put in the package next to each other (for simplicity of the test assignment).  \nFor example, 1 photo book (`0`), 2 calendars (`|`) and 1 mug (`.`) should look like this in the package:\n`[0||.]`\n\nBut a mug has 1 detail: it can be stacked onto each other (up to 4 in a stack). So, an order with 1 photo book, 2 calendars, and 2 mugs should be positioned like this:\n`[0||:]`\n\nSo the width of the 2 packages above is exactly the same. It would be still the same even if we add 2 more mugs (4 in total) but would increase if we add a 5th mug.\n\nPackage width occupied by 1 product unit per type:\n\n* 1 `photoBook` consumes `19 mm` of package width\n* 1 `calendar` — `10 mm` of package width\n* 1 `canvas` — `16 mm`\n* 1 set of greeting `cards` — `4.7 mm`\n* 1 `mug` — `94 mm`\n\n## Source Code\n\nYou should create a public GitHub and let us know when you've completed the exercise.\n\n## Tools and libraries\n\nYou are free to use any additional third-party libraries and frameworks.\n\n## Additional information\n\nThe authentication/authorization of the API is outside of scope.\nFeel free to improve the application as **you** see fit (e.g. no logging but some tests are nice).  \nIf you have any questions please reach out to us.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falbumprinter%2Fdotnet-engineer-assignment","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falbumprinter%2Fdotnet-engineer-assignment","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falbumprinter%2Fdotnet-engineer-assignment/lists"}