WeLove is a community driven, location focused web and mobile app that allows citizens to discover and share new and interesting places in their city with other WeLove users.
The framework for WeLove centres on niched communities sharing activities. Communities are based around entities that reside in niches and whose features are configurable.
Content is aggregated via WeLove’s reputational scoring engine and filtered according to user preferences.
Community members determine the reputation of their peers. If you join a niche, everyone in that community is your friend and everyone’s activities are of interest to you.
WeLove started in 2009 and is fully bootstrapped by NML.
Build communities based around Entities that reside in niches and whose features are configurable. Community members determine the reputation of their peers
A configurable service layer
For example a surf spot has a very different data model to a coffee shop.
Entities (WeLove Assets) can reside across multiple interest groups
A place can be a coffee shop and a burger joint so it must be able to be a part of welove/burgers and welove/coffee.
Community aggregated at different geographic levels
Community associated with Province/City/Suburb as well as the actual place or thing the people are interested in.
A stream of activity
Much like Facebook but everyone in the interest layer is your friend so you see all activities happening within that interest group.
A reputational scoring engine
WeLove is about discovery of places and things (that have reputation) and of people that have reputation. WeLove is underpinned by a complex reputational scoring engine.
When people comment on, love or rate and asset you’ve added the notifications engine alerts you to all activities on the platform that are of interest to you.
- Discovery of places, things and interesting people who have a deep understanding of your interests.
- Achieved by building a reputational scoring engine underpinned by a strong reputational algorithm. Driven off love points.
- Love points accrue through the community loving your assets, be it places, or reviews. Love points contribute to growing your reputation to become recognised as an expert in a particular niche.
- To facilitate geographic discovery all relevant assets are associated with a geospatial point. This allows us to position all points of interest on maps.
Community is facilitated and aggregated at many levels in WeLove:
- You could join and leave a niche interest group.
- Using your location, you can join a community based on country, city or neighbourhood.
- By loving a place in WeLove you are associating yourself with the community of people that loves that place.
- An activity feed of things happening on WeLove can be broken down at those different levels.
WeLove being notified of things that relate to us
Notification of interactions, comments, love/unlove actions, reviews are communicated according to user preferences via email through the WeLove notification engine.
WeLove seeing the same things but in different contexts
- Community members can have different reputational scores within each of their communities.
- Content on detail pages can be filtered to show only reviews related to a specific context (reviews on a place’s coffee in one context and reviews of the same place’s breakfast in the other.)
- See activities for the same niche, but for entities in different cities.
- Entity Framework
- oAuth integration, allowing users to log in using Facebook and Twitter
- Responsive UI, making use of CSS3 and media-queries
- ASP.NET MVC v3
- NUnit and TeamCity for automated testing and continuous integration
- SQL Server for data storage. SQL stored procedures returning XML
- SOAP web services integration points to mobile app
- Microsoft Unity for dependency injection
- Automapper to translate models into view models
- Hosted on an Azure webserver
- Built on the Lenticular platform
WeLove features the latest in responsive CSS and Media Queries.
Displays the most recent activities on assets via a series of activity cards with customised view options via filter bar
Niche Home Screen
Displays a geo-located representation of the assets as pins on a map and activity feeds with filter options for most recent, most loved, top rated content
View an asset in detail. Displaying a description, features, reviews, directions, image gallery and a Twitter feed for the selected asset
See details for a user’s profile, including activities for that user
Filters out activity for the user in a specific niche
See and edit personal details, notification settings, link external networks and change profile image
Select niches, complete details and features, pin to map and add images
Admin: Locations List
Filter locations by niche, status or keyword. Reject or approve locations
Admin: Location Detail
Admin edit for location details
Enable and disable niches
Admin: Niche Edit
Update map pin icons, regions, location names and moderators
Delete, lock and assign roles
WeLove makes use of responsive CSS media queries to control the way content is displayed across various platforms.
The site is coded to make use of percentage widths as well as specific width breakpoints at which content rendering changes appearance and layouts shift for optimal user experience and legibility.
Flexible Data Model and Service Layer
- For Web Applicaton : Model-View-Controller based on Asp.Net MVC3
- For Mobile Applications : Expose Soap Services via API
- Business Logic Layer uses Managers and Services to handle CRUD (Create, Update, Delete) operations
- Web Services Logic Layer sits between the Business Logic Layer and the Webservices. This allows for Webservice specific behaviours & models and facilitates Separation of Concerns between Web- and Mobile Applications
- Repository Layer. Serves data from NML Data Cache Provider, with Delegates assigned to retrieve invalidated Cache content
- ORM Mapping. Linq2Sql used as framework
- Stored Procedures. Return XML formatted data
Users, Assets, Features, Regions and Niches.
- Authentication. A WeLove user account can have multiple external network accounts linked to it. In this way one user can sign in, to the same account, by using any of Facebook, Twitter, Email or WeLove username
- Activities. A user’s interactions with assets get recorded as activities
- Niches. Users can belong to several niches
- Type: Assets are differentiated by type. Photos, reviews and regions all have different characteristics
- Niches: Assets may reside across multiple niches. You can review a location’s coffee and breakfast separately (or together)
- Features: As part of the flexible data model construct, different types of assets can have different features
- Asset Type: Features only apply to certain types of assets. The date of birth feature type would associate to profiles, whereas the has wireless feature type would apply to a location
- Asset Feature Value: This is a string representation for the recorded value of a feature type. Stored on a per asset basis
- Value Type: Defines the primitive type of the feature value, this is used when casting the asset feature value
- Assets can reside in multiple niches and users can belong to multiple niches, the interactions between them can be recorded as activities (which may also reside across multiple niches)
- The collection of users associated with a specific niche would form its community
- It is possible to see activities which only pertain to a subsection (niche) of the web application.
- Users can identify content (users, reviews, locations, etc.) which interests them specifically, i.e. knitting enthusiasts in the southern suburbs of Cape Town can see the best wool shops nearby
Polygon: Regions are defined with geospatial data. Location-type assets have latitudes and longitudes assigned to them. Queries can be made to find the locations that intersect each region.
Level: Hierarchical definition of polygon grain. Country, city, province etc.
Niches: As regions are assets, they can reside across multiple niches.
Need a software development partner?
Fill in this form and we will get back to you as soon as possible.
Sending Enquiry...Please wait!
Send Failed! Please try again.
Thank you for submission. We will contact you as soon as possible.