Internship Report

64
1 INTERNSHIP REPORT Liferay portal and developing portlets in Liferay IDE Student: Bui Ta Duy. ID: IT060070. Company: Phi Vien Website Solution Co., Ltd. Supervisor: Mr. Le Tri Bao Long. From 15 th JUNE, 2010 To 15 th AUGUST, 2010. Internship Report

Transcript of Internship Report

Page 1: Internship Report

1

INTERNSHIP REPORTLiferay portal and developing portlets in Liferay IDE

Student: Bui Ta Duy.ID: IT060070.

Company: Phi Vien Website Solution Co., Ltd. Supervisor: Mr. Le Tri Bao Long.

From15th JUNE, 2010

To15th AUGUST, 2010.

VIET NAM NATIONAL UNIVERSITY – HO CHI MINH CITY

The International University

School of Computer Science & Engineering

Internship Report

Page 2: Internship Report

2

INTERSHIP REPORT

By

BUI TA DUY

Submitted to School of Computer Science & Engineering

The International University, VNU – Ho Chi Minh city

August, 2010

Company: Phi Vien Website Solution Co., Ltd

Duration: 15th June 2010 - 15thAugust 2010.

Supervisor: Mr. Le Tri Bao Long

Approval

Internship Report

Page 3: Internship Report

3

ACKNOWLEDGEMENTS

It is a great opportunity to intern at Phi Vien Web Solution Co., Ltd from 15th June 2010 - 15thAugust 2010. I have learnt a lot not only applying theories learnt in the office, but also making new friends at work. Additionally, the internship instills me in the right kind of work attitude and professionalism through interaction with people in the organization as well as working in team and employing IT in the real workplace.

The report consists of two separate projects whose topics are based documentation. The purpose of this report is to explain what I did and learnt during my internship period with Phi Vien Website Solution Co., Ltd. The report is also a requirement of School of Computer Science & Engineering for internship program. The report focuses on introduce information PhiVien Website Solution Co.,Ltd, working environment and my knowledge during internship period.

I would like to acknowledgement

Mr. Tran Manh Ha, summer internship advisor at International University who helped and allowed me to carry out my internship Phi Phi Vien Website Solution Co., Ltd.

Mr.Le Tri Bao Long , my advisor at Phi Vien Website Solution Co., Ltd who leads the development of internship’s team. He gave us a lot of helpful advices and technical training during our internship. Every question about technology which I asked he always had an inspirational and thoughtful answer for me.

Mr. Chuong Thai, my teammate at Phi Vien Website Solution Co., Ltd - a student of Polytechnic University. His experience in Liferay was very useful to me.

Thank again! I really thank to Phi Vien Website Solution Co., Ltd, already gave for me a good internship in this summer.

Internship Report

Page 4: Internship Report

4

Table of figures:

Table of work….…………………………………………..………………………(p. 9)

Figure 2……………………………………………………..……………………(p. 12)

Figure 3……………………………………………………..……………………(p. 14)

Figure 4………………………………………………………..…………………(p. 15)

Figure 5…………………………………………………………..………………(p. 16)

Figure 6…………………………………………………………..………………(p. 17)

Figure 7……………………………………..……………………………………(p. 19)

Figure 8…………………………………………………..………………………(p. 20)

Figure 9…………………………………………………………..………………(p. 21)

Figure 10…………………………………………………………………………(p. 23)

Figure 11………………………………………………………...………..………(p. 24)

Figure 12…………………………………………………………………..………(p. 26)

Figure 13……………………………………………………………..……..……(p. 28)

Figure 14………………………………………………………………..………(p. 29)

Figure 15……………………………………………………………..…………(p. 30)

Figure 16…………………………………………………………..…….………(p. 31)

Figure 17……………………………………………………………..…………(p. 32)

Figure 18……………………………………………………………..…………(p. 33)

Figure 19………………………………………………………………………(p. 35)

Figure 20………………………………………………………………………(p. 35)

Figure 21,……………………………………………………………….………(p. 36)

Figure 22………………………………………………………………………..(p. 36)

Internship Report

Page 5: Internship Report

5

Figure 23…………………………………………………………………………(p. 37)

Figure 24…………………………………………………………………………(p. 38)

Figure 25…………………………………………………………………………(p. 39)

Figure 26………………………………………………………………….………(p. 40)

Figure 27…………………………………………………………………..………(p. 40)

Figure 28…………………………………………………………………..………(p. 41)

Figure 29……………………………………………………………………..……(p. 42)

Figure 30…………………………………………………………………..………(p.43 )

Figure 31………………………………………………………………..…………(p. 44)

Figure 32…………………………….…….……………………………..…………(p. 45)

Internship Report

Page 6: Internship Report

6

Table of Contents:

I.Description of Company:...........................................................................................................................5

II.Summary of internship:............................................................................................................................6

III.Planning:..................................................................................................................................................7

IV.Internship activities & achievements:.....................................................................................................8

Liferay Technologies:......................................................................................................................8

1. Portal:.............................................................................................................................8

2. Researching in Liferay portal :........................................................................................8

3. Installing liferay portal:.................................................................................................23

Portlet ………………………………………………………………………………………………………………………………………25

Using Subversion with Hosting on Google Code:..........................................................................26

1. Requirements...............................................................................................................26

2. Create your project on Google Hosting.........................................................................26

3. Check out the repository..............................................................................................31

4. Commit your changes to repository..............................................................................35

5. Update your working copy with changes from others..................................................38

SharePoint technologies:..............................................................................................................41

Microsoft .NET Framework...........................................................................................................42

PV portal.......................................................................................................................................44

V.Internship assessment:...........................................................................................................................45

References:................................................................................................................................................46

Internship Report

Page 7: Internship Report

7

I. Description of Company:

Company Name: PhiVien Website Solution Limited Company.

Email: [email protected]

Address: 17C Tran Binh Trong, ward 5, Binh Thanh district, Ho Chi Minh city.

General information:

The PhiVien Website Solution Limited Company is operating in the field of website

design, supply domain, hosting – website graphic and advertising.

Trading name: Phi Vien Co., Ltd.

Founded: 2007.

Business activities:

Logo design.

Designed – updated the existing website: change the website design is available in

accordance with practical requirement of the business; add new feature makes use easily

than before; regularly monitor, check to overcome the errors website design techniques;

upgrade website without data loss before enterprises.

Specialized in website design: Website design actively complete, consulted designed to

target customers, business development; Design website with Flash action script.

Install and execute network system.

Internship Report

Page 8: Internship Report

8

II. Summary of internship:

I was elected for my internship at Phi Vien Website Solution Co.,Ltd via International

University summer internship program held by School of Computer Sciences and

Engineering. I attended an interview at the company and started to work in the space of 6

weeks.

I worked starting on July through 15th June 2010 - 15thAugust 2010. I filled the position of

a full-time developer and participate in developing a demo company product called

PhiViet portal (PVportal), a kind of portal that help development in administrative their

own website. This product aimed at allowing any customer communicates easily with

their company and simplifies their tasks on administrative procedures.

Jumping in the real working environment was the best feature of my internship; it gave

me to a really motivated, hard-working, team of highly knowledgeable IT professionals

in practical. The most important skill I learnt was the ability to work in a tram, although I

got some team – working skill as I worked for some academic projects at school, it is still

really harder than it looks. I also picked up considerable skill in team communication and

software project management, discussing with the others, getting trained myself and the

ability to adapt to the ever – changing scenarios in process website design. In this

environment, I forced to gain some technical related experiences, like source code control

using SVN, ASP.NET technologies, Liferay technology, C# programming knowledge,

knowledge about domain, hosting … so on.

Internship Report

Page 9: Internship Report

9

III. Planning:

Week Activities

Week1 ( 15/06/2010- 20/06/2010)Study about style working in Phi

Vien.Co,Ltd and received work.

Week2 ( 21/06/2010- 27/06/2010)Research about overview about Liferay

portal and PV portal project.

Week3 ( 28/06/2010- 03/07/2010)

Research about Architecture and

Framework of Liferay portal and submitted

report.

Week4 ( 04/07/2010- 11/07/2010)

Continue research about Liferay

Architecture and Framework, submitted

final report.

Week5 ( 12/07/2010- 18/07/2010)

Research overview about.NET; Share

Point; C#; and application in portal,

submitted report.

Week6 ( 19/07/2010- 25/07/2010)Research more about SharePoint; .NET, C#

submitted final report.

Week7 ( 26/07/2010- 01/08/2010) Research about SVN and submitted report

Week8,9 ( 01/08/2010- 15/08/2010)Finish Project; submitted final report in

order to approval from Phi Vien .Co; Ltd.

Figure1: Table of work in summer internship.

Internship Report

Page 10: Internship Report

10

IV. Internship activities & achievements:

PhiVIen portal is a project which Phi Vien Wed Solution Co.,Ltd in initial deployment.

PhiVien portal is developed to base on combination of public portal, enterprise portal and

marketplace portal in order to spread images of Phi Vien Co.,Ltd to customers. During

my internship, I mainly spend to research in Liferay portal, Sharepoint, C#, .NET and

Subversion .

Liferay Technologies:

1. Portal: A portal is a web application that commonly provides personalization, single sign on,

content aggregation from different sources, and hosts the presentation layer of

information systems. Aggregation is the act of integrating content from different sources

within a web page.

Portal functionality can be divided into three main parts: portlet container, content

aggregator, common services (include single sign on, personalization…so on

2. Researching in Liferay portal :

2.1. Overview:Liferay Portal is the world’s leading open source enterprise portal solution using the

latest in Java and Web 2.0 technologies. Liferay portal provide a unified web interface to

the data and tools scattered across many sources. Within Liferay portal, a portal interface

is composed of a number of portlets – self-contained interactive elements that are written

to a particular standard.

Internship Report

Page 11: Internship Report

11

Ready to go …

Built in Content Management System (CMS) and Collaboration Suite

Out-of-the-box usablility - choose from over 60 portlets and over 20 themes

Out-of-the-box development tools

Out-of-the-box support for 22 languages

Runs on all major application servers, databases and operating systems (over 700

deployment configurations)

Business-friendly MIT License

Easy to use …

AJAX-enabled user interface (e.g. Web OS)

Community-centric services for easy creation of extranets, intranets, and social

networks.

Familiar desktop UI and conventions.

Delegable granular security and role based authorizations.

Technically sound…

Service Oriented Architecture (SOA) with web services support

LDAP support and integration

Portal as a Platform services for rapid portal development and deployment

Secure enterprise application integration framework

Ready integration: Pentaho : Business Intelligence ; Intalio: Business Process

Management ; Terracotta : Scalability and high availability ; ICEfaces : Rich Internet

applications ; jQuery : Dynamic user experiences

Standards Compliant: JSR-286, JSR-170, JBI, WSRP

Internship Report

Page 12: Internship Report

12

Figure2: Portal Framework

2.2. Liferay Content Management System (CMS) and Web Content Management (WCM):

Liferay's built-in CMS and WCM supports portal-based web content publishing and

document/content management. Liferay CMS and WCM haves at least the following

features:

- Document Library and Image Gallery—one central place to aggregate and

manage all content.

- Dynamic virtual hosting—allows using the same installation of Liferay portal to

spin off an infnite number of other portals.

- Publishing workfow, versioning, structured content, XSL content, breadcrumb,

navigation and Velocity templates, and WYSIWYG editing for end users.

Internship Report

Page 13: Internship Report

13

- The Asset Publisher portlet—publishes any piece of content in your portal as

though it were a Web Content portal, either through a set of publishing rules or by

manual selection.

- The Web Content portlet (also called Journal, accessible through the Control

Panel)—helps create, edit, and publish articles, as well as article templates for

one-click changes in layout. It has built-in workfow, article versioning, search,

and metadata.

- The Web Content List (called Journal Articles)—displaying a dynamic list of all

journal articles for a given community.

- The Web Content Display (called Journal Content)—publishes any article from

the Journal CMS on a portal page.

- The Web Content Search portlet—it's powered by the Apache Lucene search

engine; search can be restricted to Journal CMS articles.

- The Nested Portlets portlet—allows the users to drag-and-drop portlets into other

portlets, making complex page layouts possible.

- Custom attributes—adds custom attributes to users and organization forms.It

provides a framework to add custom attributes to any ServiceBuilder entity at

runtime. Page staging, scheduling, and publishing, either locally or remotely.

- Integration with SharePoint—implementation of the SharePoint protocol allows to

save documents to Liferay as if it were a SharePoint server.

Internship Report

Page 14: Internship Report

14

2.3. Architecture and frameworks:

The most important aspect of any portal is its underlying architecture. Liferay portal

architecture support high availability for mission-critical application using clustering,

fully distributed cache, and replication support across multiple servers.

Figure3: Various architecture layer and functionality of portlets.

2.3.1. Service Oriented Architecture:

Liferay portal uses SOA design principles throughout, and provides the tools and

framework to extend SOA to other enterprise application. The Liferay portal comes

packaged with a powerful tool known as ServiceBuilder to helps developer quickly

implement a Service-Oriented Architecture (SOA).  Most technologies needed for SOA

Internship Report

Page 15: Internship Report

15

(Web Services, Spring, Hibernate, etc.) require a tremendous amount of files to be

written and configured.  For any developer, this can quickly become tedious and nurture

an environment of copy-and-paste purgatory.

Liferay's ServiceBuilder automates most of this so that you, the developer, can focus your

energy on your project's business logic.  It only takes three steps to implement a powerful

SOA in Liferay.

Figure4: Define a data model

Define a Data Model

All you need to do is write an XML file called service.xml, based on a DTD provided by

Liferay.  The file should specify all necessary fields, keys and finder methods.  Run

ServiceBuilder using Ant, and done.

Over a dozen files were generated for you for each table you specified.  This includes the

following types of files:

- Spring configuration files and Stubbed Remote/Local service classes

- SOAP and Tunnel classes; WSDL files and Javascript Web Services methods

- Data Model classes

Internship Report

Page 16: Internship Report

16

- Hibernate classes and configuration files

- SQL create and index scripts

Figure5: Declare business methods

Declare Business Methods

Empty Remote and Local service classes have been stubbed out for your by

ServiceBuilder.  All you have to do is declare the methods you want and run the

ServiceBuilder task in Ant again, and done.

Any business methods declared in the Remote service classes will be propagated into the

SOAP and Tunnel classes, WSDL files and added into the list of Javascript Web Services

methods.  Like the definition of the data model, any subsequent changes should be

followed by a run of the ServiceBuilder and the methods will be appropriately

propagated.

Internship Report

Page 17: Internship Report

17

Figure6: Implement business methods

Implement Business Logic

Like any other J2EE application, the Remote implementation class should do any security

and permission checks that you may need; the Local implementation class should contain

the business logic that you allow trusted sources to invoke.  After you are done, compile

your code and you now have a SOA!

Liferay's ServiceBuilder has created all the necessary files you need for a Service-

Oriented Architecture.  Rather than hours and hours of tedious copy and pasting, the

ServiceBuilder automates all of this in a matter of seconds.  You can now spend all that

time saved on the place where your expertise should be focused: on the business logic.

2.3.2. Enterprise Service Bus:

The Enterprise Services Bus (ESB) is a central connection manager that allows

applications and services to be added quickly to an enterprise infrastructure. Without

getting into technical jargon, an ESB is basically just a switching station between

Internship Report

Page 18: Internship Report

18

services. To use Liferay as an example, imagine that the portal needs a workflow

service/component. There are several different workflow engines out there that would

suit our needs, but we want to give users the flexibility to choose the one they want to

use. Therefore, instead of having the portal directly access the workflow service, it will

access the ESB, and the ESB will then determine which workflow component to use. No

matter how many times or in what ways the workflow service changes, the portal is never

directly impacted. ESBs provide a powerful mechanism to "plug in" new

services/components and modify them with little or no impact to the portal configuration.

2.3.3. Portal development strategies:

Liferay portal is extensible at least at three levels: Plugins SDK environment, extension

environment and Liferay portal source code. In general, each level of extensibility offers

a different compromise of flexibility with different migration requirements to future

version.

Extension Environment

The Extension environment provides capability to customize Liferay portal completely.

Since it is an environment which extend Liferay portal development environment, it have

a name “Extension”, or called “Ext”. By the Ext, we could modify internal portlets, or

called the out-of-the-box portlets. Moreover, we could override the JSP files of portal and

out-of-the-box portlets. This kind of customizations is kept separate from the Liferay

portal source code. That is, Liferay portal source code does not have to be modified, and

a clear upgrade path is available in the Ext.

As shown in following figure, custom code will override Liferay portal source code in the

Ext only. In deployment process, custom code is merged with Liferay portal source code

Internship Report

Page 19: Internship Report

19

in the Ext. That is, developers override Liferay portal source code. Moreover, custom

code and Liferay portal source code will constructed as customized Liferay portal in the

Ext first, and then the customized Liferay portal will be deployed from the Ext to the

application server.

Figure7: Process code in Liferay portal

Plugins SDK Environment

The Plugins SDK is a simple environment for the development of Liferay plugins,

including themes, layout templates, portlets, hooks and webs (that is, web applications).

It provides capability to create hot-deployable portlets, themes, layout templates, hooks

and webs.

As shown in following figure, the Plugins SDK provides environment for developers to

build themes, layout templates, portlets, hooks or webs first. Afterwards, it uses the Ant

target Deploy to form WAR and copy it to the Auto Deploy directory. Then, Liferay

portal together with application server will detect any WAR files in the auto hot-deploy

folder, and automatically extracts the WAR files into the application server deployment

folder.

Internship Report

Page 20: Internship Report

20

Figure8: Process of Plugin SDK in Liferay portal.

For more details, portlets go in the folder /portlets; themes go in the

folder /themes; layout templates go in the folder /layouttpl; web applications go in

the folder /webs; and hooks go to the folder /hooks. By the way, Ant scripts are

used to build and deploy plugins to a local application server.

Especially, portlets developed in the Plugins SDK may only import classes from the

portal API (Portal-Kernel and Portal-Service) and other JAR files contained in the

specific portlet folder /WEB-INF/lib. This forces portlets to rely completely on the Portal

API and not to depend on implementation classes defined in the Portal-Impl.

As you can see, portlets can make use of any application framework that Liferay

supports, Model-View-Controller (MVC) frameworks. Here is a list of application

frameworks, but not limited, Struts, Spring, Tapestry, JSF, Wicket, etc.

In addition, as mentioned above, Liferay portal can also integrate with certain web

applications as webs, for instance, solr-web - search engine integration plugin; jbpm-web

– workflow engine integration plugin; mule-web and servicemix-web - Enterprise Service

Bus (ESB) integration plugins.

Internship Report

Page 21: Internship Report

21

2.3.4. Development Strategies .

As shown in following figure, Liferay Portal is extensible at least at three levels, e.g.

Plugins SDK environment (Level I), Extension environment (Level II) and Liferay Portal

Source Code (Level III). As you can see, each level of extensibility offers a different

compromise of flexibility with different migration requirements to future version. Thus,

we need to choose the appropriate level for the requirements at hand which allows for

easier future maintainability.

Figure9: Three level extensible of Liferay portal

In the Level I, we can develop portlets, themes, layout templates, hooks and webs as

independent software components, and moreover, these plugins could be distributed and

deployed as WAR files and could be organized in plugin repositories. Liferay portal

provides the Plugins SDK to help us with development of these plugins.

In the Level II, we can manage configuration files, custom source code, custom JSP files,

and modified JSP files, related to the Portal-Impl. That is, the Ext provides different sub-

levels (e.g., configuration files, custom source code, custom JSP files, and modified JSP

files) of extensibility.

Internship Report

Page 22: Internship Report

22

In the Level III, we can modify the Liferay portal source code. This approach can only be

used for sponsored development. That is, we develop specific features for specific

projects first and then contribute back to Liferay portal source code.

In brief, if your requirements are related to customize and / or extend the Portal-Impl (e.g.

UI changing, LDAP import algorithms, Document Library lock mechanism, forms for

user registration or organization creation, integration, modifying the out-of-the-box

portlets, etc.), you should use the Ext. Otherwise, it is better to use Plugins SDK. Note

that with Hooks you can hook up portal properties, language properties and JSP files

related to the Portal-Impl.

3. Installing liferay portal:

Step1: you need to download the latest version of JDK. It is available at

http://java.sun.com for every OS. The installation instructions can also be found here.

When you install it, make a note of the location as you will need it when setting your

JAVA_HOME variable.

Next, you need to set the JAVA_HOME variable. The following steps can be used to set

up the JAVA_HOME variable in Windows. You can also set it up in Linux, Unix, and

Mac operating systems as you can run Liferay portal in any OS.R

- Right-click on My Computer and go to Properties.

- Go to the Advanced tab and click on Environment Variables and you will need to

add a new system variable.

- Set JAVA_HOME to the location you have noted above.

- Edit the path and add %JAVA_HOME%\bin to the beginning of the path system

variable.

Internship Report

Page 23: Internship Report

23

- Click on OK.

Figure12: Set Java Environment.

Step2: You need to download the latest version of Apache Ant. It is available at

http://ant.apache.org for every OS. The installation instructions can also be found here.

When you install it, make a note of the location as you will need it when setting up your

ANT_HOME variable.Then you need to set the ANT_HOME variable in a similar

manner as JAVA_HOME variable was set.

Step3: You can check whether OS recognizes Ant, and also if it is the correct version, by

running the command ant –version and java –version.

Internship Report

Page 24: Internship Report

24

Step4: Unzip liferay-portal-tomcat-6.0.5.zip into your folder need run for examples:

C:/liferay. Doble-click on startup.bat in folder C:\liferay\liferay-portal-6.0.5, liferay will

deploy about 30-60s and open internet browser default at address http://localhost:8080/ .

You can login with User name and Password:

Email address: [email protected]

Password: Bruno

Or

Email address: [email protected]

Password: test

Internship Report

Page 25: Internship Report

25

Portlets:

Portlets are web components - like servlets - specifically designed to be aggregated in the

context of a composite page. Usually, many portlets are invoked to in the single request

of a portal page. Each portlet produces a fragment of markup that is combined with the

markup of other portlets, all within the portal page markup

Figure10: A set of portlets, for examples: Reports, Language, Sign in:

A portlet container is a server side software component that is capable of running

portlets. A portal is a wed application that includes a portlet container and may offer

additional services to the user. Liferay Portal includes its own portlet container and offers

lots of functionalities such as user and organization administration, creation of virtual

communities, having pages based on portlet layouts, graphical selection of portlets and

drag & drop to place them, grouping pages into websites, several bundled ready-to-use

portlets and much more.

Portlet lifecycle:

A portlet has a lifecycle defning how it is loaded, instantiated, and initialized, as well as

how it handles requests from clients, and how it's taken out of service. The lifecycle of a

Internship Report

Page 26: Internship Report

26

portlet includes the Init, processAction, render, and destroy of the portlet interface, as

shown in the following figure:

Figure11: Portlet lifecycle.

Loading and instantiation: The loading and instantiation can occur when the portlet

container starts the portlet application, or it can be delayed until the portlet container

determines that the portlet needs to service a request.

Initialization: Portlets can initialize resources and perform other one-time activities.

Request handling: The portlet container may invoke the portlet to handle client requests.

The portlet interface defnes two methods for handling requests—the processAction

method and the render method, as shown in the next figure.

Generally speaking, during a render request, portlets such as Language, Sign

End of Service: When the portlet container determines that a portlet should be removed

from service, it calls the destroy method of the portlet interface, in order to allow the

portlet to release any resource it is using and save any persistent state.

Internship Report

Page 27: Internship Report

27

Using Subversion with Hosting on Google Code:

In summer internship, I already study about using Subversion with Hosting on Google

Code. This is just a short tutorial about Subversion and Google Code, it is not a

Subversion detailed guide.

1. Requirements Before we start, we need to prepare some stuffs

a. A subversion client There are many of them, in this case I used TortoiseSVN,

download and install it on your computer http://tortoisesvn.net/downloads

b. A Google Account: We need a Google Account to put our project on Google

Hosting. If you do not have a Google Account already, create one

http://www.google.com/accounts/NewAccount

2. Create your project on Google Hosting a. Go to: http://code.google.com/hosting/createProject

Click on Create a new Project

Internship Report

Page 28: Internship Report

28

Figure13: Screen step using SVN on Google Code #1.

b. Fill in you project information, notice that Version control system is Subversion

Click on Create project, you will be redirect to your Project Home

Internship Report

Page 29: Internship Report

29

Figure14: Screen step using SVN on Google Code #2.

c. Go to tab Administer > Project Members Add owners, committers, contributors

by using their emails. Their accessible level to project depends on their roles.

Click Save changes to finish

Internship Report

Page 30: Internship Report

30

Figure15: Screen step using SVN on Google Code #3.

d. Go to tab Source Find the URL of repository, it is something like this line svn

checkout https://testuportal.googlecode.com/svn/trunk/ testuportal --username

xxxxx. In this case, URL of repository is

https://testuportal.googlecode.com/svn/trunk/, we will use that URL in step 3

Internship Report

Page 31: Internship Report

31

Figure16: Screen step using SVN on Google Code #4.

e. Find below line and click on the link When prompted, enter your generated

googlecode.com password. On the redirected page, you will see your

GoogleCode.com password; write down it to somewhere in case you need; we

will use that password in next step.

Internship Report

Page 32: Internship Report

32

Figure17: Screen step using SVN on Google Code #5.

3. Check out the repository a. Create a folder in certain place in your computer, that folder will be a Subversion

working copy of our repository, I named my folder “testportal”

b. Right-click on that folder, choose “SVN Checkout…”

Internship Report

Page 33: Internship Report

33

Figure18: Screen step using SVN on Google Code #6.

c. Enter your URL for repository (see 2.d for the URL), click OK

Internship Report

Page 34: Internship Report

34

Figure19: Screen step using SVN on Google Code #7.

d. The Checkout dialog will appears, then you will be asked for authentication, enter

your username (username is your Google Account ID) and password (see 2.e)

Internship Report

Page 35: Internship Report

35

Figure20: Screen step using SVN on Google Code #8.

e. Wait for seconds, the Checkout dialog will be something like this

Figure21: Screen step using SVN on Google Code #9.

Internship Report

Page 36: Internship Report

36

f. Click OK, this step is done

4. Commit your changes to repository a. Create a certain file in your working copy, in my case it is testfile.txt

Figure22: Screen step using SVN on Google Code #10.

b. Right-click on the working copy folder, choose SVN Commit

Figure23: Screen step using SVN on Google Code #11.

Internship Report

Page 37: Internship Report

37

c. In Commit dialog, fill in your information Message: describing your action

Changes made: check on the files/folders you want to make changes to repository

Then click OK

Figure24: Screen step using SVN on Google Code #12.

Internship Report

Page 38: Internship Report

38

d. Enter your username and password (check on Save authentication if you do not

want to do this action again), click OK

e. Commit dialog will list the actions you have just done like this

Figure25: Screen step using SVN on Google Code #13.

f. Now go to your Project Home on Google Hosting and check whether your

changes is made

g. Go to tab Source > Browse, In Directory choose trunk (trunk is the directory that

hold the main line of development), you will see the changes you have just

committed (in my case testfile.txt is added)

Internship Report

Page 39: Internship Report

39

Figure26: Screen step using SVN on Google Code #14.

5. Update your working copy with changes from others If others member of your team made changes to the repository, use SVN Update feature

to update your working copy. In this case, a member of my team created a new file called

other_member_add.txt in his working copy and committed it to repository.

a. Right-click on your working copy > SVN Update

Internship Report

Page 40: Internship Report

40

Figure27: Screen step using SVN on Google Code #15.

b. Enter your username and password if needed

c. Wait for seconds, Update dialog will list all the changes to your working copy

Figure28: Screen step using SVN on Google Code #16.

Internship Report

Page 41: Internship Report

41

d. Now go to your working copy directory, you will see other_member_add.txt is

added

Figure29: Screen step using SVN on Google Code #17.

Internship Report

Page 42: Internship Report

42

SharePoint technologies:

SharePoint is an extensible and scalable web-based platform consisting of tools and

technologies that collectively form what’s known as SharePoint Products and

Technologies. The total package is a platform on which you can build business

applications to help you better store,

share, and manage digital information

within your organization. Because you

can build with or without the need for

code, the package empowers the average

business user to create, deploy, and

manage team websites, without

depending on skilled resources, such as

systems administrators or developers.

Using lists, libraries, and Web Parts, you can transform team websites into business

applications built specifically around making your organization’s business processes

more efficient.

SharePoint Products and Technologies has two major offerings:

I. Windows SharePoint Services 3.0 is a free offering available to Windows

Server 2003 and Small Business Server 2003. It contains the core

functionality needed for document management and collaboration, such as

document libraries and lists.

Internship Report

Page 43: Internship Report

43

II. Microsoft Office SharePoint Server 2007 is a newer version of SharePoint

Portal Server 2003. It offers the same features of WSS in addition to the

functionality required for Enterprise Content Management as well as Excel

and Forms Services, Business Data Catalog, and Business Intelligence.

SharePoint also features a more robust and customizable search engine as well

as special features for displaying information stored in the SharePoint

environment in a more customizable and aggregated format than is possible

with WSS.

Microsoft .NET Framework

Figure31: Microsoft .NET framework in content.

Internship Report

Page 44: Internship Report

44

The .NET Framework is an integral Windows component that supports building and

running the next generation of applications and XML Web services. The .NET

Framework is designed to fulfill the following objectives:

To provide a consistent object-oriented programming environment whether object code is

stored and executed locally, executed locally but Internet-distributed, or executed

remotely.

To provide a code-execution environment that minimizes software deployment and

versioning conflicts.

To provide a code-execution environment that promotes safe execution of code, including

code created by an unknown or semi-trusted third party.

To provide a code-execution environment that eliminates the performance problems of

scripted or interpreted environments.

To make the developer experience consistent across widely varying types of applications,

such as Windows-based applications and Web-based applications.

To build all communication on industry standards to ensure that code based on the .NET

Framework can integrate with any other code.

C# programming language

The C# language is disarmingly simple, with only about 80 keywords and a dozen built-

in datatypes, but C# is highly expressive when it comes to implementing modern

programming concepts. C# includes all the support for structured, component-based,

object-oriented programming that one expects of a modern language built on the

shoulders of C++ and Java.

Internship Report

Page 45: Internship Report

45

PV portal

Figure32: website PV portal main screen in demo.

Internship Report

Page 46: Internship Report

46

V. Internship assessment:

Concerning all I had worked in Phi Vien .Co,Ltd, it was interesting to discover something

else that I was taught in my school such as programming and software engineering. The

work in itself was also interesting in different point of views. After this internship, I am

again confirmed that in order to get a good job and success in my career, the soft skills

such as communication and management as much important as technical skills. Now I

know how a software product made, what exactly every people in team do and how to

introduce and demo it to the customers.

Moreover, working on the real commercial project made me learn different things. Even

though that was something new for me, I could use tools I knew to find solutions. I have

no background knowledge on Liferay portal, Subversion, .Net, C#, SharePoint before this

internship. After 2 moths, I believe that I can handle Liferay, Subversion, and knowledge

about .Net, Sharepoint, C#... so on.

This internship was a great experience. It was a real pleasure to work in team at Website

Solution Phi Vien .Co,Ltd, they are all kindness and interesting.

Internship Report

Page 47: Internship Report

47

References:

[1] David Matthew Sterling (2008), Microsoft Office SharePoint Server: The Complete

Reference, MacGraw-Hill, 2008, ch.2, 4, 5

[2] SharePointDevWiki, http://sharepointdevwiki.com/display/public/Welcome/

[3] SharePoint on Wikipedia, http://en.wikipedia.org/wiki/Microsoft_SharePoint/

[4] Website about SVN, http://sourceforge.net/projects/tortoisesvn/files/Documentation/1.6.5/TortoiseSVN-1.6.5-en.pdf/download/

[5] Website of Liferay portal, http://www.liferay.com/

[6] Book - Practical Liferay, Java-based on Portal applications development – PhD, Poornachandra Sarang.

[7] Book – Liferay portal 5.2 Systems Development – Jonas X.Yuan

[8] Book – Liferay portal 6 Enterprise intranets – Jonas X.Yuan

Internship Report