Skip to content
This repository was archived by the owner on Apr 15, 2026. It is now read-only.

Dvurechensky-Test-Tasks/RiskStrategyTask

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

227 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

RiskStrategyTask

Static Badge

๐Ÿ”ฎ Test Assignment for Strategy Risk Company (Vladikavkaz)

๐ŸŽฏSCAM vacancy on HeadHunter

๐ŸŒ Language: ๐Ÿ‡ท๐Ÿ‡บ Russian | โœ… ๐Ÿ‡บ๐Ÿ‡ธ English (current)

โœจ Table of Contents

โœจ Run

๐Ÿš€ System Requirements (Runtime):

  1. Visual Studio 2022

๐Ÿš€ System Requirements (Development):

required for embedded Grunt functionality in the project

  1. Extract the node_modules folder from the project
  2. In PowerShell, in the project root, run:
cmd /c mklink /D node_modules node_modules
  1. Restart the project

โœจ Technical Specifications

  • Backend

    • ASP NET MVC
  • Frontend

    • TypeScript
  • Database

    • EntityFrameworkCore

โœจ Task Requirements

The text in the "Company Name" column should be a link that opens "Details" for its object

  1. The text in the "Company Name" column must be a link that opens company "Details"

    Use EntityFramework, store data in memory (add code to generate initial data at application startup)

  2. Use EntityFramework and store data in memory (add code to create initial data on application startup)

    Set a fixed width for groups in "Details"

  3. Set a fixed width for groups in the "Details" section

    Use CSS Flex to align groups in "Details", there should be 1 column of groups if browser window is narrow

  4. Use CSS Flex to align groups in "Details"; there should be 1 column if the browser window is narrow

    Use CSS Grid to align items inside groups in "Details"

  5. Use CSS Grid to align elements inside groups in "Details"

    Avoid duplication of CSS and HTML markup that generates "Details" in C#/markup code (each group should have the same layout for 'caption', 'toolbar', and 'content')

  6. Avoid duplication of CSS and HTML markup that generates "Details" in C#/markup code (each group should share the same layout for 'caption', 'toolbar', and 'content')

    Implement behavior for 'Refresh' button: reload data from server and recreate DOM in browser

  7. Implement 'Refresh' button behavior: reload data from the server and rebuild the DOM in the browser

    Adjust the "Employees" group to be nearly twice as wide as other groups while maintaining vertical alignment

  8. Adjust the "Employees" group to be nearly twice as wide as other groups, keeping vertical alignment

    Don't render grids on the server side. Instead, render an empty grid and perform a new fetch request on page load, then build rows in JavaScript in the browser. Implement necessary server-side API

  9. Do not render grids on the server side. Instead, render an empty grid and perform a fetch request when the page loads, building rows in JavaScript in the browser. Implement the required server-side API

๐Ÿค– Implementation Result

๐Ÿ‘จ๐Ÿฝโ€๐Ÿ’ป Desktop Version

๐Ÿ’ซ Main ๐Ÿ’ซ

๐Ÿ’ซ Details ๐Ÿ’ซ

๐Ÿ‘จ๐Ÿฝโ€๐Ÿ’ป REST API created for group data population

๐Ÿ‘จ๐Ÿฝโ€๐Ÿ’ป Example of filled ๐Ÿ’ซDetails๐Ÿ’ซ

๐Ÿ‘จ๐Ÿฝโ€๐Ÿ’ป Mobile Version Example ๐Ÿ’ซDetails๐Ÿ’ซ

๐Ÿ’ซ 870px ๐Ÿ’ซ

๐Ÿ’ซ 500px ๐Ÿ’ซ

๐Ÿ‘พ Important Notes

  • The task did not specify the behavior of edit buttons or the add button logic
  • The task did not impose any restrictions on the technology stack for faster development
  • There were no requirements regarding complexity or simplicity, nor a strict format for implementation
  • As a bonus, TypeScript support and automatic minification of JavaScript and CSS were implemented
  • As a bonus, an API capable of processing batch data was implemented

โœจDvurechenskyโœจ