Social Network Portal

Social Network Portal is a social networking portal with searchable content directory focused primarily on recreational and leisure activities. The portal provides users with ability to share information, as well as their personal impressions and experiences, about specific places and events. Users can also share their personal profiles and creative works to attract potential friends or employers.

The portal follows so-called “Web 2.0″ paradigm by providing slick and comfortable interface, focusing on user-generated content, embedding various methods of communication and integrating with other Internet-based services.

Solution

The proposed system is a web application. Users are allowed to browse portal contents, submit their contributions and communicate with each others.

The system consists of the following tightly integrated modules:

  • places directory (with maps)
  • events directory (with calendars and invitations)
  • user profile editor
  • profile directory, contacts management
  • file storage
  • blogs
  • discussion board
  • travel guide (integrated with places)
  • classifieds directory
  • movie and music reviews
  • RSS aggregator

All site content is user-generated, each user can make contribution. Access to content is controlled by a fine-grained permission system: most user submissions can be made either public or private. Primary tool for publishing user’s content is his highly customizable profile page, which contains basic user information and links to the other content types. Everywhere on site user is represented by his nickname and avatar image.

Directories provide fast and flexible search capabilities. User can subscribe to some types of content to receive notifications about updates (new event, blog post, forum topic etc…). RSS aggregator provides access to both internal and external newsfeeds, while e-mail integration allows user to access his mail box via Social Network Portal web interface.

Map system (which employs Google Maps service) plays an important role, as it allows to visualize locations of “places”, users and travel routes by using map markers.

File storage allows hosting of user-generated content, such as documents, music, videos and photos. Files can be organized in folders (albums/galleries) and tagged. Owner can publish some items on his profile page, to allow other users access them. Photo galleries and videos can be used in user’s blog posts, reviews of places or events. Music albums can be used by musicians and DJs to promote their work.

Layout of most web pages is customizable: using “AJAX”-style interface, user can rearrange, close or expand various content blocks. Profile page uses sophisticated profile editor, allowing the user to use and modify one of available profile templates. Page layout and JavaScript supports most popular web browsers: Mozilla Firefox, Safari, Internet Explorer.

Architecture

Server-side logic is implemented in Python programming language using Django MVC framework. Django covers all URL processing and database access; page layout is controlled by Django template system. Apache webserver is used to process requests.

Data storage backend consists of MySQL relational database (the primary data source) and plain filesystem repository (for images and multimedia files).

Client-side interface enhancements are implemented in JavaScript using various available AJAX libraries and original scripts.

Tools and Technologies

  • Apache 2.0
  • Python 2.4
  • Python libraries: Django 0.95, PIL 1.1.5, mysql-python 1.2.0
  • MySQL 5.0
  • JavaScript

Benefits

The whole system is implemented using free and open-source solutions, which reduce the total cost of development and deploying. Usage of reliable and popular components like Apache and MySQL simplifies system maintenance. System design, based on Model-View-Controller approach, provided by Django framework, alongside with efficient and simple Python language allow easy modification and extension of the system.