Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 2

Collaboration-hub:

We will have two parts here: one team member of an interior designer studio.
Another one is a project. There will be an admin who will create projects, assign
tasks based on milestones, and invite team members for a project.
Team members:
For the members' part, all of the members of the design studio will be there. Like,
a new team member joins a studio. Admin will invite him via email. By clicking on
a team member’s profile, all of the information will be visible. Tasks, assigned
projects, and collaborators. Designer id, profile picture, designation, role,
email, description, assigned task list [task name, project name, date (due date)],
assigned project list [name, assigned members].
Note: We don’t need any schema for that; we already have the designer schema; we
will just update the team member field in that schema.
Ongoing-projects:
When an admin creates a new project, in a form, he can submit the project name,
location, start and end dates, house type, budget, description, and assigned
members. By clicking on a project, he can add multiple milestones. There will be a
milestone name, and tasks will be there. In a task, he can add the task name,
image, design elements, colors, company of the item, materials,due date, priority,
and status, and assign a member for the task.
Ongoing-project schema:
DB Structure -
{
designerId: { type: mongoose.Schema.Types.ObjectId, ref: 'designer' },
name: { type: String, required: true },
location: { type: String, required: true },
startDate: { type: Date, required: true },
endDate: { type: Date, required: true },
status: { type: String, required: true },
houseType: { type: String, required: true },
budget: { type: String, required: true },
description: String,
assignedMembers: [{ type: mongoose.Schema.Types.ObjectId, ref:
'designer.teamMembers' }],
milestones: [{
name: { type: String, required: true },
completed: Boolean,
tasks: [{
name: { type: String, required: true },
image: String,
designElements: String,
colors: String,
company: String,
materials: String,
assignedMember: { type: mongoose.Schema.Types.ObjectId, ref:
'designer.teamMembers' },
dueDate: Date,
priority: String,
status: String
}]
}],
postedDate: { type: Date, default: Date.now }
}

Project tracker:
title
status
connected docs
category
description
vendor
dimension
materials
manufracturer
SKU
markup %
markup value
unit cost
total selling price

You might also like