C#/.Net Developer

Your task is to design and create web application that will serve as a simple license management system.

Basic technical requirements:

  • Your solution should consist of three layers:
  1. Presentation layer – web application (ASP.NET web forms, MVC etc. – your choice). No database connection here, use calls to business layer (web service) instead.
  2. Business layer – web service (ASP.NET web services, WCF, WebAPI etc. – once again, the choice is yours). Covers connection to the database layer.
  3. Database layer – data should be stored in relational database engine (Microsoft SQL Server Express is preferred here), although other persistent storage, such as file, is allowed as well.
  • Presentation layer and business layer should not be in the same Visual Studio project – create two separate projects, one for web application and one for web service.
  • All the functionality should be implemented in C# programming language, using .NET framework. Avoid using using third-party components (OR mappers or visual components for example).

Business requirements

  • Database should store the licenses in this structure:
  1. Date of creation
  2. Customer name
  3. Customer email
  4. License key (10 chars long string)
  5. Price
  • Populate the license catalogue with at least 50 records to allow paging (see below). Include DDL and data population scripts in your solution.
  • Access to the application should be protected by using username/password authentication. Store the user passwords in a secure way.
  • After succesful login, user will be presented with an interface, which allows to search the licenses stored in database, using these parameters:
  1. Customer email address
  2. License key
  • Results of the search will be presented as paged list with 10 records on page
  • User can consequently view and edit the records shown (single-page approach, modal windows, whatever suits you)

Evaluation

Your solution will be evaluated in various aspects, particularly:

  • Purity of the code – readability and consistency, using best practices
  • Solution architecture
  • UI design

Please send your solution to: challenge@joineset.com