(→Frameworks & libraries: add info) |
(→Frameworks & libraries: add a note about SQLAlchemy) |
||
Line 39: | Line 39: | ||
* We won't use Moksha for this due to it being quite dated at this point. | * We won't use Moksha for this due to it being quite dated at this point. | ||
* Choice is likely to be Pyramid or Flask, depending on our preferences and the architecture we decide upon. | * Choice is likely to be Pyramid or Flask, depending on our preferences and the architecture we decide upon. | ||
* SQLAlchemy seems to be a good decision for database work. | |||
=== FAS integration === | === FAS integration === |
Revision as of 01:27, 28 May 2015
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.
Right now, the Fedora web presence is very static — all of the action is on mailing lists and IRC. The vision is to have a modern, web-based Fedora activity center which feels like the positive, connected energy of Flock or FUDCon, available to all of us at any time.
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, and a second meetup on May 21, 2015.
Mockups, diagrams, and prototypes
- mizmo's mockup
- Hubs design team assets
- mizmo's list of possible features, to be discussed at the second brainstorming session
- threebean's prototype
Logs, scratchpads, and videos
- piratepad from first brainstorming session, with full IRC logs
- full video of first brainstorming session (1 hour, 47 mins)
- full video of second meetup (1 hour, 40 mins)
Consider the following
Some things to explore:
Frameworks & libraries
What frameworks/libraries to use? Pyramid? Flask? SQLAlchemy? What sort of database? CSS frameworks?
- It seems we have a preference to avoid CSS preprocessors in order to make development more accessible to all.
- We won't use Moksha for this due to it being quite dated at this point.
- Choice is likely to be Pyramid or Flask, depending on our preferences and the architecture we decide upon.
- SQLAlchemy seems to be a good decision for database work.
FAS integration
Could FAS be incorporated *into* Hubs, so that users can sign up for a FAS account and manage account details through Hubs?
- Basic FAS accounts could be created through Hubs. Users could be temporarily redirected to the FAS UI to agree to our licensing policy.
- Fedora Hubs would be more focused on what hubs a user is a part of, rather than the lower-level groups system used in FAS.
- Users could be able to request membership to a hub (requiring sponsor approval), or simply follow a group (without the need for approval). If approval is needed, potential sponsors should be notified immediately on Fedora Hubs.
Fedmsg data
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?
IRC integration
What options do we have for integrated IRC? Could something like wartaa be used?
- Fedora Project policy is that we personally don't retain IRC logs unless the user is explicitly notified of this collection (such as during a meeting conducted with Zodbot).
- Since meetings are collected, we could potentially use "real-time updated" meeting logs to provide people who are late to join the channel with the backlogs (that is, the parts of the meeting that they missed).
HyperKitty
How can we best integrate HyperKitty (mailing lists)?
- We could integrate a HyperKitty "fragment" into Hubs.
- There are some concerns about authentication (discussed during 2nd Hubs meetup).
- Users could reply to emails via SMTP, but which email do we use? The @fedoraproject.org address, or the address that the user has set in FAS?
Fedora Planet & Fedora Magazine
How can we best integrate Fedora Planet (blog posts) and Fedora Magazine?
Ticket systems
How should we provide an insight into our many ticketing systems?
- We should support Bugzilla, Trac, Pagure, and GitHub.
- Could use Fedmsg data to allow users to watch different "widgets", which would provide updates of interest from different tracking services.
- Users should be able to click a button to create a ticket with the appropriate ticketing service.
Spam
How can we prevent spam and other nonsense, given our reduced requirements for account registration?
Link lifetimes
How long will Fedora Hubs links live?
- We could store a snippet of the linked content, and then provide a permalink to the full content (i.e. where the content actually lives).
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.