ashein.comportfolio

 

Mine / ex- Everything I Have

08.01.2014 on 19:56 • edited 08.01.2014 on 20:04, rev. 1 • no comments
Resource is available at mine.is
tagged - ownership, site, social, things
Project screenshot
Project screenshot
Project screenshot
Project screenshot
Project screenshot
Project screenshot

The idea

The idea was conceived by P. Green at the end of year 2009 under the impression of a drawing by Simon Evans called "Everything I Have". As its name suggests, the picture contained huge amount of things put nicely in a grid. It would've been nice for everyone to be able to compose such a listing, but in an interactive and intuitive way.

A couple of months later, at the beginning of year 2010, Peter drew up an e-document depicting his vision of the new site. Central to the idea was a large tree-like list of things, with the owner's full body avatar in the center and various things branching off it. Thus the initial version of so-called "Tree of things" was born.

Initially Peter's presentation was aimed at acquiring interest of a possible investor, but several months later his friend, V. Shumsky, who had experience in Flash applications, was let into the idea and liked it. He proposed to make a working prototype of the tree. And as your truly could take care of other technical aspects of the project, it was decided that the site could be developed without the need for initial investments.

The first release version of the project was a namesake, a tribute to the inspirational drawing. It was available until February, 2012, and later the project was rebranded from a longer Everything I Have into shorter Mine, though the domain name gained an additional letter: eih.me turned into mine.is.

Features

The first release version was devoted mostly to core functions that this social network has to offer. Later additions revolved more around reinforcing the user interest in the project by providing more targeted content for each user.

Related to things

  • As the project is about ownership in the first place, there is a large database of things by various brands – these are not associated with users, but form a general database the users can add the things from. In case a thing of interest cannot be found on the site, it can easily be added to this database and to the user's inventory at once.
  • Users have an inventory of things that they own. These things always have a "parent thing" in the general site database, but they can be customized: renamed, tagged, given description and blog-like status updates, as well as an updated pictures. You can easily add this or that thing to your own inventory by:
    • Browsing through the site database or using an the extensive search page;
    • Adding a thing encountered while reading this or that kind of update feeds: things added by people you follow, new things on the site, featured things and so on;
    • Adding a new thing from scratch.
  • Users can show their inventory as a large branching tree of things. You can edit this tree freely, drawing the branches that best suit you, thus splitting your things into visual groups by the criteria you choose. Things can be rotated and scaled, if you want to give them emphasis or some otherwise funky look.
  • By adding a thing to one's inventory, the user automatically joins the club for that thing and receives the updates relating to that club.
  • Popular things appear higher in the listings. For the general things in the database the popularity is defined by the number of owners that thing has. For user-owned things the popularity is based on the amount of likes and envies the thing receives.

Users-related

  • One can easily register via Facebook (other networks in the future) and using the classic model.
  • People can follow others, building up the social graph. You have several update feeds where you can track the activity of the people you follow. There are several ways to find the people you'd follow:
    • By looking up the friends you have in another social network;
    • By searching for people with the same interests as yours, things-wise;
    • By manually adding people, either using the built-in searcher or just by running into interesting people.
  • Each user has its own rating that determines the level of the user. People with higher rating appear higher on the lists, and additional features are unlocked with higher levels. The rating is based on various metrics:
    • The amount of things owned;
    • Amount of things added to the general site database because no appropriate thing was found;
    • How many people follow you;
    • Amount of likes and envies your things receive from other users.
  • Most user activity can be easily shared on Facebook, eg: new things, envies and likes expressed.

Updates

As there are many kinds of actions to perform on site, the user has to keep in touch with what happens.

  • The site has a mail notification system that could inform you of the more important events such as new followees, new owners of the rare thing you own and so forth.
  • A general feed called REC covers the main site trends, such as most popular things of the week, most active users and so forth;
  • Digest feed helps to track what happens to your things: who expresses likes or envies, who leaves you comments and what these comments are, who adds the rare things you have, who starts following you etc.
  • Update feed features events that don't involve the user directly. These are new things, new status updates and other activities generally performed by the people the user is following.

Please note that some features may be unavailable at the time of writing this text, as part of them may be still in development pipeline and have not hit release yet.

Responsibilities

  • Database and internal site structure;
  • Servers setup and maintenance, including various services involved. The project isn't that large to be affected by scalability issues, though.
  • Third party services integration – social networks, mostly FB and Open Graph API;
  • Migration to Git to better manage project development and the releases, including guidance on how to use this system;
  • All server-side code;
  • API implementation for the site;
  • Most client-side code related to dynamic content and based on the API mentioned above;
  • Internal instruments to gather statistics for decision-making purposes;
  • Team-wide decision-making in past.

The range of responsibilities generally covers the whole stack excluding conceptual design, markups from scratch and Flash.

Technical info

  • The API that the client-side utilizes is a mix of ad-hoc and RESTful methods with the aim of refactoring everything for REST with JSON encapsulation. There are currently some 50+ methods and endpoints in the API.
  • The site makes use of Memcache service to cache some more costly methods, namely the general feed. Caching is also used on engine level to lower the overhead.
  • Full-text search for the database of things is provided by the Sphinx search engine.
  • There is actually an achievement framework implemented as part of the rating system, though only three achievements that grant user level-ups are available.
  • The project survived the Habro-effect dubbed after the IT-related resource habrahabr.ru. A post published there triggered a hundred-fold increase in user activity that in most cases has the effect similar to a DoS attack. The server stood strong, though it was a simple cheap VPS server from Hetzner.