Masaharu Iketani

CS 491B

Dec. 3, 2004

Project Report

Website Content Management System

Abstract:

Many companies and organizations have been spending a large mount of money and effort on their web site. Web designers also have been spending much time and effort studying how to create web site. Lately, many applications like Microsoft FrontPage, Macromedia Dreamweaver, and HomePage Builder, were released to make creating web sites easier.

This project will provide another tool to make web site easy to create and maintain. There are several additional functions other than the website contents management systems with a WYSIWYG editor. Template management system let administrators change the whole looks of the website in a single click. Event posting function allows registered members to post their event on the web site with a minimum effort. To register those members, administrators can use member management system, which allows them to create new accounts and delete accounts. File upload and download system provide a place for upper level registered members to share files with each other. Then the mailing list system let administrators to send e-mail to subscribed students according to their school, major, sex, and interest, which allows them to prevent sending e-mail that they are not interested.

1. Introduction

Website Content Management System (CMS) allows organizations or enterprises of any size to maintain their web site in the easy, cost efficient, and time efficient way. There are many benefits of implementing CMS into a web site. CMS allows administrators with no knowledge of HTML to create and edit website. Use of CMS can save cost of buying HTML editor programs, such as Microsoft FrontPage or Macromedia Dreamweaver, and FTP programs, such as CuteFTP. Implementation of this CMS does not cost anything since it works on free open source environment, such as Linux, Apache, Tomcat, MySQL, as well as commercial environment, such as Windows, IIS. Use of CMS also can save time of creating a page on a PC and uploading to a server; a page is published as soon as a user finishes modifying on the CMS. It provides a very convenient environment for administrators since they can create and modify a web site from anywhere in the world with a PC with the Internet connection; no HTML editor or FTP programs are necessary.

This project is dedicated to Japanese Student Network (JSN), which is a Non-Profit Organization, organized by Japanese students from colleges and universities in Southern California (USC, UCLA, CSULA, CSULB, CalPoly, LACC, SMC etc… ). Intended audience is Japanese students who are studying in the United States, or coming to the United States to study abroad because JSN’s mission is to help them succeed. Members from Japanese Student Associations (JSA) are also considered as the audience. JSA’s are basically Japanese Club in each universities, and providing a place for them to post their events is a part of this project’s goal.

This project’s primary goal was to create CMS, but it came out to be more than just CMS. It also can provide an e-mail sender function, which can be useful as customer relationship management. Administrator can send e-mail to people who are subscribed to the mailing list from anywhere in the world. Bulletin Board System provides a place for students and JSN members to communicate with each other.

2. TechnologicalBackground

All pages in this project are written in JavaServer Pages (JSP). JSP is a Web-based technology that enables Web developers to easily create and maintain dynamic and information-rich Web pages.

Internet Information Server (IIS) is used as a web server. IIS can be installed on Windows-based computers. It provides a highly reliable, manageable, and scalable Web application infrastructure.

Tomcat is use as an application server to be able to display JSP. Tomcat can be installed on Windows-based, Linux-based, and other platform computers.

JK2 is used to redirect request from IIS to Tomcat. JK2 is necessary for IIS to execute Servlets and JSP. JK2 ISAPI redirector plug-in will let IIS to send Servlet and JSP request to Tomcat, so they can be executed.

This project is build on top of Java 2 Platform Standard Edition (J2SE) platform. J2SE provides a complete environment for Java Web Services and other applications development.

MySQL is used as a database. MySQL provides a fast, multi-threaded, and multi-user database server.

Java DataBase Connectivity is necessary for this project to connect JSP and MySQL, and MySQL Connector/J is used as JDBC. Connector/J conterts JDBC calls into the network protocol used by MySQL, and enable developers to work with Java programs that interact with MySQL.

3. SystemArchitecture

This CMS contains three main components:

  • Content Gateway
  • Administration Workbench
  • Back-End Database

Content Gateway / Administration Workbench Requirements
The Content Gateway and Administration Workbench are written in 100% Java, and can run in any J2SE 1.2.1 / JDK 1.3.1 environment.
This CMS supports following platforms:

- Windows NT/2000: Apache or IIS web server with Tomcat or JRun

- Linux: Apache web server with Tomcat or JRun

- Solaris: Apache web server with Tomcat or JRun

Back-endDatabase SystemRequirements
For the Back-End Database, this CMS can use MySQL. This database is available for a wide variety of platforms, including:

- Linux

- Windows NT/2000

- Solaris

- MacOS X

4. Design and Implementation Details

4.1 System Design Details

4.1.1 Event Posting System

Future Event Page is to display the organization’s coming up events. This page accesses event table in the database, takes event entries that are held later than today’s date, and displays in the page.

Past Event Page is to display organization’s past events. This page accesses event table in the database, takes event entries that are held before than today’s date, and displays in the page.

Event Calendar page is to display organization’s event in the calendar form. This page accesses event table, takes events’ short name, and displays in the calendar. It shows the current month’s calendar by default, but viewer can select the month and year.

All registered members can post events in organization. This page gets information from the form and writes into event table in the database. That information will be displayed in future event, past event, and calendar pages.

4.1.2Mailing List System

Student viewers can subscribe their e-mail addresses to the organization’s mailing list. This system can be very useful for customer relationship management since administrator can collect their school name, major, sex, and their interests. Knowing customers’ interest is very important in the marketing place.

Student viewers can unsubscribe from the mailing list. This page will take their e-mail address, randomly generate 6 digits numbers as a subscribe password, and send it to their e-mail accounts. Those e-mail addresses and passwords will be stored in deletePass table in the database. There is no direct link to this page on the web site; instead, administrators can put the link in the end of e-mails that they send to students.

After receiving unsubscribe password, viewers can enter their e-mail addresses once again and password to get unsubscribed. Entering correct password will set a delete flag in list table, so their record will not show up in the sending e-mail system. Link to this page will be provided to students only in the e-mail that contains delete password, or after they send a request to get unsubscribed.

Sending e-mail functionallows administrators to send mass e-mail to any students that are subscribed to organization’s student mailing list. Administrators can select students depends on their school name, major, sex, and interests. This page accesses list table in the database and get any entries with no deleted flag.

Mailing list management systemallows administrators to search and delete student mailing list. It accesses list table and display all entries in the table. Administrators can search students depends on their school name, major, sex, interests, and deleted flag. Deleting entry on this page actually deletes an entry, not just sets a deleted flag.

4.1.3Bulletin Board System

Bulletin board system is where organization’s representative and their viewer can interact with each other on the web site. This page can be useful in the customer relationship management. Clients also can interact with other clients as well. This page can be intranet bulletin board system if an administrator put this page in the part of content management system.

4.1.4Administrative Systems

Log in page allow organization member to log in to web site. There are three authorization levels: administrator, JSN member, and JSA member. Administrator has an authorization to access all pages in the system, JSN members have limited access, and JSA members have the most limited access. This page access users table in the database, and set session. When somebody tries to access any authorized pages without logging in, he/she will automatically guided to this page.

Content management system allows administrators to create file, create directory, delete file, delete directory, rename file, rename directory, edit file, and upload file on the web site from the server side. HTML editing function uses a WYSIWYG editor. Basic idea of WYSIWYS editor is that people don’t have to know html to edit web pages since it converts formatted text into html.

Member management system allows administrators to add and delete organization’s member. It accesses users table, and display all users. Administrators can input user ID, password, and authorization level to create a new account. There are two levels of authorization: one is a JSN member level, where members can share files, and the other one is JSA member level, where members can only post events. Deleting a member is just to click on the delete link on the page.

Web site template management system allows administrators to change the template of the web site. Template is a basic format of the whole web site. Changing the template will change the look of entire web site since all pages on the web site access template file, get a current template, and use it. Administrators can easily create a new template by dividing a format into two JSP files, uploading to template directory, and add a new template through this page.

Log out page terminates members’ session. It is highly recommended to log out when finishing the edits. Sessions also get terminated after thirty minutes.

4.1.5 File Sharing System

File upload page allows administrator and JSN members to upload a file to a certain directory on a web server. It allows to upload three files at a time. Providing an intranet place for JSN members to share their work and documentations is essential for this project since they have many activities through out the year and they need to share their documentations without sending them via e-mail to everybody every time.

File download page displays all files in a certain directory on the web server. Administrator and JSN members can easily download, delete, and rename files.

4.2 GUI Design

4.2 Web-tier Work Flow

4.3 Database Backend

MySQL is used as back-end database. It contains following tables:

- E-mail List table (list)

- List of Schools table (school)

- List of Majors table (major)

- Member Management table (users)

- Website Template Management table (template)

- Event Data table (event)

- Unsubscribe Request table (deletePass)

4.4 Security Subsystem

Installation of security software, such as Symantec Norton Internet Security or McAfee Personal Firewall, is highly recommended to protect the server from online threats such as, hackers, crackers, virus, and worms.

All CMS pages are protected by session management. If a client is not logged in, it automatically takes to log in page. Japanese Student Association (JSA) members only have access to event input page. JSN members only have access to event input page, file upload page, and file download page, and they are allowed to upload and download from only certain directory on the server.

5. Summery and Future Considerations

This project when beyond just web site content management system; it contains mailing system and bulletin board system to help customer relationship management, file sharing system to help JSN members to interact with each other, and event posting system to keep the viewers updated with the organization’s programs. For the future considerations, job opportunities and internship information can be posted like the event postings. Corroborating with business people can make this much easier. Also, developing a better bulletin board system can make the web site even more interactive.

Appendix A. Database Schema Definitions

CREATE TABLE list (//Table to store data for mailing list

mail VARCHAR(50) NOT NULL,//E-mail address

name VARCHAR(20) NOT NULL,//Name

school VARCHAR(60) NOT NULL,//School Name

major VARCHAR(50) NOT NULL,//Major

sex CHAR(2) NOT NULL,//Sex (M/F)

gdate DATE NOT NULL,//Registered Date

intern integer NOT NULL,//Interest 1. Intern

volun integer NOT NULL,//Interest 2. Volunteer

job integer NOT NULL,//Interest 3. Job or career

trans integer NOT NULL,//Interest 4. Transferring School

delflag integer NOT NULL,//Flag if a person is unsubscribed or not

primary key(mail)//Primary Key of this table is E-mail

);

CREATE TABLE schools (//Table to provide all the colleges and

//Universities in the United States

schoolName VARCHAR(60) NOT NULL//Names of School

);

CREATE TABLE majors (//Table to provide all majors

majorName VARCHAR(50) NOT NULL//Names of Major

);

CREATE TABLE deletePass (//Table to store unsubscribe password

mail VARCHAR(50) NOT NULL,//E-mail address to unsubscribe

code CHAR(6) NOT NULL, //Delete password

primary key(mail)//Primary key is E-mail

);

CREATE TABLE users (//Table to store data for members

user VARCHAR(20) NOT NULL,//User ID

pass VARCHAR(20) NOT NULL, //Password

name VARCHAR(20) NOT NULL,//User name

agroup CHAR(3) NOT NULL,//User group (admin, user, guest, etc…)

primary key(user)//Primary key is User ID

);

CREATE TABLE event (//Table to store event data

edate DATE NOT NULL,//Event date

stitle VARCHAR(30) NOT NULL,//Short event title for calendar

title VARCHAR(100) NOT NULL,//Event title

etime TIME,//Event time

location VARCHAR(50),//Event Location

host VARCHAR(20) NOT NULL,//Event Host

contact VARCHAR(20) NOT NULL,//Contact Person

mail VARCHAR(20) NOT NULL,//Contact Person’s E-mail address

url VARCHAR(100),//Event URL

description VARCHAR(200)//Event Description

);

CREATE TABLE template (//Table to manage web design template

number integer NOT NULL,//Template number

name VARCHAR(20) NOT NULL,//Template Name

current integer,//Current template number

primary key(number)//Primary key is Template number

);