impact-space / impact-space/app
Implement Tags for Projects
- 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
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