Project management at a web studio requires a number of tools for:
Project management system (planning, tasking)
Bug tracker (development and bug accounting)
Source code management system (repository administration)
Workflow system (storage of general and project documentation)
Time billing system (tracking time spent on performing tasks)
Calculation and Accounting System
There are lots of specific products and solutions for each of these categories, and I will not dwell on each of them. Instead, I'll describe what we used, how our choice has evolved and what our final picks were.
In recent years social networks have become one of the fastest growing areas of site building, aiming to give more people a platform for communication. The number of website users increases, and it’s getting harder to keep track of the changes they make. We’re gonna talk about special modules for convenient monitoring of website’s or user activity.
The purpose of these modules is to track user actions and display them in a convenient form. The more actions the module is able to record the better. Another important indicator is the integration with other modules and a developed API.
The logic of all of these modules is identical. We track the needed hook and record the event in our database table. All these modules work in conjunction with Views, so the output of the results is straightforward – a standard form is created which we later can theme in our module or theme.
NoSQL has recently become a buzzword in web development. Some projects use similar databases for architecture bottlenecks, while others fully migrate to them. Such databases differ from relational ones in simple architecture and high scalability. At the moment we are interested in MongoDB as one of the most popular NoSQL databases. We’ll try to highlight its strengths and weaknesses, consider some peculiarities of development, its application field in Drupal, and will try to understand the Map/Reduce term through a practical example.
MongoDB is something between a key-value storage (which is usually fast and scalable) and traditional relational databases (MySQL, PostgreSQL, etc.) that provide advanced queries and rich functionality.
Every Drupal user is probably familiar with its registration—we’ve all been through that. Same thing with the developers—a login and password form with a "Register" clicking which starts form processing.
So, we need to collect additional data—it means, that in addition to login and password fields the registration form will require other ones that will make the form huge. Most probably, the large number of fields will scare away the user and make him leave without clicking the button. User interface designers have found a solution to this problem—a multistep form. This form allows users to enter data step by step: this way each step features a reasonable number of fields and user doesn’t need to answer some unnecessary questions based on his previous input. In addition, the user can see the registration progress in the form of step indicator, which is also important ( "When will this end?" , "How much more do I have to fill in?" ).