How aymansoliman-dev/coop works
Coop is a Next.js project-workspace application. Users can sign in, then view a dashboard or open a project to see its details, collaborators, technology stack, and tasks. Project data is fetched and mutated through feature hooks and API modules; the sampled project API sends authenticated requests to a configured backend. The source index documents several connections, but many feature components and APIs were not excerpted, so their internal interactions are represented only where supported.
Main entry points: project/page.tsx Project page · api.ts Projects API · layout.tsx Workspace layout · dashboard/page.tsx Dashboard
Components 27
App routes
- Login route
src/app/(auth)/login/page.tsx - Workspace layout
src/app/(workspace)/layout.tsx - Dashboard
src/app/(workspace)/dashboard/page.tsx - Project page
src/app/(workspace)/project/page.tsx
Authentication
- Login form
src/features/auth/components/login-form.tsx - Auth API
src/features/auth/api.ts - Auth user hook
src/features/auth/hooks/useAuthUser.ts
Project workspace
- Projects API
src/features/projects/api.ts - Project query
src/features/projects/hooks/useProject.ts - Projects list
src/features/projects/hooks/useProjectsList.ts - Create project
src/features/projects/hooks/useCreateProject.ts - Delete project
src/features/projects/hooks/useDeleteProject.ts - Project creation form
src/features/projects/components/new-project-dialog.tsx - Collaborators
src/features/collaborations/components/project-collaborators.tsx - Collaborators query
src/features/collaborations/hooks/useCollaborators.ts - Collaborations API
src/features/collaborations/api.ts - Project stack
src/features/stack/components/project-stack.tsx - Stack query
src/features/stack/hooks/useProjectStack.ts - Stack API
src/features/stack/api.ts - Tasks table
src/features/tasks/components/tasks-table.tsx - Tasks query
src/features/tasks/hooks/useTasks.ts - Tasks API
src/features/tasks/api.ts
Shared UI
- App navigation
src/shared/components/app-sidebar.tsx - Data table
src/shared/components/data-table.tsx - Interactive chart
src/shared/components/chart-area-interactive.tsx
Other components
- User
- Configured API
Connections 27
- User → Login route: opens
- Login route → Login form: renders
src/app/(auth)/login/page.tsx - Login form → Auth API: calls
src/features/auth/components/login-form.tsx - Auth user hook → Auth API: fetches via
src/features/auth/hooks/useAuthUser.ts - User → Workspace layout: opens
- Workspace layout → App navigation: renders
src/app/(workspace)/layout.tsx - Workspace layout → Dashboard: routes to
- Workspace layout → Project page: routes to
- Dashboard → Interactive chart: renders
src/app/(workspace)/dashboard/page.tsx - Dashboard → Data table: renders
src/app/(workspace)/dashboard/page.tsx - Project page → Project query: queries via
src/app/(workspace)/project/page.tsx - Project query → Projects API: fetches via
src/features/projects/hooks/useProject.ts - Projects list → Projects API: fetches via
src/features/projects/hooks/useProjectsList.ts - Create project → Projects API: creates via
src/features/projects/hooks/useCreateProject.ts - Delete project → Projects API: deletes via
src/features/projects/hooks/useDeleteProject.ts - Project creation form → Create project: submits to
- Projects API → Configured API: sends requests
src/features/projects/api.ts - Project page → Collaborators: renders
src/app/(workspace)/project/page.tsx - Project page → Project stack: renders
src/app/(workspace)/project/page.tsx - Project page → Tasks table: renders
src/app/(workspace)/project/page.tsx - Collaborators → Collaborators query: uses
- Collaborators query → Collaborations API: fetches via
src/features/collaborations/hooks/useCollaborators.ts - Project stack → Stack query: uses
- Stack query → Stack API: fetches via
src/features/stack/hooks/useProjectStack.ts - Tasks table → Tasks query: queries via
src/features/tasks/components/tasks-table.tsx - Tasks query → Tasks API: fetches via
src/features/tasks/hooks/useTasks.ts - Tasks table → Data table: renders
src/features/tasks/components/tasks-table.tsx