I’ve been googling the web looking for Java implementations of social networking functionality. I’m a bit disappointed that I couldn’t find more, but there are a few that can serve as a solid foundation. Here’s what I’ve found so far:
- Mugshot – Mugshot is sponsored by Red Hat. Mugshot allows user to pull together activity from all your online accounts at one place on the web. It allows users to share web links with individuals or groups and get feedback when people visit those links. Mughots integrates with music sites like iTunes, Rhapsody, Yahoo! Music, and others. Mugshot keeps track of what friends are doing online. It supports groups where on can create public or private groups around shared interests.
- Slynkr – Slynkr is a social news system that supports user submitted content, tagging, voting and RSS fields. It is based on a simple Servlet/JSP and JDBC architecture using no frameworks or persistence layer. It’s differentiator is that is support live queries that are unbounded rather than fixed.
- Gnizr – Gnizr is a social bookmarking and web mashup application. Gnizr can be used to create a personalized del.icio.us-like portal to store, classify, and share information, and mash-it-up. Gnizr can assign geographical location values to bookmarks and view bookmarks on a map. It can define relationships between bookmark tags (i.e. broader, narrower and member-of ). View bookmarks in Clustermap and Timeline. Import new bookmarks from user-defined RSS subscriptions. Gnizr is built using WebWork, Spring, Freemarker and MySQL.
- iFind – iFIND aims to improve social networking through some kind of digitally augmented serendipity. With iFIND, you and your friends can instantaneously exchange your locations on campus, talk to users nearby, and coordinate more effectively. iFIND aims to give full control of location to the users. The user can choose, on a peer to peer basis, when to disclose your individual data and to whom.
- irate radio – iRATE radio is a collaborative filtering system for music. Users rate the tracks they downloads and the system uses these ratings and other user’s ratings to guess what they like. Leverages the JavaLayer project for MP3 and MAD for MPEG decoding.
- Semantic Bank – Semantic Bank is the server companion of Piggy Bank that lets you persist, share and publish data collected by individuals, groups or communities. Semantic Bank allows users to share information with other people. It includes the ability to tag resources, it lets users publish information, both in RDF form or to regular web pages.
- BuddySpace – BuddySpace is an instant messenger with the following features: it allows optional maps for geographical and office-plan visualizations in addition to standard ‘buddy lists’. BuddySpace provides enhanced capabilities for users to manage and visualise the presence of colleagues and friends in collaborative working, gaming, messaging, and other contexts.
- S3B – S3B – Social Semantic Search and Browsing
a middleware that delivers a set of search and browsing components that can be used in J2EE web applications to deliver user-oriented features based on semantic descriptions and social networking. Includes a trust engine, Firefox plugin, RSS/Atom subscriptions and del.icio.us import/export.
- jMarks – jMarks is a multi-user web-based bookmark solutiona. jMarks allows users to mark their online bookmarks as public or private, and can also track the last time each bookmarked site was updated.
- Chipmark – Chipmark is a shared bookmarking application. It provides the ability to share bookmarks, explore bookmarks ( random, popular and recently added ) and provides Firefox and IE enhanced support. Chipmark is a student run open-source project at the Univeristy of Minnesota.
- Semanlink – Semanlink is a personal information management system based on RDF. It lets users add tags, as well as other RDF metadata, to files, bookmarks and short text notes. Semanlink provides a simple way to organize tags in a graph, it allows you to incrementally define the vocabulary you use when annotating documents. Semanlink is implemented as a servlet and the Jena RDF APIs.
- MoochSpot – MoochSpot is where you can come to keep track of how much money you and your friends owe each other. MoochSpot provides open source wrappers to the Facebook API.
- xOperator – xOperator combines advantages of social network websites with instant messaging. It tries to be a semantic agent for xmpp / jabber network which finds and shares content about resources (using RDF/SPARQL) for you and your jabber friends.
- TagSEA – TagSEA is a framework for tagging locations of interest within Eclipse. TagSEA combines ideas from social bookmarking (tagging) and geographic navigation (way pointing) aiming to make finding information easier.
- Hiitch – Hiitch is a thick client that notifies you of people and things that interest you. Hiitch helps users meet other online users by matching their profiles with what they have set out to look for. If a match is found, Hiitch will send an alert to notify user. Aside from profile matching, Hiitch will also alert users of other activities such as appointments, events, items received and off line messages.
- Shindig – Shindig is an implementation Google’s OpenSocial APIs for client-side composed web applications. Google’s OpenSocial provides a common set of APIs for social applications across multiple websites. OpenSocial is similar Portal/Portlet technology, but is based on client-side compositing, rather than server. Ning intends to donate code based on their implementation of OpenSocial. The backend systems will be replaced with more generic equivalents in order to not bind the implementation to the Ning platform.
- Skittr – Not really Java, but runs on a Java JVM. It is a Scala implementation of Twitter. It’s 884 ‘wc -l’ lines of code including comments. It can handle 1M+ users on a two Intel Core 2 Duo boxes (one as the web front end and the other as the message broker.)
- OpenQabal – OpenQabal is currently in pre-alpha form. It provides the following features: a blogging server based on Roller, forums based on JavaBB and SSO based on CAS.
- NEPOMUK – Networked Environment for Personalized, Ontology-based Management of Unified Knowledge. NEPOMUK is a project to extend the desktop into a collaboration environment supporting personal information management and the sharing and exchange across social and organizational relations.
- SocialSite – The SocialSite project is delivering social networking functionality by adding social networking platform support based on the OpenSocial standard to any community site. Any social application written for the OpenSocial based social network can be seamlessly and easily hosted on a transformed community site that is powered by the SocialSite project. Watch this video to get a good idea as to what it does.
It’s a very varied and interesting mix. Certainly a good place to start to build your own social network. So please do let me know if you’ve found other interesting implementations that we can add to this list.