This project is a React-based web application designed to simulate a user journey through a basic application process. The application showcases skills in making API calls, managing state with Redux or local storage, and implementing specific design requirements.
- Objective
- Features
- Tech Stack
- Installation
- ProjectSetup
- Usage
- API Integration
- State Management
- Evaluation Criteria
- Design
- License
The objective of this application is to create a simple user journey that includes navigating through multiple pages, making API calls, and preserving the user’s state across pages.
- Landing Page: A starting point for users with a button to initiate the application process.
- Application Page: Fetches user data from a remote API and displays it.
- Save & Exit Button: Allows users to save their progress and view a summary.
- Summary Page: Displays a summary of the user’s application data and offers an option to continue the application.
To get started with the project, clone this repository and install the necessary dependencies.
git clone <repository-url>
cd <project-folder>
npm install
or
yarn
VITE_GRAPHQL_ENDPOINT=add-graphql-api-url
VITE_AUTH_TOKEN=add-auth-token-here
npm run dev
or
yarn dev
The project is built using the following technologies and libraries:
- React: A JavaScript library for building user interfaces. (version
^18.3.1
) - React DOM: Provides DOM-specific methods for React. (version
^18.3.1
)
- Redux Toolkit: Simplifies state management with features like
createSlice
andcreateAsyncThunk
. (version^2.3.0
) - React Redux: Official React bindings for Redux. (version
^9.1.2
)
- React Router: Declarative routing for React applications. (version
^6.28.0
) - React Router DOM: DOM bindings for React Router. (version
^6.28.0
)
- Material-UI (MUI): Components and design system for React apps.
- MUI Material: Core Material-UI components. (version
^6.1.7
) - MUI Icons: Material Design icons for React. (version
^6.1.7
) - MUI Styled Engine: Integrates Material-UI with
styled-components
. (version^6.1.7
)
- MUI Material: Core Material-UI components. (version
- Emotion: A CSS-in-JS library for styling components.
- Emotion React: Emotion's React bindings. (version
^11.13.3
) - Emotion Styled: Emotion's styled component library. (version
^11.13.0
)
- Emotion React: Emotion's React bindings. (version
- Styled Components: CSS-in-JS for building styled React components. (version
^6.1.13
)
- Apollo Client: A comprehensive GraphQL client for React. (version
^3.11.10
) - GraphQL: Query language for APIs. (version
^16.9.0
)
- dotenv: Loads environment variables from a
.env
file. (version^16.4.5
)
- Vite: Fast build tool and development server. (version
^5.4.10
)
- TypeScript: Adds type safety and modern JavaScript features. (version
~5.6.2
) - @types/react: Type definitions for React. (version
^18.3.12
) - @types/react-dom: Type definitions for React DOM. (version
^18.3.1
)
- ESLint: A pluggable JavaScript linter. (version
^9.13.0
)- @eslint/js: Core ESLint functionality. (version
^9.13.0
) - eslint-plugin-react-hooks: Rules for React hooks. (version
^5.0.0
) - eslint-plugin-react-refresh: Linting rules for React Refresh. (version
^0.4.14
)
- @eslint/js: Core ESLint functionality. (version
- Globals: Provides a list of global variables for linting. (version
^15.11.0
)
This project is licensed under the MIT License.