A hierarchical task management application built with Next.js, MobX, and shadcn/ui following Feature-Sliced Design (FSD) architecture.
- Next.js 15 - React framework with App Router
- TypeScript - Type safety
- MobX - State management
- Tailwind CSS - Styling
- shadcn/ui - UI components
- next-i18next - Internationalization
- Turbopack - Fast bundling
- pnpm - Package manager
This project follows Feature-Sliced Design (FSD) methodology:
src/
├── app/ # Next.js App Router
│ ├── layout.tsx # Root layout
│ ├── page.tsx # Home page
│ └── tasks/[id]/ # Task detail pages
├── entities/ # Business entities
│ └── task/
│ ├── model/ # MobX stores and types
│ └── ui/ # Entity components
├── features/ # Application features
│ └── taskActions/
│ └── ui/ # Feature components
├── pages/ # Complex page components
│ └── tasks/
├── shared/ # Shared resources
│ ├── ui/ # shadcn/ui components
│ ├── lib/ # Utility functions
│ └── hooks/ # Shared hooks
- 📋 Hierarchical Tasks - Create tasks with unlimited nesting levels
- ✅ Task Management - Add, edit, delete, and toggle task completion
- 💾 Local Storage - Persist tasks locally in the browser
- 🎨 Modern UI - Clean interface with shadcn/ui components
- 📱 Responsive Design - Works on desktop and mobile
- 🌍 Internationalization - Multi-language support (EN, ES)
- ⚡ Fast Development - Turbopack for lightning-fast builds
- 🎯 Type Safety - Full TypeScript coverage
- Node.js 18+
- pnpm (recommended) or npm
-
Clone the repository
git clone <repository-url> cd <repository-name>
-
Install dependencies
pnpm install
-
Start development server
pnpm dev
-
Open your browser Visit http://localhost:3000
pnpm dev- Start development server with Turbopackpnpm build- Build for productionpnpm start- Start production server after buildpnpm lint- Run ESLintpnpm type-check- Run TypeScript checks
- TaskStore - MobX store for task management
- Task.types - TypeScript interfaces
- TaskItem - Recursive task component
- TaskTree - Root task list
- AddTaskButton - Create new tasks
- EditTaskModal - Edit task details
- DeleteTaskButton - Remove tasks with confirmation
All shadcn/ui components are located in src/shared/ui/:
- Button, Input, Checkbox
- Dialog, Label
- And more...
The project is configured to use shadcn/ui components in the FSD structure:
{
"aliases": {
"components": "@/shared/ui",
"ui": "@/shared/ui",
"lib": "@/shared/lib"
}
}Locale files are stored in public/locales/:
en/common.json- English translationsru/common.json- Russian translations
- Follow the FSD architecture guidelines
- Use TypeScript for all new code
- Follow the existing code style
- Add appropriate tests for new features
This project is open source and available under the MIT License.
Built with ❤️ using Next.js and modern web technologies.