Integrations feedback (combining fixometer, discourse, wiki, repair directory)

The restarters.net platform links together a few different modules/applications. These are primarily:

  • Fixometer (custom built, also incorporates registration, signin and dashboard)
  • Discussion (Discourse)
  • Restarters Wiki (Mediawiki)
  • Repair Directory (custom built)

We’re trying as much as possible to allow Restarters to access each of the different modules in one place, without having to remember multiple locations and multiple sets of credentials (and even get more attention for some of the modules - for example we’ve had comments in the past that people didn’t know the Wiki existed!)

The main parts of this are:

  • SSO (single-sign on) - logging in to one place
  • Discovery and navigation (being aware of the different platforms and being able to move between them)
  • Aggregation (pulling together activity across the platforms)

The current state of play is:

SSO

Login is via restarters.net, the other platforms should redirect you there if you try to log in to them directly. (Intention is that people will go directly to restarters.net, but quite likely some will choose to go directly to individual modules)

  • works for Discourse and Repair Directory, not yet for Wiki

Discovery and navigation

  • Discovery and navigation - modules are accessible via the menu in restarters.net and via targeted links in the dashboard
  • the Repair Directory, Wiki and Discourse have links to the other platforms

Ideally we’d have a unified navigation across all platforms, but this is complicated as they’re running on different software. The cheap and hacky way would be to have an iframe, but Discourse doesn’t like being in an iframe (fair enough). The other way is to manually replicate the nav across all the different apps - which is a bit of a duplication of effort, and depends how much customisation each app gives you - so best to wait until it’s all bedded in and we know what we like.

Aggregation

This is mostly via widgets on the dashboard.

  • we can currently pull in some data from the Wiki
  • we know how to pull in data from Discourse, but figuring out what is best
  • Repair Directory - needs work to figure out how

Feedback

Feedback welcome on all of this!

In the test account I’ve created today (as a Restarter), I’ve received 4 badges upon joining Discourse: Basic / Regular / Leader / Member - which seems a bit generous :slight_smile: )

I’ll cc @james on this one :slight_smile:

As mentioned by @Panda on Slack:

At some point it would be good to have profile info in only one place, not per subsystem, with an additional intro thread.

and

The avatar is different for restarters dashboard and for talk.

Looks like your test account uses a @therestartproject.org email address @ugo - when setting up Discourse, I implemented automatic promotion to Leader (and therefore by default the lesser roles) to any account with a @therestartproject email address (to save myself some time). It doesn’t happen to all accounts :slight_smile:

ah, that makes sense - so much for trying my inexistent hugo@ address :slight_smile:

As discussed in team meeting - we’d like to encourage more users clicking through to Discourse.

Two ideas discussed:

  • pull in latest topics from Discourse, to make the block on the dashboard more dynamic (more difficult to implement, and some questions around precisely what topics to pull in - see below)
  • include ‘Join the Discussion’ in the Getting Started block (would required an API call to Discourse to figure out when to give it a green tick, but in the interim we can live without it have a tick)

Also mentioned - some copy editing around what it means to join the discussion, whether we call it talk vs discussion, etc.

cc @james @Janet @ugo

In terms of pulling in dynamic lists of posts from Discourse to the restarters.net dashboard, I can access either RSS feeds of all latest posts, or a category, or pull something in from the Discourse API.

  • in order to access RSS feeds, the category needs to be public.
  • I can access non-public posts via the API, but essentially on behalf of an admin account, so it could include any restricted posts in the category

Feel free to have a peruse of the API docs if there’s anything that would be better: https://docs.discourse.org/

Eventually we could try and access posts on behalf of each logged in user (i.e. so they see latest posts specifically for them), but each user would need to be issued an API token I think - needs investigation.

I’ve been thinking about this a bit.

Long-term
I think in an ideal world, we’d find a way (via the API) to show posts relevant to that individual user (e.g. based on their notifications - replies to their posts, categories they’re following etc.)

For new users logging in (who still sees the onboarding steps in the dashboard), perhaps fixed topic (a ‘welcome to the community’ discussion) and a couple of dynamic links - perhaps a recent ‘top’ thread from Repair Stories and another recent ‘top’ one from Repair in your community.

Mid-term
Given we’ll be making certain areas public at some point, using RSS feeds seems feasible.

Short-term
Perhaps for now, we could just include a few static links to key discussions (welcome to the community, introduce yourself and maybe something like Ellie’s improving practices in community repair series?

Quick question though @neil - is it not possible to draw discussions through via the API using a non-admin account?

1 Like

Good point - I think it should be. i.e. create a generic non-admin account and pull the posts in using that particular account’s API key.

Cool - I think that would be preferable to using an RSS feed, as it would presumably offer more flexibility (using tags, ‘top’ and other attributes instead of just category). Perhaps that could be our mid-term goal?

I’ll just note some recent thoughts and discussions around integrating between the modules.

Make Talk the first place you go when logging in

Discussion on Talk is definitely the daily driver for some people (and quite likely for most people, although we don’t have any numbers on that - would be good to get a poll of some kind on that maybe - what would you like to see when you log in?). So it could be a good idea to redirect to Talk automatically after login. We could also make it a user preference if there turns out to be much variance in preference.

It should be fairly straightforward to do that. For me the main thing it would be good to resolve is having a means to pull in notifications from the Fixometer and the Wiki and alert you to those when you’re in Talk. (Or more generally, whichever module you’re currently in, having a way to display that there’s something that has occurred in one of the other modules that you might be interested in.)

I think that might be possible. We can make API calls available in Fixometer for that. We can make basic Ember plugins in Discourse (e.g. like posted here: https://talk.restarters.net/t/is-anyone-good-with-javascript-i-need-a-hand/203/4) , so assuming we’re allowed to make Ajax calls from those, we can pull a number back from the Fixometer for new notifications for the user, and hopefully add a little indicator to the current Fixometer menu item in Discourse. Same with Mediawiki, it has an API we might be able to call for e.g. recent changes to pages you are watching.

I still think long-term, a nicely featured dashboard that combines updates from all of the various modules will be a good idea (still with a user preference as to where you prefer to go to first after login). But it’s currently not doing that very well.

Linking user profiles across the modules

In terms of editing your own - as mentioned by Panda, ideally just having one which is mirrored across all three modules. We’d need to look into a bit how best to sync between all three.

In terms of viewing others’ profiles - as mentioned by @james , a nice feature to have would be to link from a profile in Fixometer, to the place in Discourse where you can compose a personal message to the member - a particularly useful place for this could be ‘volunteers nearby’, where you might see a new member near your group, and want to contact them and have a chat before just blindly sending an invite email. Likewise the other way around, maybe you see a group near you that you might like to join, but would like to message the host before signing up. I think this ease of being able to message people will be useful in lots of places (and if we use the built in Discourse messaging it saves us having to build any messaging system ourselves!)

Possibly the main issue is if it becomes a bit jarring from a UX perspective jumping between modules. This could be mitigated by making them look visually consistent, and making it easy to get back to your place in the previous one if you’ve just jumped to another.

Having a link from group pages in Fixometer to group messaging section in Discourse

Related to the last, it could be a good idea to do the same here. If you’re a member of a group in the Fixometer, perhaps you want to message the whole group. You could do so via the relevant Local Groups section in Discourse - so it could be good to link to it from group pages in Fixometer.

London is an interesting case again, as you’d have multiple groups in Fixometer linking to one group in Discourse, but I don’t think that would be too much of an issue.

cc @james wonder what you think about this one?

2 Likes

I like this idea. Does remind me of @Panda’s earlier suggestion that we make Discourse/Talk the actual default interface for most users. As it’s harder to bring in event data into Discourse/Talk perhaps we can simply make the “Dashboard” actually look more like Discourse/Talk and pull through as much as possible? (This seemingly a big job.)

Agreed, I’ve put some thoughts on that here:

To summarise that I think we could do something like this:

short-term

  • make default landing page after login be Talk (fairly easy to do)

short/mid-term

  • make Discourse component to alert user to notifications from Fixometer (important, difficult to do)
  • make Fixometer component to alert user to notifications from Discourse (important, a bit less difficult to do)

mid-term

  • user preference for which module is default landing page (not that important, fairly easy to do)

long-term

  • if still needed, make dashboard dynamically pull in updates from all modules in a useful way (to be determined how important it is, difficult to do)

This makes sense to me. While the Fixometer is important, Talk is more likely to be more relevant more of the time for more people.

To the short-term work, I would also add:

  • make sure Fixometer is easy to find from Talk (especially on mobile)

At the moment, the Fixometer is in the in the top navigation bar (when scrolled to the top of the page) and at the bottom of the hamburger menu. But is this obvious enough? Also, on mobile, the top navigation bar links don’t appear. Perhaps a redesigned banner would help make it more visible in both cases?

Hello all, allow me to support the idea of having an easy way to message everyone who rsvp to a specific event in the fixometer. A little bit like the actual invitation pop-up that let’s you write the invitation message, you could have a “send reminder” button or something like that to simply be able to notifiy everyone that responded that the event is tomorrow (or next week…)

As much as the Talk forum is interesting and collaboratif, it is also pretty complex for most of our french-speaking volunteers who just need the basic info and to be notified when an event is happening.

Thank you and have a nice day!
Neb
cc. @ssebti

3 Likes

Thanks for the feedback, @Nebojsa_Adzic, and enchantée :slight_smile: (we’d love it if you could introduce yourself on the self-intro thread in #small-talk)

Like the idea of “send a reminder” feature! :white_check_mark:

As for using this forum, wondering if you might like to try using the group messaging function on the forum? @james set it up for you. The group can communicate in French and share Quebecois/Montreal news:

https://talk.restarters.net/groups/Montreal

Also, assuming it’s technically possible for us to implement, would your volunteers be interested in a translate button in the forum (powered by Microsoft) like this?