This is a task manager app that allows users to create, manage, and delete tasks. The app features a clean and responsive design, supports dark theme, and includes internationalization for English and French. It utilizes a dummy API for all CRUD operations, ensuring a smooth user experience.
- React β
- TypeScript π¦
- Zustand for state management
- TanStack Query (React Query) for data fetching
- React Router for routing
- Tailwind CSS for styling
- i18next for internationalization
- Jest & React Testing Library for testing
To get a local copy up and running, follow these simple steps:
- Node.js or Bun (optional)
- Package manager (npm, yarn, or bun)
-
Clone the repository:
git clone https://github.com/musilimu/React-Technical-Assignment.git cd React-Technical-Assignment
-
Install the required packages:
bun install
Alternatively, you can use npm or yarn:
npm install # or yarn install
-
Start your local development server:
bun dev
Alternatively:
npm run dev # or yarn dev
.
βββ bun.lockb
βββ eslint.config.js
βββ index.html
βββ jest.config.ts
βββ package.json
βββ postcss.config.js
βββ public
β βββ locales
β βββ en
β β βββ translation.json
β βββ fr
β βββ translation.json
βββ src
β βββ api
β β βββ todos.ts
β β βββ users.ts
β βββ App.tsx
β βββ components
β β βββ NewTask.tsx
β β βββ OverView.tsx
β β βββ Paginations.tsx
β β βββ TeamChat.tsx
β β βββ TodoItem.tsx
β β βββ TodoList.tsx
β β βββ ui
β β β βββ Alert.tsx
β β β βββ Button.tsx
β β β βββ Nav.tsx
β β β βββ Sidebar.tsx
β β β βββ Tabs.tsx
β β βββ UpdateTask.tsx
β β βββ Users.tsx
β β βββ User.tsx
β βββ i18n.ts
β βββ index.css
β βββ main.tsx
β βββ __mocks__
β β βββ ky.ts
β β βββ react-query.tsx
β βββ state
β β βββ index.ts
β βββ __tests__
β β βββ components
β β βββ Nav.spec.tsx
β β βββ Sidebar.spec.tsx
β βββ vite-env.d.ts
βββ tailwind.config.js
βββ tsconfig.app.json
βββ tsconfig.json
βββ tsconfig.node.json
βββ vite.config.ts
To run tests:
bun test
Alternatively:
npm test
# or
yarn test
A sample test can be found in the ./src/__tests__
directory.
This app supports both English and French using i18next. The language can be toggled easily via a UI element.
The app includes a dark theme, which can be toggled to enhance the user experience based on preference.