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.

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

How are the updates coming

Media Crumb's picture

How are the updates coming along? Do we have any working demos out there in the wild?

Morning, Things are

heylookalive's picture

Morning, Things are progressing nicely!

The most significant change to harmony_core is that there are now bundles/Thread Types which means that beyond the default "Thread" you could have things like "Poll thread" or "Q&A Thread" or if using with Organic Groups "Group thread".

There are two new modules relating to Harmony:

Harmony Access - Currently only a data store for access rules without a UI, although it has a submodule which lets you integrate with Organic Groups so that public/private group access extends to Threads within the group.

Harmony Search - Integration points and instructions for how to make Harmony content searchable with the Search API.

More to come as well! There are projects in progress that use Harmony but none which are live as far as I know.

Great news. It will be nice

Media Crumb's picture

Great news. It will be nice to see some live examples once people get their feet wet. Do we have any was to back the project.

I'm quietly following the

robertorc87's picture

I'm quietly following the project. I must say it's a big one but you seem up to the task.
I like the way you are keeping things modular.
I tried it months ago, but it was too incomplete to be used/to plan something based on it.
I should build a few communities this summer. I would like to use drupal7 with a "native" forum solution. One will be a very complex website with lots of nodes/cck and forums/discussions linked together, so cms integration is a must.
I'm kinda bored of the standard bulletin boards, I'd like to try something different and yours looks very promising.

  • Do you have some estimate date for a somewhat stable/usable live, feature freezed release?

Clearly it's ready when it's ready, but even a wild guess on times would be appreciated :)

Just started testing and i'm

Media Crumb's picture

Just started testing and i'm so impressed with how well it already functions out of the box. I can't wait to have a production ready version of this.

I have had a quick look

avolve's picture

I have had a quick look (basic features). Looks good so far, great work!

I have built a few sites with Advanced Forum (much kudos to Michelle), and kept on eye on the discussions about the Artesian Forum project.

Will be pcreating another install soon to explore further.

Have to consider now whether to start work on a D7 site and progress as this module suite develops, or wait for D8 & a more complete version.

Artesian

Michelle's picture

I'm back in the Drupal world but my current focus is finding a job ASAP so it's probably still going to be a month or two before I do any serious contributing.

Even though I have no use for a forum anymore, it bugs me that Artesian never got to a usable state so I'm planning on reviving it as a personal education project. To avoid conflicting with Harmony, though, and also because I really want to learn Drupal 8, I am going to start over and it will be a Drupal 8 only project.

Yay! Welcome back :) sounds

yautja_cetanu's picture

Yay! Welcome back :) sounds like a good idea Drupal 8 is a lot of fun to get into.

Thanks

Michelle's picture

Drupal 8 does look very cool and entities seem to be more fully baked, which will help a lot.

Sounds like Harmony is moving along nicely. That's good. Drupal 7 needs something. Advanced Forum is certainly a help over core forum but using core forum at the heart of it has always limited what was possible.

d8 forum

andypost's picture

@Michelle great to see you back!
D8 has a lot of changes in forum, but if you going to start from scratch please keep in mind that there was a lot of mentions in issue about that forum should use own entities and have no dependency on taxonomy ;)
Also there's meta issue for comment/forum https://www.drupal.org/node/2191565 that we are trying to keep updated with @larowlan

.

Michelle's picture

Great to be back!

I actually planned to dig into D8's core forum and see if I could be of any help there first before I do any contrib work so thanks for the list. Artesian will definitely be entity based so it's nice to know that core is leaning that way, too.

Wouldn't it just make more

JakeWilund's picture

Wouldn't it just make more sense to help contribute to Harmony and then work to release a D8 version in the near future?

Hmmm. This would be helpful

Media Crumb's picture

Hmmm. This would be helpful with past experience etc.

Obviously Michelle can speak

yautja_cetanu's picture

Obviously Michelle can speak for herself. But she got asked this a whole bunch of times when she went ahead with artisan instead of working with a team on it. She does this stuff for fun and so likes getting fully immersed in a project and owning the entire thing rather then contributing to something else like harmony.

Maybe that view has changed now.

Also D8 is really quite different, especially for forums. So I dunno if it does make sense. The whole mindset of how you'd build a forum in D7 will probably not just translate to D8 at all. It's definitely worth starting now with D8 as it means you have a chance of having something usable as D8 starts getting used.

Forget I mentioned Artesian

Michelle's picture

I didn't mean to derail this thread. I saw someone mention keeping an eye on Artesian and just intended to write a quick update, not start a whole subthread.

As for your question, well, honestly, there's no benefit for me to work on Harmony. That sounds callous but I spent 7 years and thousands of hours giving to the community and ended up burning out and leaving for two years. Spending all my time working on someone else's forum when I don't even have any use for a forum anymore doesn't appeal to me. I'm glad Harmony exists and wish it well but I'm not interested in signing up.

I don't really know what will happen with Artesian. It's going to be a personal project for me to learn D8 but there is no ETA and no real plan and it may never get out of my sandbox. In hindsight, I should have just kept my mouth shut about my intent as it isn't even relevant to this thread.

So just go on with Harmony and forget I even popped in here. :)

Hey Michelle, good to have

heylookalive's picture

Hey Michelle, good to have you back! I understand the point of view you're coming from with making your own thing. I'd suggest we start a new discussion thread for Artesian D8 as it'd be good to know where our projects overlap.

.

Michelle's picture

There already are a few threads for Artesian. I'll update them once I have a better idea of what I'm doing. It was way too premature for me to even talk about me restarting it and this is the wrong thread for it. I didn't think before I posted and I apologize for that.

No worries :)

heylookalive's picture

No worries :)

Cooperation and diversity in open source

juan_g's picture

Wouldn't it just make more sense to help contribute to Harmony and then work to release a D8 version in the near future?

That's just one of the good possibilities. In open source, there is free cooperation, but also free diversity, and each person can freely do both, even at the same time. As Drupal creator Dries Buytaert said recently:

I mentioned to Quentin that I thought Open Source was Darwinian; a proprietary software company can't afford to experiment with creating 10 different implementations of an online photo album, only to pick the best one. In Open Source we can, and do. We often have competing implementations and eventually the best implementation(s) will win. One could say that Open Source is a more "wasteful" way of software development. In a pure capitalist read of On the Origin of Species, there is only one winner, but business and Darwin's theory itself is far more complex. Beyond "only the strongest survive", Darwin tells a story of interconnectedness, or the way an ecosystem can dictate how an entire species chooses to adapt.

(Dries Buytaert: The business behind Open Source)

.

Michelle's picture

It's a bit ironic because I used to be a very passionate supporter of the "no duplicate modules" belief and actually was annoyed that Dries wasn't against it. Back then, though, there were a lot fewer modules and the community was much smaller and having two modules doing the same thing could be outright harmful due to user confusion and diluting of efforts.

These days I've relaxed my position quite a bit and think the community is big enough to handle different ways of doing similar things. That said, if I do end up making a real go of Artesian, I intend to make it different enough from Harmony to warrant its existence. I have a lot of ideas for it that takes it away from traditional forums into more of a general discussion module that can be used for forum or for other things as well. So I think there is merit in doing it and it's not just making yet another forum module.

That said, I've heard some good arguments for letting Artesian go and turning my attention to other areas that would benefit me beyond a learning experience. So I don't know what I'm going to do. At this point, I recommend people just forget about Artesian and focus on Harmony as that is a viable, active project and not just a dream that may not go anywhere.

I've been meaning to write a

heylookalive's picture

I've been meaning to write a proper update for a bit and that'll follow in a few days, in short developments moving at a frantic pace due to funding!

As it's come up Harmony D8 will exist, but not quite yet. There has been a massive amount of testing and review due to real world requirements which have resulted in a few minor additions. Overall this means that core is in the right state and solid. A straight port to D8 makes sense as I'm happy with the structure and setup.

That said until D8 is out I won't start on it as we'll be facing the same D6 to D7 experience (I'd have thought) with a now even steeper learning curve, as Harmony relies so heavily on contrib we'll start work once contrib is ready. D8 is pretty exciting and a real step forward and from what I've done with it can't wait to port.

Kudos!

PlayfulWolf's picture

Kudos for making distro!

drupal+me: jeweler portfolio