/Kanban-Method

Full stack implementation of the Kanban methodology with authentication and project management between multiple users

Primary LanguageTypeScript

Demo

User Authentication API

  • Register: POST /api/users/signup
  • Login: POST /api/users/signin

Project Management API

  • Get All Projects: GET /api/projects
  • Create Project: POST /api/projects
  • Get All Projects by User: GET /api/projects/user/[userID]
  • Get Project by ID: GET /api/projects/project/[projectID]
  • Update Project: PATCH /api/projects/project/[projectID]
  • Delete Project: DELETE /api/projects/project/[projectID]
  • Get Tasks by Project: GET /api/projects/project/[projectID]/tasks

Task Management API

  • Create Task: POST /api/tasks/
  • Get Task by ID: GET /api/tasks/[taskID]
  • Patch Task: PATCH /api/tasks/[taskID]
  • Delete Task: DELETE /api/tasks/[taskID]

Zustand Contexts

  • Zustand Auth store
  • Zustand Project store
  • Zustand Task store

Pages

  • Home page
  • Sign In page
  • Sign Up page
  • Layouts
  • Dashboard page
  • Project page

Contribution Management: Update Models & Schemas

  • Update User Schema
  • Update User operations
  • Update Project Schema
  • Update Project operations
  • Update Task Schema
  • Update Task operations

Project Contribution Management

  • Add contributor to Project: PATCH /api/projects/project/[projectID]
  • Add contributor to Project: PATCH ProjectStore
  • Get User Contributor object: GET /api/users/[userID]
  • Add contributor to Project: UI
  • Add/Remove contributor to Task: PATCH /api/tasks/[taskID]
  • Show shared projects @ Projects page

Task Assignment Management

  • Add/Remove contributor to Task: ProjectStore
  • Add/Remove contributor to Task: UI
  • Add/Remove contributor to Task: PATCH /api/tasks/[taskID]
  • Add/Remove contributor to User friends list: PATCH /api/users/[userID]
  • Add/Remove contributor to User friends list: User Store
  • Add/Remove contributor to User friends list: UI

. ├── projects │   ├── project │   │   └── [projectId] │   │   ├── route.ts () │   │   └── tasks │   │   └── route.ts * │   ├── route.ts * │   └── user │   └── [userId] │   └── route.ts * ├── tasks │   ├── route.ts * │   └── [taskId] │   └── route.ts * └── users ├── refresh │   └── route.ts () ├── search │   └── [login] │   └── route.ts * ├── signin │   └── route.ts ├── signup │   └── route.ts └── [userID] └── route.ts *