impact-space / impact-space/app

Implement Tags for Projects

Open
#9 0 comments 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
C#
Stars
15
Forks
2
PR merge metrics
No merged PRs in 30d

Description

**Description:**

In Milestone 1, we want to implement a tagging system for projects. This will allow organizations to categorize their projects more effectively and help users discover and explore projects based on their interests.

**Requirements:**

1. Create a Tag model with the following attributes:

- Id (Guid)
- Name (String) (required, max length: 128)

2. Create a many-to-many relationship between Tag and Project using an intermediary table ProjectTag with the following attributes:

- ProjectId (Guid)
- Project (Project)
- TagId (Guid)
- Tag (Tag)

3. Develop a UI for organizations to:

- Add, edit, and remove tags associated with their projects
- View tags associated with their projects

4. Implement backend logic to handle CRUD operations for tags.

**Acceptance Criteria:**

- Tag model is created with the required attributes.
- Many-to-many relationships are established between Tag and Project.
- Organizations can add, edit, and remove tags associated with their projects.
- Backend logic handles CRUD operations for tags.

**Notes:**

- Please ensure that the UI design is consistent with the overall application design.
- Make sure to properly handle user permissions when allowing access to tags.
- Don't forget to write tests to verify the implemented functionality.

Contributor guide

Open the contributing guide

Research direction

Start by locating the existing Project model, persistence patterns, organization-facing project UI, and related tests. Implement the Tag and ProjectTag models, tag CRUD and project tag management with permissions; done means the listed acceptance criteria pass and tests cover the functionality.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp
Domain
authorization, databases, full-stack
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.