Skip to content

Functional Specifications

matthieu edited this page Sep 12, 2010 · 2 revisions

Projects

The site is structured around ecological projects and their interactions with visitors and users. The most important pieces of information are what’s needed for their success and how people can help each other. Projects are characterized by their description, who’s active and doing what, which resources they intend to save (and how) and the needs required by the project to succeed (money, knowledge, physical help, …). These are the public representation of a project, allowing visitors and other users to understand what projects are about, what’s currently happening, what they’re meant for and what they need.

The internal evolution of a project relies on finer grain actions that constitute the “meat” of the project evolution. Those are mostly outside of the scope of a project and belong to “real life”, although their outcomes are reported through the site.

Project Types

There are basically 2 types of projects. Even if they’re handled mostly in the same way by the site, they have to be perceived differently by users:

  • ‘Take action’ projects. These are projects any user visiting the site can participate in. They just pledge for whichever (single) action the project advertises and the corresponding gains are registered on the project. Examples are changing light bulbs to efficient ones, buying an hybrid car, installing a toilet flush with 2 different capacities, … Projects of this type are moderated (see the specific ‘take action’ chapter for more).
  • Global projects. These are more complex projects requiring help from diverse sources and people. They rely on one or many different types of need that can go from simple money donation to the assistance of an expert in a given domain. This type of project will probably be the most diverse in nature. From the construction of wind turbines in ones garden to the commercialization of a new recycling processus or the creation of a site about best ways to isolate one’s house effectively for example. To get people to help for their project in this mode, users can rely on their network of friends or on the site matching algorithms between users and project needs.

Project Services

To help with projects organization and communication, several tools will be provided by RaR in addition to the platform. Project administrators can use them to coordinate works done as part of the project or to provide additional information. At the minimum the following services should be associated with a project:

  • A blog
  • A calendar
  • A wiki (or minisite)
  • A micro-donations platform (probably reusing an existing one)

Additionally the following would be nice to have:

  • A mailing list / forum.
  • A map for localized projects
  • Documents (wiki or online docs style)
  • Spreadsheet

Google already provide some of these, we’ll have to see which ones we can embed or rely on.

Contributions

The way someone contribute to a project is informal and a user can propose his help in various ways. However to start interacting with the services of a project, a user must be registered as a contributor on it (except maybe for blog comments). So contribution proposals can be filed by anyone willing to help on any project. It’s a simple statement of intentions saying what they can do and how. The project owner gets notified of these and can decide to accept or refuse, giving them the status of project contributor.

Once someone is contributing on a project, they can start interact with the different services. Like writing blog posts or wiki pages, adding events in the project calendar and register actions.

Localization

In addition to language-based localization, global and network projects can be flagged localized, meaning that most (or all) the help and actions they need will be tied to a specific geographical location. For private projects it won’t have much effect (just informational) but for public projects it will affect the matching between users and projects they could help on. A user looking for projects to contribute to will be proposed localized projects close to their place by default (with an option to include all projects). Additionally users accepting work on a project could be warned if the project happens to be too far from their own place.

Project Needs and Natural Resource Savings

The needs and natural savings are registered on a project to build its public view (together with the description of course). It’s how people coming on the site know what they can (or can’t) do for a given project. It’s also how they learn what the project fights for, which natural resource it tries to save. These 2 elements (needs and resource savings) help people coming on the site in finding their way around.

As much as possible, the site will try to guide visitors and users to projects that can be interesting to them. What a user is ready to contribute (give time, money, knowledge) will be associated with his profile. The application will then attempt to match his profile with projects based on this information.

The needs and savings are also somewhat related to the action that will “materialize” them (see the discussion on actions for more).

Non exhaustive list of resources to save: electricity, greenhouse gas emissions, water pollution, soil pollution.

One of the challenges will be to deal with all these resources and the different units of measurement to aggregate this in meaningful statistics. For example electricity production also has impacts on gas emissions and pollution. A set of ‘elemental’ savings to which all others will be translated could be a solution.

Resource savings will be registered a bit everywhere. First, a project accumulates all the gains that have been made thanks to it. The owner(s) of the project gets the same amount added on their profile. So a user owning several projects can get a lot of points profit out of this.

Non exhaustive list of needs: Money, Time (no particular aptitude), Scientific (Biology, Geology, …), Technical (Computer software, hardware, architect), Artistic (web design, drawing, sculpture, …)

A good list of needs organized as a tree will be made.

Actions

Classic Actions

An action item is attached to a project to represent something that has been done and has a beneficial environmental impact. How the action has been done, when and why is somewhat out of scope. The idea is that it gets organized in an informal way using the different tools provided by the site, like a blog post, a wiki or a forum. The only constraint is that, for the site to accurately reflect the activity and the environmental impact of a project, an action needs to be registered. It simply states what has been done and quantifies the benefit in natural resources.

A type of action or template can also be created, allowing an action to be created from the template on a simple click. For example, I could create a beach cleaning project and invite all my friends to clean up a beach once every two months. Instead of having each of them create a whole action with unnecessary details, I can just create a ‘template’ and they would just click on a button to create the action from that template.

Take Action

A somewhat special type of action is when a user registers a pledge on a “take action” project. These actions need to be confirmed in the user’s profile in order to be fully registered. This mechanism is just here to avoid cases where people would pledge for something and just forget about it. By registering it and asking them to confirm it’s really been done, they actually get a mini todo-list.

The take action feature lets people pledge for simple actions that they can realize. These actions are then counted (and will appear in users’ profiles if they’re registered) and the gain in natural resources for it is registered. Take actions are only done once and disappear from the user’s take action page (and start appearing in their profile.

Users can also refuse one of the ‘Take Action’ proposals. The refusals and acceptances of take actions must be associated with a given user even if he’s not registered. A cookie will be created and associated with these actions as a temporary account (machine specific). If the user registers it will be associated with a real account.

Any project except community ones can declare itself as eligible for the take actions section of the site but these demands are moderated by the site administrators. Administrators should also be able to ‘order’ take actions so that most important ones will be displayed first for a new user.

The ‘take action’ page can only list a limited number of items but anytime an action is pledged for or refused, a new one will replace it to always keep a significant list or propositions. And this until all possible take actions are consumed.

After a user has accepted to take action for a specific project, the pledge is added to his profile. The gain for the action is really registered when the user takes action but must be confirmed afterward, to make sure users don’t start clicking here and there with no intention to act afterward and just never come back to the site. An action will be deleted 1 month after its creation if it hasn’t been confirmed. An e-mail reminder should be sent a week before the take action expires.

Rights

There should be 3 profiles in the application: anonymous, user and site admin. A user will have project administration rights on projects he created or he’s very active on, he’s considered the owner of the project. A project can be owned by more than one user. Site admins are basically us.

It’s important to make a distinction between profiles and rights. For example a user (profile) can create or edit their own projects, post comments on projects or register work on projects they contribute to (rights). However they can’t register work on projects they don’t participate in.

It’s also important to note that ‘anonymous’ is a profile, even if a default one. So everybody visiting RaR will have a profile created after his first action (most probably taking action) and associated with some sort of local cookie. Of course if a profile isn’t used for a long period of time it will be cleaned. Once a user really registers, his profile is associated with a login and can therefore be identified and used on more than one single machine. But users can do everything (including creating projects) without needing to register. They only get a cookie to start with and can add details about themselves later on (careful to not create on GET with that one).

Non exhaustive list of rights: create/update projects, create work for a project, take action, register actions, post comments on projects, …

Examples

The Light Bulb

The project is simply to ask people to replace a classic light bulb with an energy saving one. There’s no real ‘internal’ action for the project, it’s only going to be people ‘taking action’ for this project. Anytime somebody takes action for the project, a pledge for this action will be created, registering the gain in electricity consumption (as a natural resource saving) and associating it with the project and the user.

The project lifecycle should be roughly the following:

  • A user get a brilliant and simple idea that people can realize easily at work or at home. She creates a project for it, with detailed description and savings. She also registers the project as a possible ‘take action’ and gives additional information like the resource and its quantity that will be saved when people pledge.
  • The take action submission gets moderated. Site administrators check whether the idea or proposition is simple enough to be pledged by most visitors and set the order of appearance of this ‘take action’ on the site page.
  • Once the ‘take action’ is approved it will be displayed in the ‘take action’ section of the site.
  • From that moment on, any visitor can pledge for this action. A pledge will then be created and added to the visitor (or user) profile for him to confirm once it’s done.

The Wind Turbine

The project is to build a small field of wind turbines. It’s a much more complex project and it’s going to evolve over time. The first phase will probably be to collect advices from other people. Can the turbines be built anywhere, which permits are needed, what type of turbines, where to buy them, who can build them… All those questions and answers can be gathered using the small tools the site provides at the project owner(s) convenience. For example, blog posts can be used to ask questions and detail problems.

People will then volunteer on answering some of the questions and helping with the details. To do so they will submit a simple contribution proposal on the project. Someone who has bought a wind turbine in the past can for example volunteer to share the details of the costs he had to pay. The project owner can then accept or refuse the contribution, the consequence of an acceptance being that the volunteer can then start interacting with project services. In this case he will add a wiki page. So during most of the project lifetime, documents and resources associated with the project are expected to grow.

Parallely the project owner will probably start working on the windmill and report progress. The project will evolve until the turbine is fully built and ready to start. Then the resource savings begin and the project owners registers a final action to represent the production of clean energy.

The Friends Bags

A user wants to encourage all her friends to bring their own bags to grocery stores instead of getting plastic bags. She creates her own project for that purpose, publishing it for her friends (optionally doesn’t show up in searches) and advertising it through her network of friends using the site. She will add them as contributors on her project so they can register their action. Every time one of her friend go to grocery and brings his own bags, he will just click on a button to register the action. The environmental gain (the equivalent of 4 plastic bags for example) will then be automatically registered.

And she could add another type of action if she wanted, for example, to push some of her friends to bike to the grocery store in addition.

Social Features

Project and Aptitudes Matching

The site will try its best to propose projects to users who can help with them. The first matching criteria will of course be localization. If you happen to live close to a project that needs help from people around, it should get propose to you. But also users will be proposed to give more information about them. Do they have some spare time, do they have scientifical, technical or artistical aptitudes, do they have some expertise on a given subject. Based on these the site will try to find projects matching what people can do.

Networking

Needs to have a hell of a lot of “social” type of features (facebook / friendfeed / flickr style).

  • users can support projects (which doesn’t mean much beside the fact that the supports are counted)
  • can be friends with other users (way to connect and “browse” which projects your friends support or contribute to)
  • have a picture associated with their profile
  • both users and projects have feeds publishing what they do
  • have numbers saying how much resources they contributed in saving and who are the best savers
  • creation of a widget one can include in his weblog to say he supports RaR and how active he is on it.

Rewards

Rewarding users who are the origin of a most savings should be rewarded in some way. This could be the starting point of a sponsorship program. And eventually carbon offsetting techniques.

Addendums

Vocabulary

user = activist
take action = pledge for a simple project (almost) everybody can do

Tags

act, world, mother nature, activist, green, earth, planet, citizen, ecology, global warming