# Technology Stack

### UI

The table below outlines the frameworks, tools, and technologies employed by Inji Verify UI:

<table><thead><tr><th width="128.8323974609375">Tool/Technology</th><th width="115.8260498046875">Version</th><th width="366.422607421875">Description</th><th>License</th></tr></thead><tbody><tr><td><a href="https://react.dev/">React JS</a></td><td>18.2.0</td><td>React lets you build user interfaces out of individual pieces called components.</td><td><a href="https://github.com/facebook/react/blob/main/LICENSE">MIT</a></td></tr><tr><td><a href="https://mui.com/material-ui/">Material UI</a></td><td>6.1.2</td><td>Material UI is <strong>an open-source React component library that implements Google's Material Design</strong>.</td><td><a href="https://github.com/mui/material-ui/blob/master/LICENSE">MIT</a></td></tr><tr><td><a href="https://www.npmjs.com/package/@testing-library/react">@testing-library/react</a></td><td>13.4.0</td><td>The React Testing Library is a very lightweight solution for testing React components</td><td><a href="https://github.com/testing-library/react-testing-library/blob/main/LICENSE">MIT</a></td></tr><tr><td><a href="https://jestjs.io/docs/tutorial-react">Jest</a></td><td>29.7.0</td><td>Jest is <strong>a well-known JavaScript testing framework</strong> and is extensively used to test React applications</td><td><a href="https://github.com/jestjs/jest/blob/main/LICENSE">MIT</a></td></tr><tr><td><a href="https://nodejs.org/en">Node</a></td><td>v18.19.0</td><td>Node.js is a free, open-source, cross-platform JavaScript runtime environment that lets developers create servers, web apps, command line tools and scripts.</td><td></td></tr><tr><td><a href="https://www.typescriptlang.org/">Typescript</a></td><td>4.9.5</td><td>TypeScript is a strongly typed programming language that builds on JavaScript, giving you better tooling at any scale.</td><td><a href="https://github.com/microsoft/TypeScript/blob/main/LICENSE.txt">Apache License 2.0</a></td></tr></tbody></table>

### **Inji Verify SDK**

The table below outlines the frameworks, tools, and technologies employed by Inji Verify SDK:

<table><thead><tr><th width="131.0625">Tool/Technology</th><th width="110.51495361328125">Version</th><th width="375.00640869140625">Description</th><th>License</th></tr></thead><tbody><tr><td><a href="https://react.dev/">React JS</a></td><td>18.3.1</td><td>React lets you build user interfaces out of individual pieces called components.</td><td><a href="https://github.com/facebook/react/blob/main/LICENSE">MIT License</a></td></tr><tr><td><a href="https://www.npmjs.com/package/@testing-library/react">@testing-library/react</a></td><td>16.3.0</td><td>The React Testing Library is a very lightweight solution for testing React components</td><td><a href="https://github.com/testing-library/react-testing-library/blob/main/LICENSE">MIT</a></td></tr><tr><td><a href="https://jestjs.io/docs/tutorial-react">Jest</a></td><td>29.7.0</td><td>Jest is <strong>a well-known JavaScript testing framework</strong> and is extensively used to test React applications</td><td><a href="https://github.com/jestjs/jest/blob/main/LICENSE">MIT</a></td></tr><tr><td><a href="https://nodejs.org/en">Node</a></td><td>v18.19.0</td><td>Node.js is a free, open-source, cross-platform JavaScript runtime environment that lets developers create servers, web apps, command line tools and scripts.</td><td></td></tr><tr><td><a href="https://www.typescriptlang.org/">Typescript</a></td><td>4.9.5</td><td>TypeScript is a strongly typed programming language that builds on JavaScript, giving you better tooling at any scale.</td><td><a href="https://github.com/microsoft/TypeScript/blob/main/LICENSE.txt">Apache License 2.0</a></td></tr></tbody></table>

### **Service**

The table below outlines the frameworks, tools, and technologies employed by Inji Verify backend Service:

<table><thead><tr><th width="124.32952880859375">Tool/Technology</th><th width="114.67401123046875">Version</th><th width="345.10791015625">Description</th><th>License</th></tr></thead><tbody><tr><td><a href="https://docs.oracle.com/en/java/javase/21/">JAVA</a></td><td><code>21</code></td><td>Java is a high-level, object-oriented programming language known for its platform independence (write once, run anywhere), robustness, and wide use in enterprise applications.</td><td></td></tr><tr><td><a href="https://docs.spring.io/spring-boot/index.html">Spring Boot</a></td><td><code>3.2.3</code></td><td>Java-based framework that simplifies the creation of stand-alone, production-grade Spring applications. It emphasises convention over configuration, enabling rapid development with embedded servers and minimal setup.</td><td>Apache License 2.0</td></tr><tr><td><a href="https://junit.org/junit5/docs/current/user-guide/">JUnit</a></td><td><code>5.10.2</code></td><td>JUnit is a widely used Java testing framework that provides tools and annotations for writing and running repeatable tests, ensuring code correctness and reliability.</td><td><a href="https://github.com/junit-team/junit4#EPL-1.0-1-ov-file">EPL-1.0 license</a></td></tr><tr><td><a href="https://maven.apache.org/guides/index.html">Maven</a></td><td><code>3.8.1</code></td><td>Maven is a build automation tool primarily used for Java projects. It simplifies dependency management, build processes, and project reporting through a declarative project object model (POM).</td><td>Apache License 2.0</td></tr><tr><td><a href="https://projectlombok.org/features/">Lombok</a></td><td><code>1.18.30</code></td><td>Lombok is a Java library that reduces boilerplate code by providing annotations that automatically generate common methods like getters, setters, constructors, and toString, leading to cleaner and more concise code.</td><td></td></tr></tbody></table>

### **Deployment**

The table below specifies the tools needed to deploy Inji Verify:

<table><thead><tr><th width="129.1846923828125">Tool/Technology</th><th width="133.4573974609375">Version</th><th width="339.38629150390625">Description</th><th>License</th></tr></thead><tbody><tr><td><a href="https://www.docker.com/">Docker</a></td><td>20.4 and above</td><td>Docker is a set of platform as a service (PaaS) products that use OS-level virtualization to deliver software in packages called containers.</td><td><a href="https://www.docker.com/community/open-source/">OpenSource License</a></td></tr><tr><td><a href="https://www.npmjs.com/">npm</a></td><td></td><td>npm is the package manager for the Node JavaScript platform. It puts modules in place so that node can find them, and manages dependency conflicts intelligently.</td><td><a href="https://docs.npmjs.com/policies/npm-license">Artistic License 2.0</a></td></tr><tr><td><a href="https://github.com/mosip/mosip-helm">Helm Chart (MOSIP)</a></td><td>depends on Inji-web version</td><td>Helm helps you manage Kubernetes applications - helps define, install, and upgrade even the most complex Kubernetes application. Charts are easy to create, version, share, and publish — so start using Helm and stop the copy-and-paste.</td><td></td></tr></tbody></table>
