{"id":27275306,"url":"https://github.com/linuxto5re/cytiva-assignment-","last_synced_at":"2026-04-13T23:32:32.470Z","repository":{"id":283452228,"uuid":"951811700","full_name":"LinUxTo5re/Cytiva-Assignment-","owner":"LinUxTo5re","description":"This repository contains the solution for the Danaher/Cytiva interview assignment. The solution implements a System Class that provides a simplified interface to work with two subsystems (subsystemHold and subsystemFire). The client interacts with the System Class without knowing the underlying complexities of the subsystems.","archived":false,"fork":false,"pushed_at":"2025-04-05T06:49:32.000Z","size":29345,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-05T07:28:22.626Z","etag":null,"topics":["csharp","dotnet-core","javascript","reactjs","rest-api"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"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/LinUxTo5re.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-03-20T09:29:52.000Z","updated_at":"2025-04-05T06:49:35.000Z","dependencies_parsed_at":null,"dependency_job_id":"a3125cd9-c0fe-43d4-a494-6ace7533bc3e","html_url":"https://github.com/LinUxTo5re/Cytiva-Assignment-","commit_stats":null,"previous_names":["linuxto5re/cytiva-assignment-"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LinUxTo5re%2FCytiva-Assignment-","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LinUxTo5re%2FCytiva-Assignment-/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LinUxTo5re%2FCytiva-Assignment-/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LinUxTo5re%2FCytiva-Assignment-/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LinUxTo5re","download_url":"https://codeload.github.com/LinUxTo5re/Cytiva-Assignment-/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248433856,"owners_count":21102681,"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":["csharp","dotnet-core","javascript","reactjs","rest-api"],"created_at":"2025-04-11T15:48:26.637Z","updated_at":"2026-04-13T23:32:32.434Z","avatar_url":"https://github.com/LinUxTo5re.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Cytiva Assignment Solution\n\n## Overview\nThis repository contains the solution for the **Danaher/Cytiva** interview assignment. The solution implements a **System Class** that provides a simplified interface to work with two subsystems (**subsystemHold** and **subsystemFire**). The client interacts with the System Class without knowing the underlying complexities of the subsystems.\n\n## Problem Statement\nThe task involves designing a **System Class** that acts as a **Facade** for the two subsystems:\n\n### Subsystems\n1. **subsystemHold**\n   - `operation1()` → Ready!\n   - `operationN()` → Hold!\n   - `operationEnd()` → Stop!\n\n2. **subsystemFire**\n   - `operation1()` → Ready!\n   - `operationZ()` → Fire!\n   - `operationEnd()` → Stop!\n\n### System Class\n- Provides a simple interface for the client.\n- Delegates client requests to appropriate subsystem methods.\n- Manages the lifecycle of subsystems.\n\n### Client Class\n- Interacts only with the System Class.\n- Does not know about the existence of subsystems.\n- Requests actions (`hold`, `fire`, `stop`) through the System Class.\n\n### Expected Output\n```\nSystem initializes subsystems:\nsubsystemHold: Ready!\nsubsystemFire: Ready!\nSystem orders subsystems to perform the action:\nsubsystemHold: Hold!\nSystem orders subsystems to perform the action:\nsubsystemFire: Fire!\nSystem orders subsystems to perform the action:\nsubsystemHold: Stop!\nsubsystemFire: Stop!\n```\n\n## Implementation Details\n- **Backend:** .NET Core API\n- **Frontend:** ReactJS (Client Component)\n- **API Endpoint:** `http://localhost:5128/api/system?action={action}`\n- **Actions Supported:** `hold`, `fire`, `stop`\n- **Data Handling:** JSON response with action status messages\n\n## Getting Started\n### Prerequisites\n- .NET SDK\n- Node.js \u0026 npm (for frontend)\n- Visual Studio Code (Recommended IDE)\n\n### Setup Instructions\n1. **Clone the Repository**\n   ```sh\n   git clone https://github.com/LinUxTo5re/Cytiva-Assignment-\n   cd Cytiva-Assignment-\n   ```\n2. **Run Backend API**\n   ```sh\n   cd MyApi\n   dotnet run\n   ```\n3. **Run React Client**\n   ```sh\n   cd FrontendUI\n   npm install\n   npm start\n   ```\n\n## API Usage\n| Method | Endpoint | Description |\n|--------|---------|-------------|\n| GET | `/api/system?action=hold` | Holds the subsystem |\n| GET | `/api/system?action=fire` | Fires the subsystem |\n| GET | `/api/system?action=stop` | Stops both subsystems |\n\n## Screenshot\n![image](https://github.com/user-attachments/assets/c909b8be-27f9-47e3-ba94-3ab26b0fffa5)\n\n## Author\n**Chaitanyaa Ajabe**  \nSolution developed for **Danaher/Cytiva** interview assignment.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flinuxto5re%2Fcytiva-assignment-","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flinuxto5re%2Fcytiva-assignment-","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flinuxto5re%2Fcytiva-assignment-/lists"}