The application has been completely refactored to have a more organized and modular structure:
app/page.tsx- Main page (Home)app/tasks/page.tsx- Tasks pageapp/chat/page.tsx- Chat pageapp/team/page.tsx- Team page
Each page now has its own folder with related components:
home-page.tsx- Home page componentquick-action.tsx- Quick action componentfeature.tsx- Feature component
tasks-page.tsx- Tasks page componenttask.tsx- Individual task componenttask-column.tsx- Task column componenttask-calendar.tsx- Task calendar componentcreate-manual-task-dialog.tsx- Dialog for manually creating tasks
chat-page.tsx- Chat page componentmessage.tsx- Individual message componentcreate-task-dialog.tsx- Dialog for creating task from message
team-page.tsx- Team page componentteam-member.tsx- Individual team member componentteam-members.tsx- List of team membersadd-member-dialog.tsx- Dialog for adding new member
- Native Next.js routing instead of local state
- Friendly URLs (
/tasks,/chat,/team) - Header updated with Next.js Links
- Domain-based structure: Each page has its folder with related components
- Relative imports: Components from the same page use relative imports (ex:
./task.tsx) - Functional cohesion: Related components stay physically close in the code
- Easy navigation: Developers quickly find components for each page
- Easy addition of new pages with their components
- Reusable components organized logically
- Cleaner code organized by domain
- Clear separation of responsibilities by context
# Install dependencies
npm install
# Run in development
npm run dev/app/
├── page.tsx # Main page
├── tasks/
│ └── page.tsx # Tasks page
├── chat/
│ └── page.tsx # Chat page
├── team/
│ └── page.tsx # Team page
└── layout.tsx # Main layout
/components/
├── home/ # Home page components
│ ├── home-page.tsx
│ ├── quick-action.tsx
│ └── feature.tsx
├── tasks/ # Tasks page components
│ ├── tasks-page.tsx
│ ├── task.tsx
│ ├── task-column.tsx
│ ├── task-calendar.tsx
│ └── create-manual-task-dialog.tsx
├── chat/ # Chat page components
│ ├── chat-page.tsx
│ ├── message.tsx
│ └── create-task-dialog.tsx
├── team/ # Team page components
│ ├── team-page.tsx
│ ├── team-member.tsx
│ ├── team-members.tsx
│ └── add-member-dialog.tsx
├── ui/ # Basic UI components
└── [other components...]
- Better SEO - Own URLs for each page
- Native Navigation - Back/forward buttons work
- Optimized Loading - Automatic code splitting
- Maintainability - Organized and modular code
- Reusability - Components can be used in different contexts
- Scalability - Easy to add new functionalities
- Domain Organization - Related components grouped logically
- Productivity - Developers find related code faster
- Next.js 14 - React framework with App Router
- TypeScript - Static typing
- Tailwind CSS - Utility-first styling
- Convex - Real-time backend
- Radix UI - Accessible components
- Lucide React - Modern icons