Skip to content

Add Projects (tag) management and ticket→project association#23

Open
AstroMen wants to merge 1 commit intomainfrom
codex/add-project-categorization-and-management
Open

Add Projects (tag) management and ticket→project association#23
AstroMen wants to merge 1 commit intomainfrom
codex/add-project-categorization-and-management

Conversation

@AstroMen
Copy link
Owner

@AstroMen AstroMen commented Mar 3, 2026

Motivation

  • Provide a categorization/tag (project) for tickets so each ticket belongs to a project (e.g. department or daily work).
  • Allow admins to manage those project tags (create/update/delete) while members can only view them.
  • Surface project selection in the UI when creating/editing tickets and show project information on ticket cards.

Description

  • Added Project model and relationship, and made Ticket.project_id required with a Project relationship. (apps/dashboard_api/src/models/entities.py)
  • Implemented new CRUD API endpoints under /projects with admin-only mutations and viewable by all authenticated users, and added project validation to ticket create/update/list endpoints. (apps/dashboard_api/src/api/projects.py, apps/dashboard_api/src/api/tickets.py)
  • Created Alembic migration 0003_projects_table_and_ticket_project to create projects, insert default General, backfill existing tickets to that project, and add the foreign key constraint. (apps/dashboard_api/alembic/versions/0003_projects_table_and_ticket_project.py)
  • Extended Pydantic schemas with project_id on ticket schemas and new ProjectCreate/ProjectUpdate/ProjectOut schemas. (apps/dashboard_api/src/schemas/common.py)
  • Registered the projects router in the main app. (apps/dashboard_api/src/main.py)
  • Frontend: added Projects nav link and a new /projects page for management with admin CRUD and member read-only behavior, updated tickets list and ticket edit pages to select/show project, and adjusted agents page to hide admin controls from members. (apps/dashboard_web/app/*)
  • Updated smoke tests to create a project and include project_id when creating tickets. (apps/dashboard_api/tests/test_api_smoke.py)

Testing

  • Ran API smoke tests with PYTHONPATH=apps/dashboard_api pytest apps/dashboard_api/tests/test_api_smoke.py, and all tests passed.
  • Launched the web dev server with npm --prefix apps/dashboard_web run dev -- --hostname 0.0.0.0 --port 3000 and verified the new Projects page visually (screenshot captured).

Codex Task

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant