A Todo List application built with React, TypeScript, and TanStack Query. Users can create multiple todo lists, add items to lists, mark items as completed, and delete lists and items.
- Create and manage multiple todo lists
- Add, complete, and delete todo items within lists
- View todo completion status
- UI: Built with Tailwind CSS
- Error Handling: API error handling with retries
- Data Management: Data fetching with React Query
- React 19: React framework
- TypeScript: Static typing
- React Router v7: Client-side routing
- TanStack Query v5: Data fetching and state management
- Axios: API requests
- Tailwind CSS v4: CSS framework
- Phosphor Icons: Icon library
- shadcn/ui: Component library built on Radix UI
- Vitest: Testing framework
src/
├── api/ # API client and service layer
│ ├── client.ts # Axios instance
│ ├── queryClient.ts # Query configuration
│ ├── todoList/ # Todo list services
│ │ └── items/ # Todo list items services
├── components/ # UI components
│ ├── ui/ # Base components
│ └── error-handling/ # Error handling components
├── layouts/ # Layouts
│ └── TodoLists/ # TodoLists layout
├── lib/ # Utils
├── pages/ # Pages
│ ├── TodoListItems/ # Items page
│ └── TodoLists/ # Lists pages
└── Routes.tsx # Routes
# Open in container. Then pnpm install will be performed automatically
# Start development server
pnpm devThe application runs at http://localhost:5173.
pnpm dev: Start dev serverpnpm build: Build for productionpnpm typecheck: Run type checkingpnpm lint: Run ESLintpnpm format: Format codepnpm test: Run Vitest testspnpm test:watch: Watch Vitest tests
- Retries for API requests in
queryClient.ts - Error messages for users
- Error states in UI