Harmony forum

heylookalive's picture

Hi,

I've just posted my roadmap of sorts for Harmony (a forum distro I'm working on) and figured I'd post here too :)

Copied from my post on Artisan forums issue queue...

Architecture wise starting out by looking at all the current solutions - both Drupal and outside of Drupal (Discoruse, vBulletin, phpBB, Invision) and have come out with a strong vision. Looking at Mud my method differs in key places.

It will comprise of the following, but not requiring anything other than core:

  • Core (Thread & post entities, decent markdown editor, post quoting, listing views, permission based access)
  • Access control (offering of basic limiting access to a forum (taxonomy term) and implementing basically hook_node_grants but for the thread entity)
  • Anti-spam measure (some decent defaults for preventing spam so honeypot)
  • Comments bridge (measures to use Harmony as a commenting method, with this enabled say you create a news item you automatically get a thread created, and posts appear on both the news node)
  • Messaging & subscriptipns (private messaging but also notifications, if someone @username mentions you in a post you get a notification, if someone quotes your post you get a notification etc)
  • Migrate (migrate methods for coming from core forum, vbulletin, phpBB, invision)
  • Moderation (enable to get "posts require approval" and the means to moderate)
  • Search
  • Social (Opengraph, sharing links)
  • Basic bootstrap theme (yep, responsive!).

I look forwarding to building all of this up and with a potential high profile project coming up which could use it I'm putting a lot of effort into making this a contender to other software offers let alone Drupal forums.

Comments

Awesome, so glad to see

JakeWilund's picture

Awesome, so glad to see someone picking this project up. I would be happy to help in any way possible.

It's early days at the moment

heylookalive's picture

It's early days at the moment but I know outright that the things that others could contribute would be writing tests and then further down the line browser & device testing for when the distro theme is in place.

Am grateful for help btw :)

Drupal needs a butt kicking

greg.b's picture

Drupal needs a butt kicking forum - well done!

Dont forget upgrade path from advanced forum.

My php skills are not up to scratch to help out but hopefully I can do some browser testing.

.

Michelle's picture

Advanced forum uses core forum for data storage so only an upgrade from core is needed.


My blog, mostly about Drupal: Shell Multimedia

An upgrade path and migration

heylookalive's picture

An upgrade path and migration scripts for the major forum software is on the list for Harmony :)

Hi!This is great new!Finally

pinkonomy's picture

Hi!This is great new!Finally an advances solution forums for Drupal.
Guys ,when do you think will this be production ready?

Hi, well im just coming off

heylookalive's picture

Hi, well im just coming off of a large work project which has kept me off any contrib, and bootstrap had some of my attention so things sre slow. I'll have a think about a date but I need to build out each module in the above list one by one cross-referencing so its big! The idea is that if you are ok without the other features e.g moderation provided by harmony that harmony_core should be enough. Once that's in a good enough state I'll put out a dev release. The project page is here:

http://drupal.org/project/harmony_core

I love how you're breaking

JakeWilund's picture

I love how you're breaking the project features into multiple modules and sub-modules (sort of like a plugin approach). It's going to allow some of us to start testing and using the core without worrying about other features breaking the forum during their development.

I've been checking the project page frequently, and I'm so happy to see the commits you've already made. Checked out the source a bit and things seem to be taking shape nicely.

Thanks! I'm starting on the

heylookalive's picture

Thanks! I'm starting on the post entity after a while of not having any time, so it's all fun and might result in some refactoring. To get back into it I've made a formatter module I'd need as a separate project (so others can use it):
https://drupal.org/project/short_scale_formatter

A skim of that would be appreciated!

Looks really good, and I can

JakeWilund's picture

Looks really good, and I can already see how that will be useful for Harmony. You mentioned on the project page where you found the formatting code, but then in the module file on line 86 you say "code from the following URL" but don't actually provide it. Not a huge deal, just figured I would mention it.

Great work sir.

Keep it Up!

JakeWilund's picture

Just wanted to drop in and say keep up the good work heylookalive. I know this might sound a bit nerdy, but I've been frequently checking the commits and the repository viewer for the harmony_core project. I'm really pumped to see the continued progress on it, and I just wanted to come here and say great job and keep it up.

As always, I'm more than happy to help test/debug things should you need the help.

Thanks! It helps to have

heylookalive's picture

Thanks! It helps to have people with a interest checking in. Right now it's just getting the time!

Since last time I did another release for short scale for matters which adds a markup wrapper to the number and has various classes for theming and a title which says the raw number in a text string which brings it into feature parity with Discourse (which is my gold standard for quite a few things). A review of the latest release would be good thank you! :)

Also I plan to use the timeago module to format dates but in order to do so we need the ability to set more details at the plugin level than the module allows, I've written a patch and right now that could so with reviewing and validating and any thoughts:
https://drupal.org/node/2115867

If it comes to it Ill have to write my own or write support into harmony_core but that's a last resort for me.

Progress-wise the Post entity now exists and is revisionable. This is on always and edits to posts are tracked. In most forum setup a this data wouldn't be here and I'm not sure how discourse behaves beyond saying the last time a post was edited but stackoverflow lets you view a page of diffs.

I'm at the point where I need to decide how ill produce the diff tab for the post, I think I can do better than what node does, and whilst diff is an excellent module which has helped me a lot in projects I may implement my own stuff and an outside diff library/method.

Once this is done (post revisions), it's hooking up the two types Thread and Post, then all of the supporting metadata: likes, stars etc.

You've probably been quite

JakeWilund's picture

You've probably been quite busy lately, but I just wanted to see how things are going with harmony_core. Does you think you'll be back to active development soon? Maybe you have been but just haven't committed recently.

Regardless, as always, thanks for starting this initiative and please don't hesitate to ask for help!

Evening, yep I have been but

heylookalive's picture

Evening, yep I have been but that said I have made some slight progress, but it's been a bit slow getting back into. There are things to commit but just haven't pushed yet. Also exciting things are afoot in terms of proper time to work on this. More to follow when things become certain! :)

Ohhhh excellent! I'm very

JakeWilund's picture

Ohhhh excellent! I'm very excited to hear that. Good on you mate, I'll be on the lookout for an update to come.

Edit:

Would starting a Drupalfund for this project help keep development moving? I (along with many others I'm sure) would be happy to help fund harmony's development. The Drupal community has been without a truly robust forum module for a long time, and I think we could raise both awareness as well as some funding to keep this project moving.

Fund it!

Media Crumb's picture

I have to agree, funding and more dev support seems like a must for somtehing like this. Proper forums has been the only downfall for drupal since its release. This project looks to be amazing and needs more people behind it to push it forward. There needs to be a better way to give it exposure and get it out there!

Have just committed the

heylookalive's picture

Have just committed the majority of the Post revisions work, only thing left is the actual diff view.

Project news! I'm leaving my full time permanent job in the new year to go freelance, and part of that is that I'll have at least one day a week (mostly 2 days) for Harmony, to give it the time it needs. It's exciting! This is something I care about and think will fill a void in the community offering. That said it's 2 days not generating money/client time so is only going to be sustainable for a few months.

Funding - if anyone is so kind to chip me a few bucks then I'd be more than grateful. Gittip makes the most sense to me as it's an ongoing thing, as opposed to a one time lump (like with drupalfund.us). You can find me here:
https://www.gittip.com/heylookalive

Promotion - I'll be making a dedicated site (anyone got any ideas on a domain name? :/), doing screencasts, writing blog posts and doing case studies when the project is at the right state. But that'll take some time.

I'm putting a lot into this and whilst things might seem slow it's because I'm putting a lot of effort into having a solid core. From that with Harmony you should be able to achieve a simple forum, stack overflow, q&a site, reddit type forum. Which is somewhat ambitious, but worth it I feel.

Another attaboy and thanks!

motomania's picture

I'm also a big fan of drupal and will be doing several sites that require forums in the somewhat near future and was checking to see what was in the works or available. I'm very glad to see this project and will support you as I can financially and testing. Thanks for doing this project, it's definitely the only thing somewhat lacking in an otherwise stellar CMS package.

I appreciate the kind words

heylookalive's picture

I appreciate the kind words :)

News! I've done some

heylookalive's picture

News!

I've done some essential namespacing of things which is now complete, this will mean that when you install Harmony into an existing site it doesn't clash with any fields involving the name "harmony", doesn't sound so bad but when you start going near generic names like "Category" for a taxonomy vocabulary you'll have problems. Anyway, all done.

More things are in features so if you choose to checkout the code you'll get a more complete picture of what I'm up to, getting closer to a dev branch being visible. Right now you can create a thread in a category which creates the first post, this sounds minor but it's been a long time coming since my initial prototype with ECK writing it all out from scratch.

I've setup a domain for the project which will become more, perhaps over the holidays:
http://getharmony.io

I'm going to take a small break from the dev based stuff to look at the frontend which will be fun, i've got a lot of ideas about the design and am excited about this. The work will be all on github (which is where that domain is also hosted) and will be open to discussion about what's on the page. It'll be Bootstrap 3, mobile-first responsive, and going into Drupal it'll be a subtheme of the Bootstrap project with Color module support.

That's it for now!

You're awesome, seriously.

JakeWilund's picture

You're awesome, seriously. I've been peeking in on the project page every week or so and have seen you consistently making commits. Brings a smile to my face. Working in the frontend should be a nice change of pace for you, can't wait to see what you come up with. So far I've withheld from downloading the project as I know you're probably still a long way off from having in a testable state. With that said, just say the word and I'll happily install on my own dev site and test things when the time comes.

I've said it before, but thank you. You're doing great.

Many thanks! :)

heylookalive's picture

Many thanks! :)

The github for the frontend

heylookalive's picture

The github for the frontend work can be found here, and will start out as prototyping then styling over. Very early stages!

https://github.com/heylookalive/harmony-frontend

An update on the frontend

heylookalive's picture

An update on the frontend work, I'm nearly done with what the thread page will look like, and is responsive! Outright note, this is heavily influenced by Discourse which is an excellent project and what I see as the sum of knowledge for modern forums, so some things will look straight lifted from it which I'm in two minds about. I tried some other looks but keep coming back to the post layout (meta info at the top, actions at the bottom) as it simply works the best, and when you spell it out, isn't groundbreaking. Still, feel a bit iffy about it. Though the aim of this project is produce a strong forum for Drupal, I'm not a designer, and further down the road maybe we could forge our own path, right now, if you're gonna steal...

http://frontend.getharmony.io/thread.html

Things to click:

  • User nav (cog icon in the nav).
  • Log in link in the nav
  • "2 replies" in the first post
  • Different size window/devices! This is responsive and looks pretty good on mobile, tablet (portrait/landscape)

Note, we've got "login/reg" link and logged in nav items just so they're on the page, in reality it'd be one set or the other "login/reg" or "user nav + new thread" menu items.

Looking forward to thoughts!

Really great work, overall

JakeWilund's picture

Really great work, overall it's really usable. I'm not entirely used to having to expand replies in a thread (that's usually more of a comments functionality that you would see on a blog, aka disqus comments). I can't imagine creating a "flat thread" option would be too difficult though.

In regards to layout, it looks seriously awesome. As far as styling goes, my only suggestion would be to stick as close to the default bootstrap styles as possible for now.

Well done sir!

A lack of real world data

heylookalive's picture

A lack of real world data hasn't made this too clear, will fix. It's a normal thread as you'd expect but if someone directly replies to a post, it'll still be displayed in the thread normally but you can also see direct replies to a post inline, it's an AND instead of an OR.

Yep on Bootstrap, I'm not going too nuts with the styling as it needs to be halfway to a white-label or generic looking layout so it can be repurposed. When it comes to the theme all of the bootstrap specific classes will have to go. I'd prefer to keep them in so it's clear how it's all put together but in practice this won't work for Drupal as Harmony should work with just the core module.

GrantHorizons's picture

We run a big Drupal and vBulletin using vbdrupal site, and are VERY interested in getting away from vB, so lots of interest in how this goes.
http://www.horizonsunlimited.com

Comments:
1: agreed, needing to expand the thread is a non-no. The thread needs to be completely visible for scanning quickly.

2: Reply as a new thread - please remove this option - it's a nightmare - too many clueless users will click it and wonder where their post is, and others reading the thread may never see it. It's either a reply to THIS thread, or it's NOT.

3: a NEW Thread is a different subject, simple.

4: Keep the style simple and generic - if we were to use this for instance we'd immediately need to make it work in our design, so very simple is very good!

5: Doesn't need to be a distro - us and I suspect many others will already have a Drupal site running based on another distro and simply want to ADD a forum, so a module with the custom stuff and a list of the required modules is all we want. (We started off with Commons.)

6: We're on D6 - I suspect no hope of this ever being on D6, but will watch and comment as wee can - looking forward to upgrading to D8 and a second version of this :)

Grant

Hi Grant,Thanks, I'm putting

heylookalive's picture

Hi Grant,

Thanks, I'm putting a lot of effort into this and it's good to know there are potential users out there!

1. Yep, this is a bit unclear as I didn't make the thread page a bit more real world, but expanding will be an optional thing. The thread page will be like a traditional forum.

1.1 - Of note is that because I'll be using views to list the posts you can do whatever you like with this, you could have flat, threaded, top rated (first, descending), best of view (posts which have > x likes) as tabs, or one or any combination of these things. I'll be leveraging Drupal conventions for awesome flexibility.

2. This is a feature which will work with a permission so can be easily turned off. Permission is "Can create thread as reply" or something of the like.

3, 4. Yep! All good here.

5. No problems here, harmony_core module will be everything you need to unfold a strong forum in your site, everything else (access, social media, messaging etc) can be thrown in to add to harmony_core, and all of them together will form the distro.

6. Afraid not :) I couldn't think of trying to do this in Drupal 6 as it's entity at it's core.

Thanks for your questions!

The commits are coming in

JakeWilund's picture

The commits are coming in again, woot!

What a pleasure reading about this!

MXT's picture

We are all hoping a new great forum for Drupal!

I want to thank you very much to make this happen!!!

GOOD WORK!

Really love seeing this type

Media Crumb's picture

Really love seeing this type of progress. Great work!

Keep up the GREAT work!

greg.b's picture

A powerful forum is going to be a massive plus for Drupal.
Heylookalive .... a place awaits in the Drupal Hall of Fame.

Just wanted to add...

dang42's picture

...one more name to the list of folks very interested in a robust forum solution. Any thoughts on when an initial release might happen?

Also, it looks like (based on info up-thread) that any D7 site running either the core Forum module, or Advanced Forum, will be able to be imported into Harmony once it is released? A firm "yes" to this would be awesome... :)

Could've sworn that I

heylookalive's picture

Could've sworn that I responded to this, in short yes eventually an import will exist but not in the initial dev release which is beyond doubt before the end of this month. Much to be done but am getting there :)

Exciting!

reko888's picture

Just made an account today to post here that I'm extremely excited for a forum module like harmony.

I'm a new drupal developer, only 2 week under my belt and this is some functionality that I could really use. I'm not the biggest fan of the core forums or advanced forums module, and was really thinking about using vbulletin. But with no proper integration I might as well not use drupal if I was going the vbulletin route. I'm so happy that there is something coming that looks great, and has the integration we all need. I am closely following.

Hi, your situation is exactly

heylookalive's picture

Hi, your situation is exactly what we're aiming to help with! Integrating with other forum software tends to be a pain point especially with vBulletin.

Id suggest that you sign up to the newsletter as there'll be an update coming in the next week or two!

Http://getharmony.io

I've subscribed, and anyone

reko888's picture

I've subscribed, and anyone planning to use this module should too.

Hi all, an update! With any

heylookalive's picture

Hi all, an update! With any luck there will be a talk on. Harmony at the end of the month at Drupalcamp London. Progress is bumpy of late due to time constraints and other things but with the release of the at.js module things are going well.

I've said consistently a couple of weeks as to when there will be a release out, but the end of the month is the hard deadline which I won't go beyond, nature of this work is that there's always something that needs doing, but perfection is enemy of done. I'd cite whoever said that but can't recall.

For anyone who needs a fix of what's to come, have a look at at.js which is in harmony, specifically inline @mentioning users in posts with an autocomplete that has user avatars next to names!

http://Drupal.org/project/atjs