Welcome to the Speer Frontend Assignment! This project showcases a responsive and feature-rich frontend application built using various technologies and libraries to provide a seamless user experience.
Check out the live demo of the project here.
-
Typescript for better type support:
- Utilizes TypeScript to enhance code quality and provide better type support, making the codebase more maintainable.
-
Mantine UI as Component Library:
- Integrates Mantine UI, a comprehensive React component library, to build consistent and visually appealing user interfaces.
-
Light and Dark Theme Support:
- Offers both light and dark theme options to cater to user preferences and create a personalized browsing experience.
-
React Query for Server State:
- Implements React Query to efficiently handle server state, making data fetching and synchronization seamless and performant.
-
date-fns for Date Handling:
- Leverages date-fns library for robust date handling, ensuring accurate and reliable manipulation of date and time.
-
Responsive UI:
- Designs a responsive user interface that adapts gracefully to different screen sizes, providing a smooth experience across various devices.
-
Code Splitting using Suspense:
- Utilizes React Suspense to achieve code splitting, improving application performance by loading only the necessary code chunks on demand.
-
Zustand for State Management:
- Implements Zustand for state management, offering a lightweight and efficient solution to manage application state.
-
Error Handling and Notification:
- Incorporates robust error handling mechanisms and notification systems to keep users informed and provide a seamless browsing experience.
-
Skeleton Loader:
- Enhances user experience by implementing a skeleton loader, ensuring a smooth transition between loading states and content display.
Follow these steps to set up and run the project locally:
- Clone the repository.
- Install dependencies using
npm install
oryarn install
. - Run the application using
npm start
oryarn start
.
Feel free to explore the codebase, make modifications, and contribute to the project!
We welcome contributions from the community. If you find any issues or have ideas for improvements, please submit a pull request or open an issue.
Happy coding!