add redux setup and typescript configuration

Change-Id: Ibe00e3e969d539d3898e412a0093ee2076bec857
diff --git a/client/redux/appSlice.ts b/client/redux/appSlice.ts
new file mode 100644
index 0000000..f0fc628
--- /dev/null
+++ b/client/redux/appSlice.ts
@@ -0,0 +1,37 @@
+import { createSlice, PayloadAction } from "@reduxjs/toolkit";
+import type { RootState } from "./store";
+
+// Define a type for the slice state
+interface appState {
+  value: number;
+}
+
+// Define the initial state using that type
+const initialState: appState = {
+  value: 0,
+};
+
+export const appSlice = createSlice({
+  name: "app",
+  // `createSlice` will infer the state type from the `initialState` argument
+  initialState,
+  reducers: {
+    increment: (state) => {
+      state.value += 1;
+    },
+    decrement: (state) => {
+      state.value -= 1;
+    },
+    // Use the PayloadAction type to declare the contents of `action.payload`
+    incrementByAmount: (state, action: PayloadAction<number>) => {
+      state.value += action.payload;
+    },
+  },
+});
+
+export const { increment, decrement, incrementByAmount } = appSlice.actions;
+
+// Other code such as selectors can use the imported `RootState` type
+export const selectCount = (state: RootState) => state.app.value;
+
+export default appSlice.reducer;