Skip to Content

Drupal

Appnovation Technologies: 5 Cool Drupal Websites

Planet Drupal - 26 January 2015 - 3:27pm
It’s hard enough trying to find cool websites in general, let alone cool websites made using Drupal. var switchTo5x = false;stLight.options({"publisher":"dr-75626d0b-d9b4-2fdb-6d29-1a20f61d683"});
Categories: Drupal

On the hard choices we make every day

Dries Buytaert - 26 January 2015 - 11:41am

Every morning when I wake up, I have choices to make. While I want to turn Acquia into a billion dollar company, I also want to grow Drupal to be the leading digital experience platform. Both are connected and some of the work overlaps, but it still requires me to decide how much of my energy to focus on my duties as the CTO of Acquia as well as my duties as the project lead of Drupal.

It has been a few years since I wrote a good amount of code and I miss the thrill of programming -- both roles with Drupal and Acquia have evolved into management positions. Going back to writing software is a choice too, and one that I would undoubtedly enjoy. I think about it almost daily, and every time I decide not to.

At the same time, I also want to say 'yes' to the many invitations to travel the world, to speak at conferences, or to spend time with people I look up to. I also want to reply to all the emails I receive; I don't like it when emails fall through the cracks. I want to use my network and experience to advise other entrepreneurs or Open Source projects. I'd love to increase my responsibilities as a Young Global Leader at the World Economic Forum (I'm bummed I couldn't attend Davos last week) and contribute to solving some of humanity's biggest problems. Other times I ask myself; why not kick back and have more time with friends and family? That is really important too.

When I push open the drapes in the morning, I have choices to make. The choices looked simpler when I was younger — most days I don't remember having to make choices at all. But as my work has grown in reach and impact, the choices in front of me have expanded as well. Every day, I struggle with these choices and ask myself how to spread my energy. I realize I'm not alone, as I know many others have tough decisions to make.

My guiding principle is to optimize for impact, purpose and passion — it is a delicate and personal balance based on the belief that somehow all the dots will connect.

My deep-wired desire to optimize for impact, has not been without challenges. It has been an extremely strong force pulling me away from other relative priorities involving family, friends and personal health. Through better planning, I've gotten better at making time for family, friends, eating well and exercising. There is no denying that every decision has trade-offs: when I choose to do one thing it means I choose not do something else. Not doing something means I let people down, and as more and more choices present itself over time, it means letting down more and more people as well. If I let you down, I hope you understand. And one of the people I let down is myself, as I may never write software myself again -- it may never be the most impactful to do.

The best thing a human being can do is to help another human being. The organizations I'm building, the things I'm passionate about, the things I read about and the decisions I make will hopefully all lead to helping many more people. In turn, I hope that some of the people I have coached and worked with will pay it forward. Making choices is difficult but all in all, it's a wonderful feeling to see how many people I've touched by doing what I enjoy and love.

Categories: Drupal

Chocolate Lily: Drupal 8 and distributions part 2: problems and prospects

Planet Drupal - 26 January 2015 - 11:10am

This is part two of a series on configuration management challenges in Durpal 8. Part 1 looked at challenges for small sites and distriubtions.

What is the state of support for distributions in Drupal 8?

Trying to gauge the state of anything in Drupal 8 has its inherent pitfalls. The software itself is still changing rapidly, and efforts in the contributed extensions space have barely begun.

Categories: Drupal

Another Drop in the Drupal Sea: Seeking Pilot members for Udemy Drupal Training course

Planet Drupal - 26 January 2015 - 10:22am

The Kickstarter campaign was not funded, but that does not mean that it was not successful! We are still moving ahead. I've just published my first course on Udemy and would like to get pilot members to provide feedback so that I can make sure the course ends up being world class.

Here is a coupon code to access the course for free: https://www.udemy.com/getting-started-with-drupal-for-total-beginners/?c...

read more

Categories: Drupal

Views Fast Field

New Drupal Modules - 26 January 2015 - 9:12am

This module provides Views fields which display entity fields without entity loading and, optionally, without standard logic of field formatter processing.

By implementing views_fast_field_formatter() hook, custom formatters can be defined for fields having complex data.

Categories: Drupal

MediaFront: Popcorn Player

New Drupal Modules - 26 January 2015 - 8:30am

Mozilla Popcorn player plugin for the MediaFront module... more details to follow.

Categories: Drupal

Views Node Type Default Arg

New Drupal Modules - 26 January 2015 - 6:38am

This module makes it possible to create a block view and filter it by the node type of the current node throught a default argument.

The code for this module was published on Stack Exchange http://drupal.stackexchange.com/questions/11979/contextual-filters-and-n.... Since this is a problem multiple people encounter, it makes sense to have this in a project.

Categories: Drupal

Bootstrap Calendar

New Drupal Modules - 26 January 2015 - 6:11am

A Full view calendar based on Twitter Bootstrap.
Uses the Bootstrap Calendar widged from @serhioromano.
This module requieres bootstrap framework installed, either on a bootstrap theme or just the library.

Categories: Drupal

File Field Icons

New Drupal Modules - 26 January 2015 - 5:05am
Categories: Drupal

Web Omelette: Creating a custom Views filter in Drupal 8

Planet Drupal - 26 January 2015 - 12:05am

In the previous article we've seen how we can interact programatically with Views in Drupal 8 in order to create a custom field in our Views results. Today, we will be looking a bit at how we can create a custom filter you can then add to the View in the UI and influence the results based on that.

The code we write here will be available also in this repository together with the one we explored in the previous tutorial.

Filters in Views have to do with the query being run by Views on the base table. Every filter plugin is responsible with adding various clauses in this query in an attempt to limit the results. Some (probably most) take on configuration parameters so you can specify in the UI how the filtering should be done.

If you remember from the last article, to create our field we extended the FieldPluginBase class. Similarly, for filters, there is a FilterPluginBase class that we can extend to create our own custom filter. Luckily though, Views also provides a bunch of plugins that extend the base one and which we can use or extend to make our lives even easier. For example, there is a BooleanOperator class that provides a lot of the functionality needed for this type of filter. Similarly, there is an InOperator class, a String class, etc. You can find them all inside the views/src/Plugin/views/filter directory of the Views core module.

In this tutorial, we will create 2 custom filters. One will be a very simple one that won't even require creating a new class. The second one will be slightly more complex and for which we will create our own plugin.

The code we write will go in the same module we started in the previous article and that can be found in this repository.

Node type filter

The first filter we will write is very simple. We want to be able to filter our node results by the machine name of the node type. By default, we can use a filter in which we select which node types to be included. Let's say, for the sake of argument, we want a more complex one, such as the one available for a regular text value like the title. The String class will be perfect for this and will provide actually 100% of our needs.

So let's go to our hook_views_data_alter() implementation and add a new filter:

... $data['node_field_data']['node_type_filter'] = array( 'title' => t('Enhanced node type filter'), 'filter' => array( 'title' => t('Enhanced node type filter'), 'help' => t('Provides a custom filter for nodes by their type.'), 'field' => 'type', 'id' => 'string' ), ); ...

Since the table that we are interested in altering the query for is the node_field_data table, that is what we are extending with our new filter. Under the filter key we have some basic info + the id of the plugin used to perform this task. Since our needs are very simple, we can directly use the String plugin without us having to extend it. The most important thing here though is the field key (under filter). This is where we specify that our node_type_filter field (which is obviously a non-existent table column) should be treated as being the type column on the node_field_data table. So, by default, the query alter happens on that column. And this way we don't have to worry about anything else, the String plugin will take care of everything. If we didn't specify that, we would have to extend the plugin and make sure the query happens on the right column.

And that's it. You can clear your cache, create a View with nodes of multiple types and add the Enhanced node type filter to it. In its configuration you'll have many matching options such as equals, contains, does not contain etc you can use. For example, you can use contains and specify the letters art in order to return results whose node type machine names contain these letters.

Node title filter

The second custom filter we build will allow Views UI users to filter the node results by their title from a list of possibilities. In other words, they will have a list of checkboxes which will make it possible to include/exclude various node titles from the result set.

Like before, we need to declare our filter inside the hook_views_data_alter() implementation:

... $data['node_field_data']['nodes_titles'] = array( 'title' => t('Node titles'), 'filter' => array( 'title' => t('Node titles'), 'help' => t('Specify a list of titles a node can have.'), 'field' => 'title', 'id' => 'd8views_node_titles' ), ); ...

Since we are filtering on the title column, we are extending again on the node_field_data table but with the title column as the real field to be used. Additionally, this time we are creating a plugin to handle the filtering identified as d8views_node_titles. Now it follows to create this class:

src/Plugin/views/filter/NodeTitles.php:

<?php /** * @file * Definition of Drupal\d8views\Plugin\views\filter\NodeTitles. */ namespace Drupal\d8views\Plugin\views\filter; use Drupal\views\Plugin\views\display\DisplayPluginBase; use Drupal\views\Plugin\views\filter\InOperator; use Drupal\views\ViewExecutable; /** * Filters by given list of node title options. * * @ingroup views_filter_handlers * * @ViewsFilter("d8views_node_titles") */ class NodeTitles extends InOperator { /** * {@inheritdoc} */ public function init(ViewExecutable $view, DisplayPluginBase $display, array &$options = NULL) { parent::init($view, $display, $options); $this->valueTitle = t('Allowed node titles'); $this->definition['options callback'] = array($this, 'generateOptions'); } /** * Override the query so that no filtering takes place if the user doesn't * select any options. */ public function query() { if (!empty($this->value)) { parent::query(); } } /** * Skip validation if no options have been chosen so we can use it as a * non-filter. */ public function validate() { if (!empty($this->value)) { parent::validate(); } } /** * Helper function that generates the options. * @return array */ public function generateOptions() { // Array keys are used to compare with the table field values. return array( 'my title' => 'my title', 'another title' => 'another title', ); } }

Since we want our filter to be of a type that allows users to select from a list of options to be included in the results, we are extending from the InOperator plugin. The class is identified with the @ViewsFilter("d8views_node_titles") annotation (the id we specified in the hook_views_data_alter() implementation).

Inside our plugin, we override three methods:

Inside init(), we specify the title of the set of filter options and the callback that generates the values for options. This callback has to be a callable and in this case we opted for the generateOptions() method on this class. The latter just returns an array of options to be presented for the users, the keys of which being used in the query alteration. Alternatively, we could have also directly created the options inside the init() method by filling up the $this->valueOptions property with our available titles. Using a callback is cleaner though as you can perform various logic in there responsible for delivering the necessary node titles.

The point of overriding the query() and validate() methods was to prevent a query and validation from happening in case the user created the filter without selecting any title. This way the filter has no effect on the results rather than returning 0 results. It's a simple preference meant to illustrate how you can override various functionality to tailor your plugins to fit your needs.

And that's it. You can add the Node titles filter and check the box next to the titles you want to allow in the results.

Conclusion

In this article we've looked at how we can create custom filters in Drupal 8 Views. We've seen what are the steps to achieve this and looked at a couple of the existing plugins that are used across the framework which you can use as is or extend from.

The best way to learn how all these work is by studying the code in those plugin classes. You will see there if they are enough for what you want to build or extending them makes sense. In the next article we are going to look at some other Views plugins, so stay tuned.

var switchTo5x = true;stLight.options({"publisher":"dr-8de6c3c4-3462-9715-caaf-ce2c161a50c"});
Categories: Drupal

Media Field Collection

New Drupal Modules - 25 January 2015 - 5:48am

Small tweaks to better integrate the Media and Field Collection modules.

Categories: Drupal

Bundle Resource

New Drupal Modules - 25 January 2015 - 5:43am

Bundle Resource is a simple module that provides separate Services resource entry for each node and taxonomy bundles defined in the system. The module is extendible, so it's easy to provide bundle resources for other entities using hook_bundle_resources().

Categories: Drupal

Drupal Association News: Drupal.org team week notes #31: 2014 in review

Planet Drupal - 25 January 2015 - 4:24am

Now that we are few weeks into 2015, we’d like to look back at 2014 and share some interesting numbers about Drupal.org.

Audience

Last year Drupal.org received almost 48.9 million visits from 21.2 million unique visitors. The spike around September/October is due to spam-related traffic, and, of course, DrupalCon Amsterdam.

Users

152,200 users logged in to Drupal.org at least once during the year. Out of those, 31,466 users performed at least one activity on the site, such as commented, created a node or committed code.

More than 21,500 people left a comment or more in the issue queues. More than 4,000 people commented in the Drupal core issue queue.

Commits

Overall 145,907 commits happened on Drupal.org, with more than 4,000 commits to Drupal core specifically.

More than 3,200 people committed code to contributed projects (not counting Drupal core), with an average of 37.43 commits per user.

More than 1,400 people got commit mention in Drupal core patches.

Comments & Issues

Our users left 569,217 comments, 94% of them were comments in the issue queues. 30% of all comments in the issue queues happened in Drupal core queue.

On average there were 22.4 comments per user, with 38.74 comments per user in the Drupal core issue queue.

Our users created 78,505 issues, with an average of 4.55 issues per user.

5,192 contributed projects were created on Drupal.org in 2014. 31% of those are sandbox projects.

Infrastructure

On the infrastructure side our uptime was 99.97% over 12 months, and the average full page load time for the year is 3.64 across Drupal.org. It improved throughout the year; we are down to 3.08 as an average for December. Our time to first byte response was 1,374ms in January; we are down to 441ms for December.


Drupal.org testbots tested over 33,300 patches. An average test queue and test duration times for Drupal 8 core were about 35 minutes each.

Support

On support front 82% of issues in Drupal.org-related issue queues got a response within 48 hours after being created.

An average response time (time between an issue was created and first comment not by issue author) across all issue queues on Drupal.org was 82.87 hours. For Drupal core issue queue this number was 60.68 hours. For Drupal.org related queues 34.19 hours.

* * *

Full stats you can find in the 2014 stats spreadsheet.

Compared to 2013 some of the user activity numbers go down, which is directly related to the phase of the Drupal release cycle. Right after Drupal 7 release user activity peaked and then was slowly going down as Drupal 7 and contrib ecosystem matured. We are looking forward to Drupal 8 release! In the recent Drupal Association community survey about 80% of respondents said they have firm plans to adopt Drupal 8, suggesting that release will cause a huge boost in user activity on Drupal.org.

2014 was a great year, and thank you for spending some part of it on Drupal.org! We are excited to see what 2015 will bring.

Categories: Drupal

Views Get Parameter

New Drupal Modules - 24 January 2015 - 6:32pm

Views GET Parameter adds a new option to the "Provide default value" dropdown that lets you specify a GET parameter to use for the value you wish to filter from.

Originally posted on BitBucket as get_arguments.

Blog post at Commercial Progression.

Categories: Drupal

Commerce Guys: Platform.sh hosting for eCommerce – it’s a game changer

Planet Drupal - 24 January 2015 - 12:05pm
Agency and online customer Use Case & experiences

Platform.sh is a 2nd generation Platform as a Service (PaaS). It accelerates your PHP/Drupal/Symfony based project development and reduces the risk of moving new features into live. Some customers are seeing circa. 40% reduction in project budgets and revenue loss prevention, whilst gaining huge improvements in developer productivity, eliminating environmental resource management and reducing live downtime to zero, all at commodity hosting prices! For an Agency providing web development, commerce and hosting services, or the end customer themselves, understanding the detail behind these very powerful messages is an important factor to making the right decisions around the critical tools and technologies that impact their business, especially if say the pricing structure appears to be a little higher than the known alternatives.
 

There is a huge amount of eCommerce experience built into Platform.sh

Commerce Guys are involved in many leading edge developments that are pushing the boundaries of how eCommerce is being utilized and evolved to meet new business models, many of which are tied into faster development, more frequent changes and better uptime. These include the migration of offline customers into advanced online purchase environments; encouraging said customers to spend more money whilst at the same time becoming less expensive to support, requiring tighter integrations of support and customer care functions; also important is the delivery of B2C-like experience for B2B customers; as well as defining online and mobile strategies in conjunction with each other; Drupal 8, Distributions etc. etc.

What gives Commerce Guys the credibility to offer such a convincing project development tool? We are a commercial software vendor, and we’ve invested several $m into building the Drupal Commerce application and its Kickstart distribution (deployed into over 50,000 active sites), so we know how to develop successful software products on an industrial scale. Of further relevance is the deep involvement we have in so many of our partner projects each year, providing analysis, design authority and development skills that puts us in the middle of hundreds of individual and unique development processes ! What we have engineered into the heart of Platform.sh is the flexibility to overcome the big problems and common manual activities that hold project teams back.
 

Different customers, all with common problems

Let’s take a look at a handful of typical eCommerce customers, and work through their issues:

  • A Digital Agency (DA) with a global pharmaceutical client who has many simple but different web-shop brands across 18 European countries.
  • A Systems Integrator (SI) with a high street optician as their customer, with an eCommerce system covering 14 territories. They have all the usual requirements of a high end client plus an unusually complex hosted infrastructure accommodating various index sites and 10 plus environments in each location, totalling 150 service instances.
  • A Retail Fashion client rolling out a Distribution based eCommerce system to 4 geographies.
  • A pureplay online marketing business providing 4,000 products through a Social Media community exceeding 200,000 people in 22 countries around the world, of which the mobile traffic accounts for over 70% of their revenues.

And although both the Agency and the Integrator are at the high end of technical capability, and the 2 retailers have way less experience, they all have similar sets of problems that only Platform.sh seems to be able to solve.

 

Complex eCommerce applications versus simple brochure-ware sites

 

To properly emphasize the advantages that Platform.sh brings to an eCommerce system, we first need to draw a comparison between the complex and transactional nature of these customers’ applications, and that they usually work differently in each country, and as such require various different code bases. By comparison, these are very different for example, to brochure-ware sites with a central content repository, combined with simple language differences plus content change workflow pushed out through a multi-site architecture.
 

Typical lifecycle issues that all 4 of these online businesses worry about

To start with, the development process differences between these two project personalities (multi-region eCommerce and multi-site brochure ware) are significant, the differences being 1) many more environments through which the upstream movement of code is being managed, 2) a much longer code-test-production timeframe, 3) bigger testing overheads (including tools, time and people), 4) complex content approval workflows, 5) higher consequential management costs, and 6) a severe risk impact of changes not working in production and feature release delays due to poor Continuous Integration (CI).

All the above are directly related to revenue loss - exacerbated by reputational damage in severe circumstances – which of course make them fairly unique to eCommerce. The effects on cost, time and business risk all increase exponentially when considering multi-country implementations.

 

What Platform.sh does for eCommerce that nobody else can !

Platform.sh solves many problems specific to this eCommerce Use Case, as well as easing various issues that make such projects more expensive to deliver and very laborious to manage,as follows:

  1. Many development process issues are greatly affected, resulting in a significantly reduced number of coding errors due to inconsistent environments, and greatly reduced elapsed times in the code delivery process from local environment through test, staging and user sign-off.
  2. Hugely improved Continuous Integration (CI) process that speeds up the change process for similar features across multiple environments into different local production services.
  3. True Continuous Delivery (CD) now becomes possible because the process no longer requires large number of changes to be bundled up and tested together before going to production say every 6-8 weeks. In this new regime, even the smallest of changes can whistle through in less than 60 minutes, which is vital for changes to aspects of the ‘Sale Offer’ during peak season, modifying coupon functionality for instance, or making micro changes during the advertising campaign.
  4. Steep cost reductions associated with maintaining multiple static environments (because re-creating from staging for new development environments isn’t possible or takes too long). Developers now have the power to create and destroy their own full-stack environments that mirror staging or say the master.

We’ve learned from various retailers using Platform.sh in the run up to holiday periods and promotions (especially Black Friday, Cyber Monday and December 26th) that the reduced risk of making changes into live offered by Platform.sh, plus the triple redundancy we provide in the Platform Enterprise (PE) offering with its ability to seamlessly upscale around traffic peaks are all regarded as extremely valuable to their business, the combination of which simply cannot be provided by alternate vendors ! This makes Platform.sh a must for any mission critical eCommerce site.

Categories: Drupal

Reference Table Formatter

New Drupal Modules - 24 January 2015 - 8:25am

Reference Table Formatter allows you to render a table of fields on the target entity of a variety of different reference field types.

Currently support reference fields are:

The field formatter supports the following options:

Categories: Drupal

Commerce Stocked Default

New Drupal Modules - 24 January 2015 - 4:13am

This module has no UI, enable it to ensure that the default product shown to users on the add to cart form is an in-stock item. This is helpful for e-commerce stores with a large number of low stock product variants.

Categories: Drupal

User Picture Initials

New Drupal Modules - 24 January 2015 - 2:55am

This module replaces the "Default user picture" with the user's initials. So when the used didn't upload a picture, the website displays JD for John Doe, or simply A for Admin.

Using the module

Simply enable the module. That's all. No settings needed. It even comes with default CSS (see screenshot) and Views integration.

Categories: Drupal

DrupalCon News: Send Us Your Sessions and Training Proposals

Planet Drupal - 23 January 2015 - 4:28pm

Think you’ve got Drupal or web smarts? We’re seeking mind-blowingly good sessions for DrupalCon Los Angeles, and want to hear from you about what you know best.

You don’t have to be the best in everything, but if there’s one topic you know inside and out, you should submit a session.

We’re looking for topics for the following tracks:

Categories: Drupal

cs_shadow: Tips for Google Summer of Code

Planet Drupal - 23 January 2015 - 2:41pm

Google Summer of Code 2015 is approaching and few people started asking me about how to get selected in GSoC 2015 and where to start. So I though to go ahead and write a blog post so that others can also benefit. This post targets students who have never participated in GSoC before and want to know how to get started with the application process and open source in general.

What is Google Summer of Code? How it works?

The GSoC FAQ page should suffice to answer most of your queries and I strongly suggest to go through it before looking anywhere else for answers.

Google Summer of Code is a program that offers student developers stipends to write code for various open source projects. We work with many open source, free software, and technology-related groups to identify and fund projects over a three month period. Since its inception in 2005, the program has brought together over 8,500 successful student participants from over countries and over 8,000 mentors from 109 countries worldwide to produce over 55 million lines of code.

So, basically this is how it works:

  • Different orgs (open source organizations) submit their applications to be part of the program and Google chooses about 190 of those based on their application and past record.
  • Once the orgs are selected, the list will be available on Melange. Each org will have an ideas list and a homepage.
  • You need to choose one of the ideas from the list on the ideas page and submit your proposal. (Details on this below)
  • Then you wait for Google to announce the list of selected proposals. If you find your proposal there, then the hardest part is over and now you code with your org for about three months and complete the proposed project.
  • If everything went smoothly so far, you'll get a handsome paycheck for your contribution and you'd have learnt a lot about your project, org and open source.
There are so many orgs, which one do I choose?

This is probably the single most asked question every year around this time. The answer is pretty straightforward if you're already involved with any open source organization and want to continue work with the same org, then go for that one. If the answer to the previous question is no (which might be the case for most of you reading this post), then you need to choose a few orgs from the list of all accepted orgs. Although you will finally work with only one org, it might be a nice idea to select 1-3 orgs to which you may submit your proposals. You can shortlist the orgs based based on tags, for example if you're familiar with C++, you can filter the orgs which have the C++ tags mentioned on Melange.

If the org list of this not out yet, you can look at the list of orgs which participated in GSoC last year. For instance, you can take a look at the list of orgs which took part in 2014 and 2013. Filter the orgs based on the tags you're either familiar with or want to work on. Orgs which participated in previous years and took in more than a couple of students are more likely to get accepted again this year. Based on this and your favorite tags, you filter out 1-3 orgs.

After this, the next task is to go through the idea list for those orgs and decide what ideas interest you most. If you don't fully understand the ideas, it's completely fine and the next step will be to get your doubts cleared up by contacting the org and/or the mentor of the task (more on this in the next section).

Okay, I've decided an org and project idea, what do I do next?

Once you've decided what project idea interests you most and some parts of the description are either unclear to you or you want to clarify a few details, you should get in touch with the task mentor and the organization in general. All the orgs have a contact section on Melange which will tell you how to contact the org. Most orgs prefer communication either via IRC or mailing lists so you can get in touch with the org. You can also ping the task mentor in IRC or mail him to clarify any doubts that you might have regarding the project.

Although its not compulsory, its usually a good idea to contribute to the org before sending your proposal. In order to that, you can ask questions like "Hey I'm new here, can anyone help me get started on how to contribute." either on IRC or the mailing lists. Since orgs get asked such questions very frequently, many of those have a 'Getting Started' page and if it'll be very helpful if you find that page and follow the instructions. If you've any doubts don't hesitate to ask those. Mentors are generally nice people and will help you through.

How to start contributing

Contributing to an org means either helping to fix bugs (issues), writing documentation or doing testing etc. All the orgs use an issue tracker to keep track of their issues/bugs and most of those orgs have a novice/beginner/quick-fix tag which lists tasks which are easy to fix for beginners. You can get more info on that by contacting the org. Contributing to open source is fun and if you're not having fun, you're doing it wrong.

Writing a good proposal

Once you've finalized the project idea, and have got started contributing to the org, the next and the most important step is to write a proposal. Many orgs have a application template of sorts and if your org has one, you need to follow that. Otherwise, you can start by specifying your personal information and then moving on to project description. Following are a few tips for writing your project proposal:

  • Include a detailed timeline based on how you intend to complete the project.
  • Make sure to list any bugs you've worked on and/or links to your contributions.
  • Double, actually triple check for spelling mistakes.
  • Don't forget to mention your contact info.
  • Last but not the least, don't forget to update Melange with your latest proposal.

Once your proposal is ready, you can ask the task mentor (and/or the org admin) to review it before you submit it finally to Melange. Ask them if you could explain any parts of it in a better manner and follow up on their feedback. The most important part is really understanding the project idea and reflecting that in your proposal.

Some Do's and Don'ts

Following are some miscellaneous tips for communicating with your org in a better manner:

  1. Don't ask to ask: Don't hesitate to ask any questions and its much better than asking something like "Hello! I ran into an isuue, can anyone help me?" Instead you're more likely to get a helpful answer by asking your real question instead of asking to ask your question.

  2. Be patient and don't spam: Once you've asked your question, wait for some time for someone to answer it. Its not a good idea to spam the channel again and again with the same question at short intervals.

  3. Mentors are humans (and volunteers): After mailing a mentor, at least wait for 48 hours for them to reply. You need to understand that they are humans and most of them contribute in their volunteer time.

  4. Use proper English language: Its really not a good idea to use SMS language while communicating on IRC or mailing lists. Also, note that excessive use of question marks is frowned upon. Although you need to be respectful, but addressing mentors as Sir/Ma'am is not such a great idea.

Final words

If you follow the steps mentioned above sincerely, you'll have a great chance of getting selected into GSoC this year. If you have any doubts, feel free to ask those in comments below.

PS: A little background about me

I was a Google Summer of Code student with Drupal in 2014 and org admin for Drupal in Google Code-In 2014.

Tags: Google Summer of Codegsocgsoc2015Drupal Planet
Categories: Drupal
Syndicate content


Google+
about seo