Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Spaces #345

Open
wants to merge 68 commits into
base: main
Choose a base branch
from
Open

feat: Spaces #345

wants to merge 68 commits into from

Conversation

netchampfaris
Copy link
Contributor

@netchampfaris netchampfaris commented Nov 20, 2024

For the longest time, the rigid structure of Team > Project has bugged me. There are some issues with this.

  • When you first start using Gameplan, you are asked to create a Team and then a Project. Without this you can't start using Gameplan.
  • Everything is tied to a project. But this is not necessarily the case in the real world. Frappe has been using Gameplan for 2 years now, and we keep creating "Projects" for discussing things that are not actual projects.
  • Structure can come in as complexity grows, but Gameplan assumes it on day 1.

There is a need to simplify.

This is a new direction I am exploring for Gameplan:

  • Renaming Project to Space since it feels more generic and can accomodate many other use-cases.
  • You can start using Gameplan by creating a Space.
  • You only see Spaces you have joined in the sidebar.
  • You can browse other public Spaces.
  • Home feed will be from spaces you have joined explicitly.
  • Option to navigate/explore other spaces and join them.
  • To add structure you can categorize Spaces.
  • Remove overview pages, no one uses them and it adds friction to navigation.
gameplan-spaces-pr-demo.mov

Other changes in PR:

  • Migrating components to <script setup lang="ts">
  • Migrating utilities and vanilla javascript to typescript

Todo:

  • Rename GP Team to GP Category
  • Rename GP Project to GP Space
  • Fetch pinned discussions separately (shouldn't depend on pagination)
  • Public / Private Space
  • Default Space?
  • Notifications
    • Subscribe to a space
    • Spaces notifications per user, options:
      • Notify about new posts and comments (all)
      • Notify about new posts
      • Turn off notifications
    • Subscribe to a discussion

Depends on https://github.com/netchampfaris/frappe/tree/api-v2-fixes

@netchampfaris netchampfaris marked this pull request as draft November 20, 2024 10:22
@rmehta
Copy link
Member

rmehta commented Nov 20, 2024

Spaces is nice. When you get to like 30 spaces, there will be some grouping / classification required.

You already see this in Telegram, WhatsApp (communities) etc. Maybe in the "All Spaces" section, allow for groups?

@blaggacao
Copy link
Contributor

blaggacao commented Nov 27, 2024

I also realize that structure is important as an organization grows, so will probably have a way of creating 2-level spaces.

I would try to avoid hierarchy. It doesn't end up being good enough UX on the side bar or on cell phones. Maybe best to make use of tags to classify and group spaces.

This way, you can maintain an overview, while also navigating the app with filters to focus on the currently relevant stuff.

If somebody really needs to encode their org structure into this app (maybe to manage access rights?), tags could contain a / eg. Engineering/QA.

Access rights could then be given based on tags, in addition to individual spaces / pages.

I'm not entirely clear whether to suggest tags (m2m) or category (o2m), here. Maybe start with a simpler o2m and expand to m2m only if necessary? Thoughts?

Copy link

cypress bot commented Dec 11, 2024

gameplan    Run #338

Run Properties:  status check failed Failed #338  •  git commit 2691c4ada5 ℹ️: Merge d1c0fc1e046c9bb89f7dac50432abe2e26c17965 into 2948256ddb1ddfce3717158c349f...
Project gameplan
Branch Review refs/pull/345/merge
Run status status check failed Failed #338
Run duration 01m 59s
Commit git commit 2691c4ada5 ℹ️: Merge d1c0fc1e046c9bb89f7dac50432abe2e26c17965 into 2948256ddb1ddfce3717158c349f...
Committer Faris Ansari
View all properties for this run ↗︎

Test results
Tests that failed  Failures 3
Tests that were flaky  Flaky 0
Tests that did not run due to a developer annotating a test with .skip  Pending 0
Tests that did not run due to a failure in a mocha hook  Skipped 0
Tests that passed  Passing 3
View all changes introduced in this branch ↗︎

Tests for review

Failed  comment.cy.js • 1 failed test

View Output Video

Test Artifacts
Comment > comment actions Screenshots Video
Failed  discussion.cy.js • 1 failed test

View Output Video

Test Artifacts
Discussion > all discussion actions Screenshots Video
Failed  team.cy.js • 1 failed test

View Output Video

Test Artifacts
Team > team creation, readme edit and archive Screenshots Video

@netchampfaris netchampfaris changed the title Teams => Spaces feat: Spaces Dec 11, 2024
- join/leave actions
- create new space
- refactor sidebar code into composition api
- refactor into composition api
- groupedSpaces data utility
- useDiscussions helper
- DiscussionRow component
- simplify Discussions component
- new tabs: Following, Participating, All
- NewDiscussion page
- show pinned discussions at the top
- Space List
- Space Discussions
- Space Pages
- Space Tasks
- PageHeader component
Actions dropdown for a space
- render discussion using only spaceId and postId prop
- update implementation of beforeEach
@netchampfaris netchampfaris marked this pull request as ready for review January 9, 2025 11:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants