- Completeness of implementation according to the requirements.
- Simplicity and readabilty of code.
- Maintainability of the solution.
The assignment simulates system with following workflow.
- External actor (User) sends a REST request to the
FourC.Worker.Api
endpoint at/v1/worker
FourC.Worker.Api
handles web request by posting it to the queue (MSMQ)- A backend process
FourC.Worker.Backend
reads messages from the queue and processes the message by creating record in the database. The above action is done in the context of a distributed transaction that requires MSDTC.
- Install Git for Windows
- Install .NET Core SDK
- Install Microsoft .NET Framework 4.6.1 Developer Pack
- Clone the https://github.com/Teletrax/CIAssignment.git repository into some folder
- Restore .NET Core Package
- Build / Publish (Release Mode)
- FourC.Worker.Api
- FourC.Worker.Backend
- Create ZIP archive with published artifacts (3.i, 3.ii)
- Install MSDTC
- Install MSMQ
- Install IIS
- Install ASP.NET Core
- Install SQL Server 2014/2016 (Express)
- Extract ZIP archive (From Phase 2 Step 4)
- Run SQL script that will create the database and table structures. (Located inside the Scripts folder on repository)
- Configure and host the REST endpoint (Web Application) on IIS
- Configure and start (in background) the backend application
To test if the application is working properly you can use Postman and perform a test request to the REST API:
POST http://localhost/v1/worker
Content-Type: application/json
Body:
{
"user":"Test",
"content":"Test",
"timestamp":"2016-12-16T02:00:00Z"
}
Connect to the SQL Server instance you created and perform a select on Work table, if this table has contents the application is successfully deployed.
- We suggest you to install/use the Windows Server into a new VM Machine that you need to create using the evaluation version of Windows and can be directly downloaded at Microsoft website.
- The REST endpoint (Web Application/API) should be configured to run on "localhost" on port 80.
- You need to do some research and come up with a PowerShell script that connects to SQL Server and runs the SQL Script we provided to setup the database table structure.
- You can send us an e-mail (fabricio.polonio at 4cinsights.com, bulat.gafurov at 4cinsights.com) if you have any question.
- Given a clean Windows 2012R2/2016 Server machine, this powershell script should run and install/deploy all those components without errors.
- You can also suggest improvements to the build pipeline or point to security issues.
- You can "Fork" this repository on Github and commit your solution into the some folder, ex: "Solution".