Research Of The Project Implementation Computer Science Essay

Published: Last Edited:

This essay has been submitted by a student. This is not an example of the work written by our professional essay writers.

The aim of the project is to provide an online web-based Birthday Calendar tool. The tool will keep track of birthdays and anniversaries of family and friends as well as upcoming appointments. The application will extract information about user and user's friend's birthdays from social networking apps (for example Facebook), and populate the calendar. Before extracting information about user's friends, the program will print the list of friends for selection, if information about some friends is unnecessary, they can be easily deselected from the list. User can input information about friends that are not in the Facebook.

Apart from reminding about birthdays and anniversaries, the tool can be used for scheduling their appointment and meeting. User can view upcoming activities and decide when and how to receive alerts, by e-mail, SMS or MMS notifications as well as to send automatically greeting with or without card and inform user by SMS or e-mail.

There will be available multiple type of alerts, that's mean that user can decide to receive an e-mail and SMS. The system will allow user to decide for how many days ahead receiving alert (select date and time), the alert can be repeated. If user will decide to repeat alert then he/she can set the frequency of repeated alert.

The tool will include the following features:


Synchronized account - login to BCT and Facebook account

Extract user's friends birthdays from Facebook

Extract network's members birthdays from Facebook

Prints the list of user's friends from Facebook

Allow deselect unnecessary friends

Unsynchronized account - login to BCT account only

End users can change their password

Sending forgotten password by SMS

Populate calendar:

birthdays - calculate age




Provide different type of alerts:



E-mail and SMS

Send automatically greetings:


MMS - with card or some picture


Allow to manage alert:

select date and time

repeat alert

set frequency

Prospective users

Many people experience difficulties to remember birthdays of people close to them or not forget about meetings or appointment that was scheduled couple days, weeks or sometimes months ago. It is suitable for people with busy schedule. There are some other reasons because of which people don't congratulate their friends or family. They might do not have Internet access or they are in are that does not have cell phone reception.

Birthday Calendar Tool is very convenient to use for Facebook users or some other social networks. The BCT also can be used by organization to track staff's birthdays, and schedule meetings and appointments. Users require having basic computer skills, in order to use the application.

Comparison to similar systems

There are many birthday calendar applications available on Facebook. Two Facebook app that came across during research are:, BirthdayCal and birthdayalert provide services like sending greetings card, view upcoming birthday or full year calendar. There are no SMS or MMS services available.

The system that most similar to BCT is [ii] . The website includes similar features: importing user's contact from Hotmail, Gmail, Yahoo and AOL. It sends greeting card to friend's email. BirthdayAlarm does not provide SMS or MMS services. One of the other features of the BirthdayAlarm is to modify the list of friends. HolidayAlarm link user about upcoming holidays. The website is well designed and provides appropriate links. BirthdayAlarm also has a large list of different type of greeting cards.

BCT application will include features that are not currently available on BirthdayAlarm.

Technology for implementation of the Web Application

In researching different technologies being used to develop web applications and there are many suitable development tools. Two of the most widely used technologies that came across in the research are the .NET framework and J2EE platform.

J2EE is a good option for large web applications. It being open source is one big advantage as well as being portable. The java libraries offer a vast amount of functionality for faster development.

Pros and cons of J2EE: [iii] 



Rich API

Vertical scalability

Wide range of vendor choices

Has a proven track record


Has a complex application development environment

Lacks built-in support for Web services standards

Tools can be difficult to use 

.NET is not an open source or very portable but is excellent for smaller web applications. That is not to say it is not good for larger projects but, in this context, it is a very good choice for a smaller project. Another advantage is the use of Visual Studio which is one of the best web development tools around. The .NET framework is packed with useful features. While the Microsoft .NET framework supports several different languages.

Pros and cons of .NET:


Easy-to-use tools 

Has built-in support for Web services standards

Is tightly integrated with Microsoft's operating system and enterprise server software (some may consider this a con but from an ease of development point of view it is a pro)

Has a strong framework for building rich graphical user interfaces 

Visual studio


Framework runs only on Windows

New runtime infrastructure lacks maturity

Can have poor performance with graphics

While there are many different technologies available for use in creating web sites and web based applications, each with their own advantages and disadvantages, c# and are the technologies that will be most likely used to develop the web application. For the purposes of this project, c# with is preferable due to its features, facilities to write clean reusable code and the fact that it can be developed with Microsoft Visual Studio.

There are two different approaches of the web development are available: ASP.NET Web Forms and ASP.NET MVC.

ASP.NET Web Forms

Web Forms are based on ASP.NET. Web Forms allow creating Web pages with Web forms that will be accessible by a Web browser. Web Forms are Web pages that serve as the user interface for a Web application. Working with Web Forms is similar to working with Windows Forms.

In Web Forms pages, the user interface programming is divided into two parts:

The visual components, which is the design page. The Web Forms page is the visual element. The Web Forms works as a container for the static HTML text and an ASP.NET server controls we want to display. Using the Visual Studio Web Forms designer and ASP.NET server controls, we can design the form just like in any Visual Studio application, for example Windows Form.

The logic is the code behind design page. The code is needed in order to interact with form. It is a separate file from the user interface file. The extension of the code-behind file is ".aspx.vb" (VB) or ".aspx.cs" (C-Sharp).The cone-behind file can be written in Visual Basic or Visual C#.

"The code-behind class files for all Web Forms pages in a project are compiled into the project dynamic-link library (.dll) file. The .aspx page file is also compiled, but differently. The first time a user loads the aspx page, ASP.NET automatically generates a .NET class file that represents the page, and compiles it to a second .dll file. The generated class for the aspx page inherits from the code-behind class that was compiled into the project .dll file. When the user requests the Web page URL, the .dll files run on the server and dynamically produce the HTML output for your page." [iv] 

Diagram 2.0: Web Forms are part of ASP.NET

Pros and cons of ASP.NET Web Form:



Separation of Web page from application logic

Provides rich controls - detect the browser and send out appropriate markup language such as HTML

Data binding capabilities

Event-based programming model that is familiar to Microsoft Visual Basic® programmers

Compiled code and support for multiple languages

Allows third parties to create controls that provide additional functionality

Rapid development


Tightly coupled - single class is used both display output and handles user input.

Unit testing is almost an impossible task

integration of JavaScript framework due to the naming conventions of rendered HTML


MVC helps us to have more granular separation, so we have to see all these different levels to be able to work with the web development and Microsoft technology.

Pattern helps us solve problems that come up over and over again, thing about data access pattern, opening connection, grabbing data, data binding or for presentation in web form content and code behind.

MVC allow us to split it out into more granular level of models, views and controllers.

Diagram 3.0: Components of MVC

Model contains the core information for an application. This includes the data and validation rules as well as data access and aggregation logic. For example, in the BCT application a Friends object might retrieve information from a database, operate on it, and then write updated information back to a Friends table in SQL Server.

Views are the components that display the application's user interface (UI). Typically, this UI is created from the model data. An example would be an edit view of a Friends table that displays text boxes, drop-down lists, and check boxes based on the current state of a Friends object.

Controller interacts with the Model and Views to control the flow of information and execution of the application. In an MVC application, the view only displays information; the controller handles and responds to user input and interaction. For example, the controller handles query-string values, and passes these values to the model, which in turn queries the database by using the values.

Some of the others presentation patterns are available: MonoRail, Web object or Django. There is also some other patterns are well for web presentations: Model View Presenter or Model View View Model.

Pros and cons of ASP.NET MVC:


RESTful interface

Full control over markup

Lightweight View

Easy to maintain

loose coupling between input logic, business logic and UI logic

Enable Test Driven Development (TDD)- makes testing easy

Parallel development

No PostBack and ViewState model (Web is a stateless)


Difficult to convert an existing site

Large Controller classes - if used on large scale application

Choosing between ASP.NET Web Form and MVC

If you are going to develop Intranet application probably you need to get it done a little bit quicker. There is no need for fine tune control, because it behind firewall, and it for regular employees, in this case Web Forms might be great.

In the case of Internet application MVC might be great, because you may need to control everything on every browser.

Web Form and MVC can be used together as well.

Cloud computing

Assume that the website of your company is becoming more popular every day. The number of website's users is growing up very frequent. The success can become a problem, because your equipment is not able to maintain the demand. You need to get new and powerful equipment, but it takes time to set up new machines and maintaining is very costly. You also have to pay for the services whether you use them or not.

Cloud computing provides easy, scalable access to computing resources and IT services. Cloud computing is a general term for anything that involves delivering hosted services over the Internet. There are three categories of services in cloud computing:

Infrastructure-as-a-service [v] is using pay-for-what-you-use model. It is referred to as utility computing. Customers use the provider's application program interface (API) to start, stop, access and configure their virtual servers and storage. In cloud computing you can access to computer power instantly when you needed. It allows customer to pay for only as much capacity as is needed, and bring more online as soon as required.

Amazon provides IaaS called Elastic Computer Cloud or EC2. This is allows users to purchase computer processing power online and all the basis process cause storage and data transfer.

Google has also launch similar system called Google App Engine, which permits developers to run web application on Google infrastructure.

Using Microsoft data center [vi] means you can scale with easy and speed to meet the infrastructure needs of your entire organization or individual departments within it, globally or locally.

Platform-as-a-service [vii] in the cloud is defined as a set of software and product development tools hosted on the provider's infrastructure. Developers create applications on the provider's platform over the Internet. PaaS providers may use APIs, website portals or gateway software installed on the customer's computer., (an outgrowth of, GoogleApps and Windows Azure platform are examples of PaaS.

Windows Azure [viii] is a flexible platform that supports multiple languages and integrates with your existing on-premises environment. To build applications and services on Windows Azure, developers can use their existing Microsoft Visual Studio® expertise. It allows developers to run applications and store data on servers owned and operated by Microsoft.

In the Software-as-a-service [ix] cloud model, the vendor supplies the hardware infrastructure, the software product and interacts with the user through a front-end portal. SaaS is a very broad market. Services can be anything from Web-based email to inventory control and database processing. Because the service provider hosts both the application and the data, the end user is free to use the service from anywhere.

Commercial SaaS include [x] online project management tool as well as customer relationship management and human resource application offered by [xi] , [xii] and [xiii] . A number of online software applications are now also available and include Google docs [xiv] , Blist [xv] and SlideRocket [xvi] .

Microsoft Online Services [xvii] are subscription-based, on-demand applications and hosted services, providing your end users with a consistent experience across multiple devices. The Diagram 4.0 displays layers of Microsoft cloud.

Diagram 4.0 Microsoft cloud - category of services

A cloud computing can offer many advantages over traditional hosting:

It is elastic - as allows increase or decrease the hardware requirements with the minutes.

It is flexible - user can chose specification of each individual instance of computing power purchased.

Inexpensive - as no dedicating capital investment is required.

The service is fully managed by the provider (the consumer needs nothing but a personal computer and Internet access).

SQL Server

SQL is a database computer language designed for managing data in relation database management system. SQL features are data insert, query, update, delete, and schema creation and modification, and data access control.

One of the major reasons of using SQL server is that it is extending to the Cloud through SQL Azure. SQL Azure is a fully managed cloud database, offered as a service, running in Microsoft data centers around the globe. It is highly scalable, with built in high-availability and fault tolerance, giving you the ability to start small or serve a global customer base immediately [xviii] . SQL Azure Database will be used to store the data when the application will be deployed on Azure cloud.

Facebook API

As was stated above my web application should extract information about user and user's friends from the Facebook. In order to achieve it the Facebook API will be used.

The Facebook Platform enables you to make your website more personalized and social.

The Facebook API allows applications to use the social connections and profile information to make applications more involving, and to publish activities to the news feed and profile pages of Facebook, subject to individual user's privacy settings. With the API, users can add social context to their applications by utilizing profile, friend, Page, group, photo, and event data. The API uses RESTful protocol and responses are localized and in XML format.

The following features of the Facebook platform will be used in BCT application:

Social plugins [xix] can be integrated in the site with a line of HTML. Because they are hosted by Facebook, the plugins are personalized for all users who are logged into Facebook - even if the users haven't yet signed up for your site. The most popular social plugin is Like button. BCT application will use Login Button. The Login Button shows profile pictures of the user's friends who have already signed up for the site in addition to a login button.

Single sign-on enables you to remove the registration process for you site by enabling users to log in to your site with their Facebook account. Once a user logs in to your site with his or her Facebook account, you can access the user's account information from Facebook, and the user is logged in to your site as long as he or she is logged in to Facebook. The standard Facebook login button can be included with the tag:


Account Registration Data - The Graph API can provide access to all of the basic account registration data, including name, email address, profile picture, and birthday. The information is more reliable as it was already verified by Facebook.

Serve-side personalization - once you have hooked up single sign-on, you can increase the engagement on your site by personalizing the content on your site to a user based on her social graph. Every site is different, but the basic structure will likely look something like this:

// Fetch the user's friends

$friends = json_decode(file_get_contents(

'' .

$cookie['access_token']), true);

$friend_ids = array_keys($friends);

// Fetch all the content posted by this user's friends

$result = mysql_query('SELECT * FROM content WHERE uid IN (' .

implode($friend_ids, ',') . ')');

$friend_content = array();

while ($row = mysql_fetch_assoc($result)) {

$friend_content[] = $row;


Graph API simplify the way developers read and write data to Facebook. Every object in the social graph has a unique ID. You can fetch the data associated with and object by fetching


Cade , Mark and Roberts, Simon. (25 Mar 2002) Sun Certified Enterprise Architect for J2EE Technology: Study Guide. Sun Microsystems Press.

Johnson, Rod. (23 Oct 2002) Expert One-on-one J2EE Design and Development. Wrox.

McNeil , Patrick. (22 Oct 2008)The Web Designer's Idea Book: The Ultimate Guide to Themes, Trends and Styles in Website Design. How.

Sharp , John. (31 Dec 2007) Microsoft Visual C# 2008 Step by Step 3rd Edition. Microsoft Press.