Dec. 3, 2004
Website Content Management System
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.
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
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. Technological Background
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
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
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
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
3. System Architecture
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-end Database System Requirements
For the Back-End Database, this CMS can use MySQL. This database is available for a wide
variety of platforms, including:
- Windows NT/2000
- 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
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.2 Mailing 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 function allows 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 system allows 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.3 Bulletin 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.4 Administrative 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
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 Web-tier Work Flow
Menu Page Management Page Log Out Page
Log In Page
File Upload Page
File Download Page
JSN Members Pages
JSA Members Pages
Event Input Page
Subscribe Page Unsubscribe Request Page Unsubscribe Page
Bulletin Board System
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