- Project Management: Create, edit, and delete projects.
- Issue Tracking: Full CRUD functionality for tasks, including changing status, type, and assignee.
- Drag & Drop Interface: A modern, accessible drag-and-drop system powered by
@dnd-kit. - Team Management: Invite and remove members, and manage user roles.
- Authentication: A complete session-based login/logout system using JWT.
The project is built upon the principles of Clean Architecture and Domain-Driven Design (DDD), ensuring a loosely coupled, highly testable, and scalable codebase.
src/domain: The core of the business logic. It contains framework-agnostic types, interfaces, and pure functions.src/app: The application layer (use-cases). It orchestrates the business logic to fulfill specific application scenarios.src/infra: The infrastructure layer. It contains implementations of external dependencies such as API clients, data mappers (ACL),localStorageinteractions, etc.src/ui: The presentation layer. It's responsible for everything the user sees, including components, pages, routing, and styles.
- React 19 & TypeScript: For building the user interface with strong type safety.
- Vite + SWC: A next-generation build tool that provides a lightning-fast development experience.
- TanStack Query: For server state management (caching, synchronization, and data fetching).
- Zustand: For lightweight and flexible client state management.
- React Router: For handling client-side routing.
- Tailwind CSS: A utility-first CSS framework for rapid and custom UI development.
- Radix UI: A foundation of accessible, unstyled, headless components.
- Shadcn UI: A collection of reusable components built on Radix UI and Tailwind CSS.
- Storybook: For developing and documenting UI components in isolation.
- Valibot: A modern, lightweight, and modular library for data validation.
neverthrow: For robust and type-safe functional error handling, avoiding the ambiguity oftry...catchblocks.
- Vitest: A modern testing framework with UI, browser mode, and coverage reporting.
- Playwright: For robust End-to-End (E2E) testing.
- ESLint & Prettier: A comprehensive setup with
@antfu/eslint-configfor maintaining a consistent, high-quality codebase. - Pre-commit Hooks: All code is automatically linted, formatted, type-checked, and tested before every commit to ensure repository health.
This project uses pnpm for dependency management. All commands should be run with it.
-
Clone and Install:
git clone <your-repo-url> cd tasks-tracker-react pnpm install
-
Core Commands:
| Command | Description |
|---|---|
pnpm dev |
Starts the development server with Vite. |
pnpm build |
Lints types and builds the app for production. |
pnpm preview |
Serves the production build locally for preview. |
- Testing:
| Command | Description |
|---|---|
pnpm test:vitest |
Runs all application unit and integration tests with Vitest. |
pnpm test:storybook |
Runs tests specifically for Storybook components. |
- Code Quality & Linting:
| Command | Description |
|---|---|
pnpm lint:code |
Lints the codebase with ESLint and attempts to fix issues. |
pnpm lint:types |
Performs a TypeScript type check across the project. |
pnpm lint:format |
Formats all relevant files using Prettier. |
- Storybook:
| Command | Description |
|---|---|
pnpm storybook:dev |
Starts the Storybook development server. |
pnpm storybook:build |
Builds Storybook as a static web application. |