# Frontend Tech Stack

#### Technologies Used

* Next js (<https://nextjs.org/docs>)
* Typescript (<https://www.typescriptlang.org/docs/>)
* Testing- Jest (<https://jestjs.io/docs/getting-started>)
* Redux Toolkit (<https://redux-toolkit.js.org/introduction/getting-started>)
* Apex charts (<https://apexcharts.com/docs/installation/>)

#### Ui Framework and Styling

* Chakra UI (<https://chakra-ui.com/docs/components>)
* Chakra UI is a popular open-source UI component library for React applications. It provides a set of customizable and accessible components that can significantly speed up the frontend development process.
* Custom styling using native css for some components.

<img src="https://84867213-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FEVOQHsfy83WcYZwHX4bB%2Fuploads%2F4WgJxHaK9dAHkXgnQa8S%2Fimage.png?alt=media&#x26;token=0961524d-2ca3-4443-bf72-0750c44eeb68" alt="" data-size="original">

#### State Management

* Redux (<https://redux-toolkit.js.org/introduction/getting-started>)
* Implemented Redux for comprehensive state management across the project, ensuring seamless integration and facilitation of global state changes, enhancing overall implementation and user experience.

#### Animation and Motion

* Framer Motion
* Utilized Framer Motion to elevate user experience by seamlessly integrating animations with button clicks, enhancing visual engagement during transactions.

#### Toast Notifications

* React Toastify (<https://fkhadra.github.io/react-toastify/introduction>)
* Toasts enhance the user experience by providing concise updates on transaction outcomes, ensuring users are informed about successes and failures without disrupting their workflow. These unobtrusive notifications promote user satisfaction and informed decision-making.

<figure><img src="https://84867213-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FEVOQHsfy83WcYZwHX4bB%2Fuploads%2FOtv5KwAXaKMdWANDiQb8%2Fimage.png?alt=media&#x26;token=704d0615-fe2e-4373-b104-0779dc21c201" alt=""><figcaption><p>failure toast</p></figcaption></figure>

<figure><img src="https://84867213-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FEVOQHsfy83WcYZwHX4bB%2Fuploads%2Fp4jNUkoNNCZ1P4B48DeD%2Fimage.png?alt=media&#x26;token=5631dfa5-47c5-45a9-b6b3-2ff478ce89ba" alt=""><figcaption></figcaption></figure>

#### Web3 Interactions

* Starknet react hooks (<https://apibara.github.io/starknet-react/>)
* Leveraged Starknet React hooks to seamlessly interface with smart contracts, enabling both data retrieval and blockchain data recording through intuitive function calls. Streamlining interactions, it facilitated efficient data management on the blockchain.

#### Coding Standards

* Consistent Naming
* Modularization
* Formatting
* Typescript (<https://www.typescriptlang.org/docs/>)
* Linting
* Version Control
* We used TypeScript as our primary programming language for frontend development. TypeScript extends JavaScript by adding static types, enabling us to catch errors and enhance code quality during development.

#### Future Considerations

* Optimized load times and performance management by streamlining library usage, effectively reducing the number of dependencies.
