Overview: Create an install profile for installation of a social networking framework with Drupal, possiblity to be name the DSNF, or Drupal Social Network Framework.
Description: I believe that modules exist today representing the majority of functionality needed for a social network. The modules are in various states of development, and they may or may not be "prepared" to work well together. This project would consist of four phases:
- Evaluation phase - indentify an document the major features of a default social network, and indentify all Drupal modules that provide specific pieces of this puzzle, evaluate each for its readiness.
- Missing feature identification - document missing features, and include a proposal with each feature to either create code contributions for existing modules or to create new modules to provide the missing features.
- Write awesome code!
- Installation profile - create the installation profile, to include a default theme and all necessary modules.
Here is my own starter list of modules
User Relationship - http://drupal.org/project/user_relationships
Friendlist - http://drupal.org/project/friendlist
Advanced Profile Kit - http://drupal.org/project/advanced_profile
Organic Groups - http://drupal.org/project/og
Heartbeat - http://drupal.org/project/heartbeat
Panels - - http://drupal.org/project/panels
Spaces - http://drupal.org/project/spaces
Context - - http://drupal.org/project/context
Activity - - http://drupal.org/project/activity
Mentors:
* I would love to help. I probably do not have enough Drupal experience to be a mentor, but I would love to help.
Difficulty: Medium
Comments
Spaces or Patterns?
It really seems like the movement at the moment is away from full on install profiles and towards the use of Context/Spaces or Patterns for easy deployment of rich feature sets. This seems to me to be a perfect use case for one of those deployment suites- could we maybe push this towards those (better supported) areas?
And you can be a mentor without a ton of Drupal experience- but you'll absolutely need to team with another mentor that does.
--
Alex Urevick-Ackelsberg
ZivTech: Illuminating Technology
Alex Urevick-Ackelsberg
ZivTech: Illuminating Technology
Both
Please please PLEASE don't bash on install profiles! As I have said many many MANY times before -- they are what we have in core today. Ideally, they will EVOLVE to have the functionality of context/spaces/packages in core, but if we do all our work outside of core without attempting to get changes made to core ... well, we know what happens.
So, think more like an install profile that contains sets of Context / Spaces as how to install stuff. This is the best of both worlds, since you can then do an at install time full setup, as well as add features to existing sites after the fact.
Make sense?
I'm not the gate keeper...
Color me skeptical about install profiles as they currently stand, but obviously these are just my opinions. If someone can make install profiles that actually work over the lifespan of a website, then by all means they should do so. ATM, I have never seen a successful implementation of Drupal's core install profiles, though possibly spaces/context or patterns could change that- I just don't know.
I'm also in the camp that feels that core issues shouldn't be a big part of the SoC, since the likelihood that the functionality will actually land as part of the program seem pretty slim.
Again, these are just my opinions and should not be taken to be rules about what can and can't be done, nor am I an expert in the inner workings of install profiles, so I am not an authority to say what can or cannot be done using them. If there are successful use cases already out there, that would be really valuable info for these proposals- do you know of any using the core install profiles?
--
Alex Urevick-Ackelsberg
ZivTech: Illuminating Technology
Alex Urevick-Ackelsberg
ZivTech: Illuminating Technology
Installing a site the first
Installing a site the first time, and updating and existing site, are very very different problems. I personally don't think it is appropriate to think in terms of one solution which applies in both cases. Given that I would love to see additional work thrown at install profiles and install profile api, and if this can come through a SoC project then more power to it.
I'm not sure about the scope of the work since i have little experience with install profiles. Michelle would be a good person to loop in and look at this proposal since she's done a ton of work in this area.
I concur
I am really wanting to address an initial installation. My company is working on 2 fairly large multi-site installs with a goal of a 'one-click install', so to speak, by using install profiles and some scripting. So, I'm carrying a similar idea into this group in hopes that:
We can create a profile or some other tool (context, spaces, aegir, best solution) for packing and installing need-specific Drupal installs, i.e. a social network profile or a school / university profile, or an e-commerce profile.
Make this ability generic and repeatable, so anyone with a desire to do so can build such a profile.
I actually agree with both
I have not yet used Context / Spaces enough to fully evaluate their use and know how they can help me going forward. They do appear to be an amazing way to package common functionality for easy deployment. That being said, install profiles do indeed existing today as a powerful tool that I think is under-utilized.
What I hope to propose is an easy-to-deploy "framework" for quickly launching a Drupal-based social network application / site. I am struggling now to cobble together all the modules for just such a project, and it takes me back to my introduction to Drupal itself, that "I know I can do xyz, I just don't know exactly how".
Drupal sits in an interesting space. The need to "protect" core from feature bloat and scope-creep is real and viable, and modularity is a powerful ally. But we all know the pains of integrating numerous third-party modules that in your gut you know should really be more closely related / coupled. But, then you also realize the power of thousand of developers contributing to an amazing community, such that a little pain typically comes with great reward.
I guess what I'm trying to say is that I am amazed by all things Drupal, and because I get constant requests for pricing for social networking sites, I realize that Drupal core is mature enough to be the foundation upon which numerous "application spaces" can reside. Social networks can live on top of Drupal, e-commerce sites can live on top of Drupal, education sites, non-profit sites, job boards, business directories, small business sites. You pick your niche, the foundation is the same, your platform is flexible, it is awesome!
As I said, I will help any way I can help. I would like to first explore an install profile but also investigate context and spaces more to understand how they can serve this purpose. I think the install profile is necessary to ensure the right modules, with base configurations, are in place. Then it seems that Context and Spaces exist at a higher level to pre-define the major 'sections' of the site. Sections is probably not a good term, so Spaces is better. I'll have my Blog space, my Photo Gallery space, my User Profile space, my Friends space, etc.
Thanks for the input, I love the discussion. How real is the chance that this becomes a project?
very real!
"How real is the chance that this becomes a project?"
Again, take this as an opinion, not a statement of fact, but I believe it is very likely that we will get at least one, if not more, projects around distribution profiles (or rich feature sets). There is a lot of movement in the community for better deployment tools, and there was a lot of buzz at DrupalCon about the various tools in this area (Aegir, Patterns, Spaces), so if we get quality students to pick up these ideas and run with them, I'm sure we'll find mentors for them, and I'm fairly confident the proposals would be voted into actual spots.
--
Alex Urevick-Ackelsberg
ZivTech: Illuminating Technology
Alex Urevick-Ackelsberg
ZivTech: Illuminating Technology
Tagged as an official idea...
I went ahead and made this into an "official idea". We need to hash this out a lot more, but the same is true of most (if not all) of the ideas at the moment.
Alex Urevick-Ackelsberg
ZivTech: Illuminating Technology
Alex Urevick-Ackelsberg
ZivTech: Illuminating Technology
I support this project
And will happily help mentor it. I'm the original creator of the install profile API module.
My "rant" to you, Alex, was exactly meant to address phrases like "Color me skeptical about install profiles as they currently stand".
What if I were to say "Color me skeptical about the core blog module as it currently stands"?
Both of those statements are just indications that we need to suggest and implement fixes - rather than just ignore or bitch about them. Rant off :P
I didn't even know about Patterns
Maybe the solution already exists? I can sense frustration over duplicating efforts. And I for one would prefer we all collaborate on the best solutions for a single problem, so anything I can do to help I'll do. Patterns, Install Profiles, Context + Spaces, lets don't build many tools to solve similar problems if we can avoid it.
Multiple issues
Sorry, this likely muddied the waters.
If you want an out of the box Drupal distribution that does social networking -- that's an install profile, and it's part of core D6, today. You can even build a wizard as part of install that walks people through set up process.
Is it super easy to do? Nope, not at all, since you have to reverse engineer a bunch of contrib modules and how they set variables and such.
This was discussed at Drupalcon DC. The working consensus, IIRC, was that all players would work together on a set of import / export hooks in core, that we would encourage all contrib modules to implement themselves. This provides a mechanism of moving support for configuration capture to each module, rather than requiring helper modules or centralization like we've had to do with install profile api.
If you want to build this today, for D6, then it's pretty much a combination of install profiles and perhaps Patterns (even Patterns works with install profiles). I, personally, am strongly on record as not liking patterns because I don't think twiddling around with XML gets us farther towards evolving core, but Chris and the Gravitek team have done great work.
At the end of the day, this is the kind of research you're going to have to do to craft a great proposal, as well as a great product. Let me know what you need help or explanation with.
Friends
Flag Friend is a pretty new and interesting module that uses bi-directional flagged users to become friends. The Flag module is awesome, and should be used.
Also note DrupalSN, a social networking application made in Drupal to show what Drupal is capable. Made in Drupal 5 though ;-) .
Install profiles, PLUS context/spaces/features
We've been researching this for a while now, and are leaning toward a solution that uses an install profile (for some base defaults) followed by context and spaces (in all likelihood, as part of the install process, but leveraging the functionality of these two modules) for more complex config options --
Part of what has shaped our thinking is that install profiles are a tool to be exposed to the end user to make their lives easier, and something like context and spaces are tools to be leveraged on the development side/by people with more technical expertise to deploy functionality more efficiently. Using features allows config options to be captured, which in turn takes the sting out of preparing config options for use in the install profile.
Like heyrocker says above, coming up with one solution to handle both the initial install and the ongoing maintenance is unrealistic -- these are two separate issues.
Also, wrt patterns (which I have examined, but not in any detailed way), it has it's uses, but as a tool to simplify life for non-technical users (as I see it, one of the main uses for install profiles) it falls short due to the requirement of third party code that must be downloaded and installed separately.
RE Flag Friend, and Flag awesomeness in general: Amen to that. Flag rocks!
Cheers,
Bill
FunnyMonkey
Click. Connect. Learn.
Using Drupal in Education
FunnyMonkey
This looks interesting...
This project has caught my attention and I just thought I should give a heads up that I'd possibly be interested in helping out with its development. That said, the decision isn't final as I'm still wandering around the ideas but you may see me in the future.
Regards,
Christopher
I'm totally on-board this!
Heya,
I'm really excited about this and keenly interested in applying as the student developer for this idea.
My partner and I launched a D5 social site (http://OpenMynds.com, aka. OM) last May and we've cobbled and hacked together D5 contrib modules to create a more interactive site. I've been mulling over how to move our site up to D6 and we've been combing through the current contrib modules to cover the current features of our site and expand upon it: friend list, forums, groups, profiles, chat (Java-powered RealChat, given to us by a friend), private messages.
We talked about creating an installation profile for OM, but it seemed like overkill to create a single-use profile. I'd like to abstract beyond OM to a general DSNF. I'm not familiar with either Context/Spaces or Patterns and they're in alpha/dev.
I'm worried about managing the scope of my abstract, as there are tonnes of UI and usability contrib modules that can be useful (flag, some sort of node access control, login toboggan, improved user search, wysiwyg, (re)captcha and spam control, analytics, image uploading and gallery stuff, etc.).
The end goal I have in mind is a framework that a non-technical (ie. doesn't need to code) user can use to roll out a social site. Install profiles does this, as Bill said, but it sounds like the other approaches are oriented for developers. I'd like to focus on the initial install.
Anyway... off to craft the abstract. Fun times.
James
I've created a student idea for the DSNF.
I've created a student idea (DSNF - Drupal Social Network Framework (James version)) for the DSNF. Looks like the official ideas' list has been closed.
I hope my take on the proposal matches your thoughts. It's not an idea fork, but it was recommended that I put forward a discussion on the idea to hone my proposal. Do check it out and let me know what you think of it.
Thanks!
Module list
You have a lot of competition in this area. LOL! When I started working with SN in Drupal a couple years ago there wasn't much info out there. Now there's a couple books on it and lots of work being done.
Here's a list of modules that I'm using in the ebook I'm writing. It's a work in progress so is still pretty messy. If I change the URL I'll try to remember to come back here and change it.
http://shellmultimedia.com/tutorials/contributed-modules
Michelle
See my Drupal articles and tutorials or come check out the Coulee Region
how do we gather this into a concerted effort?
I really would like to avoid competing initiatives, where possible. I don't even know if my proposal got picked up in any official way, so I'm trying to figure out what to do next.
Hi I added my proposal to
Hi
I added my proposal to GSOC
http://groups.drupal.org/node/20829
Thanks
Senior Drupal Developer at DrupalConnect
Is yours different
I read your proposal, is it different than this one?
I'm trying to get a handle on all the great feedback, hopefully I will have a better understand of where this might go.
I notice the last comment in
I notice the last comment in this thread is last April. Has this effort moved somewhere else or is it dormant? I am working on launching a drupal social networking site to replace my current ning site.