Skip to content

[SPRINT-01] Blade Integrated Calendar / Task Management System #388

@DVidal1205

Description

@DVidal1205

Blade has gotten integrated into the backbone of the Knight Hacks internal infrastructure. Now that the team grows and Blade's ecosystem becomes more sophisticated, we have a big opportunity here to boost productivity and observability on what the team is doing.

Please reference a mockup Adrian spun up with Antigravity. You must log in with your Knight Hacks email OAuth on Google. PLEASE DO NOT MODIFY IMPORTANT DATA SINCE I DO NOT KNOW HOW MUCH THEY ACTUALLY USE THIS.

The goal is to create a flow that builds on top of our member profile and role ID system. Since we now have all the members who exist in a certain team (through the permissions table) we can make this system a very smooth flow.

  1. Creating a task should include a variety of different fields and information. The task should first have a toggle for if it is an event or a task. If it is a task, it will mark it due at 11:00 PM, otherwise, it will be marked as an event and will need a start / end time. Events created this way will have fields for assigning it a room and should include internal and external descriptions.
  2. After creation, a task should be able to be assigned to a person or team, which we have access to from permissions table. For example, a workshop should be assigned to workshops, whereas a social is assigned to outreach. However, most tasks in this class have dependencies on other teams, so we will need to create sub-tasks, like how sub-issues are made on GitHub. These will populate as separate tasks with all of the same fields, a separate due date, separate team/person assignment and will have some sort of linking property. Tasks with incomplete sub tasks should be very evidently shown as BLOCKED.
  3. We will have a teams-announcement hook that will run every morning pinging each individual teams when a deadline is due in 2 weeks, 1 week, 3 days, and 1 day. Also announce for each day overdue. These will ping either an entire team or the specific person that has to do it.

Beyond this, the calendar task management system should have a variety of different ways of viewing the UI for usability. We should have a list view that looks a lot like GitHub that sorts by creator, assignee, deadline, open, closed, etc. We would also benefit from doing a Kanban style view for backlog, in progress, and done, but the Kanban is a stretch. The final stretch for this that would be GREAT is to be able to manage tickets in the Discord using /commands - gated by permissions. We might be able to have a /ticket command that you can update the progress of a ticket from a list that auto populates based off what your user ID is and what you have access to.

Lastly, we want the ability to create task templates. For example, a very common flow for a workshop is: create workshop -> sub issue of needing an announcement/social media post a week prior -> sub issue of needing a post asset a week prior. We should be able to make templates for those nested relationships that will auto populate the sub tasks and their titles based on the template. Another one is design asset due -> sub issue of draft 1 being due 1 week prior.

Image

Metadata

Metadata

Assignees

No one assigned

    Labels

    SprintParent Label for a Sprint Issue

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions