From Fedora Project Wiki

Revision as of 16:21, 7 May 2015 by Oddshocks (talk | contribs) (→‎Elgg: add another note)

This page is meant to provide a place to collect thoughts, ideas, and other useful content regarding the design and development of Fedora Hubs, a new project in the early planning stages.

In short, the purpose of Fedora Hubs is to provide a communication and collaboration center for Fedora contributors of all types. The idea is that contributors will be able to visit Hubs to check on their involvements across Fedora, discover new places that they can contribute, and more.

IRC and mailing list

Fedora Hubs discussion is probably best in the populous #fedora-apps channel. There is a brand new #fedora-hubs channel as well, though it's pretty empty at the moment.

There isn't an official mailing list for Hubs. Emails regarding Hubs can be sent to the infrastructure mailing list.

Meetings

There currently isn't a regular meeting for Hubs. However, there was an early brainstorming session on March 25, 2015. A second brainstorming session is planned for the first half of May. This page will be updated with the decided-upon meeting time.

Mockups, diagrams, and prototypes

Logs, scratchpads, and videos

Questions

Some things to explore:

  • What frameworks/libraries to use? Pyramid? Flask? SQLAlchemy? What sort of database? CSS frameworks?
  • What ideas can we take from similar projects, like OpenSUSE Connect, Elgg, and the Stack Exchange community?
  • Could FAS be incorporated *into* Hubs, so that users can sign up for a FAS account and manage account details through Hubs?
  • How will fedmsg info be displayed in Hubs? Do we need to write alternate filters for the messages to be translated appropriately for display on Hubs?
  • What options do we have for integrated IRC? Could something like wartaa be used?
  • How can we best integrate HyperKitty (mailing lists)?
  • How can we best integrate Fedora Planet (blog posts)?

Idea list

  • Integrate FAS 3 with Hubs. Hubs will become the new place to make a fresh Fedora account. FAS dashboard would still be used for administrative things and whatnot, but users would be able to do social and profile-management things for themselves on their Hubs page.
  • Encourage contributions from people without demanding that they first make a FAS account. (The reason being, some potential contributors might be turned away by the FAS account creation process and the contributor agreement, when they simply would like to donate, say, a wallpaper.)

Crazy ideas

Because no idea is a "bad" one during brainstorming, any out-there ideas that people have:

  • Be able to read *and comment* on blog posts from Hubs. Probably impossible since there's no unified commenting/blogging system that people use.

Research

It'd be useful to check out some similar projects that may provide some cool ideas for Hubs.

OpenSUSE Connect

OpenSUSE Connect is probably the most similar to what we're trying to do with Hubs. Like we hope Hubs will be, Connect is a place for OpenSUSE contributors to meet up, share ideas, and work together. The site seems to be a bit... disfigured, at the moment. In fact, a lot of the links 404, stylesheets and images are broken, and there's some wonky stuff going on with HTTPS. Nevertheless, a couple interesting points:

  • There's a "see who's here" section. Though I'm not sure if there's is real-time, something like this is probably a super-critical thing for us to have. It's been proposed to have embedded IRC on Hubs, which may partially fulfil the same purpose. Still, a live "who's on Hubs right now" on the homepage like this would be cool. Building off of this, users could view a list of "friends", people on their team, or whatever, and see who's online looking to collaborate.
  • On their profile page, users can combine widgets to design their own dashboard. While it's important to have a degree of uniformity, Connect offers some neat widgets, for instance, one that allows hosting a poll. You can also display a business card, a QR code, or even a vCard (what an odd name...)

Elgg

Elgg is open-source software for building a social network. It's well-tested and used by notable organizations, such as NASA, UNESCO, and the British government. It appears to have a very strong API and thorough documentation. Seems to be sort of like the Django of social network platforms (very plugin-centric). Considering no one on our infra team has any experience with this quite heavy-weight tool, it'd probably be better to roll our own (using something like Pyramid or Flask). Still, Elgg is notable for being a big name in the field and because OpenSUSE Connect is built on top of it.

Stack Exchange

Stack Exchange is notable partially for its user profiles, achievements, and reputation system. Specifically, the newly-designed user profiles may be of interest to us when we consider how to design our own profile pages. The profile view includes a slick activity feed comparable to GitHub's. In the same way the activity feed displays actions on all Stack Exchange network sites, we could display information from different teams, projects, and areas of Fedora. Another cool idea might be to allow users to search for other folks with similar activity streams as theirs, perhaps lending them a hand through their mutual skills.

Stack Exchange also provides a "flair" that can be posted on a website, forum, or wiki user page. Building something like that for Hubs could be cool -- similar to how we do with the Fedora Badges widget. It could also be used as another indicator for online status and recent activity. Probably, a smaller badge could be designed, as well as a larger widget similar to GitHub's.

Stack Exchange lets content be tagged, which better connects the entire site and helps users find what they're looking for. In Fedora Hubs, we could replicate this by allowing content of all types to be tagged. This would probably help connect all of the channels (mailing lists, docs, etc).

All Stack Exchange sites send notifications which appear in your inbox, accessed from a button on the top bar. Building a good notification system linked to fmn would be beneficial.

Further reading