Synopsis of Java based content management system by Jaspreet Singh

download Synopsis of Java based content management system by Jaspreet Singh

If you can't read please download the document

description

This is java based cms, which can be used to manage content on your websites and also to manage its look and feel (themes) with just few clicks

Transcript of Synopsis of Java based content management system by Jaspreet Singh

  • WebBean Project Report P a g e | 1

    CSE Department, Guru Nanak Dev University, Regional Campus, Gurdaspur.

    Training Details

    About Real Infotech :

    Real Infotech was established to provide "Quality Software & web Solutions" and

    "Professional IT trainings". The tremendous progress made by the organization and

    the reputation it commands today is an ample testimony of its commitment to

    quality.

    Real Infotech offers various training programs for IT professionals. The objective of

    their training programs is to bridge the gap between the practical knowledge level of IT professionals and requirement of the IT industry. Keeping this in mind, they

    have prepared some extensive training programs which makes their students technically sound enough for the IT industry. Real Infotech offers three types of training programs:

    1. Specialized Training Programs . 2. Six Month Training Programs for Eng. Graduates / MCAs . 3. Two Month Training Programs for Engineering Graduates .

    Industrial Training (6 Months ) in Java:

    Pre - requisite : Candidates must have good knowledge of C/C++ and OOPS

    During this extensive training, student is trained in Core Java and Advanced Java

    for first three months and during rest of the training period, a project work is developed by the student.

    Core Java

    Intro to Java , OOPS, Interfaces, Exception Handling, Multithreading, Packages,

    Networking, File & I/O Streams, Collections

    Advanced Java: Module I

    Applets, AWT, Swing, JDBC, Java Beans

    Advanced Java: Module II

    HTML/DHTML, JavaScript, Java Servlets, JSP, JDBC, Java Beans, MVC Arch., JMS, File Uploading

    Java Enterprise Edition (J2EE)

    XML, RMI, Enterprise Java Beans, Struts, JNDI, AJAX

  • WebBean Project Report P a g e | 2

    CSE Department, Guru Nanak Dev University, Regional Campus, Gurdaspur.

    Why Java?

    There are many reasons for why I have opted Java Web Technology for six month

    training. Reason behind the increasing Java Popularity is its portability and easy to

    understand English like syntax.

    Android app s development making it an impor tant progr amming language in the

    modern times. Many job options are open to you if you learn Java, you can develop

    core Java based server side application, J2EE web and enterprise applications, and

    opt for Android based mobile application development.

    Apart from the reasons cited above, here are 10 more reasons for learning Java -

    1) Java is ready to learn As stated on javarevisited.blogspot.in, Java comprises

    of fluent English like syntax with minimal magic characters like

    Generics angle brackets. It makes it ea sy to read Java program and learn quickly.

    Once one becomes familiar with initial hurdles with installing JDK and setting up

    2) Java is an Object Oriented Programming Language (OO PS ) - Developing

    OOPS application is much simpler and it assist in keeping system modular, flexible

    and extensible. After acquiring knowledge in key OOPS concept including

    Abstraction, Encapsulation, Polymorphism and Inheritance, all these can be used

    usin g Java as it encompasses several best practices and design pattern in it's

    library.

    3) Java has rich API The language has a rich API and visibility that comes with

    Java installation. In the initial days of Java programming, Applets were used

    proving gre at animation capability. Java offers API for I/O, networking, utilities, xml

    parsing, database connection, and everything. Anything remaining is covered by

    open source libraries like Apache Commons, Google Guava and others.

    4) Powerful development tools e .g. Eclipse , Netbeans - Eclipse and Netbeans

    have played a vital role in making Java one of the best programming language. It is

    a pleasure to code in IDE once you have coded in DOS Editor or Notepad. It not

    only assist in code completion but also offers strong debugging capability that are

    essential for real world development.

    5) Good collection of open source libraries - Open source libraries help in

    ensuring that Java is utilized everywhere. There has been contribution by a host of

    libraries from organ izations like Apache, Google, etc making Java development

    easy, faster and cost effective. With framework such as Spring, Struts, Maven

    ensuring that Java development follows best practices of software craftsmanship,

    propagates using of design patterns and assisted Java developers in getting the

  • WebBean Project Report P a g e | 3

    CSE Department, Guru Nanak Dev University, Regional Campus, Gurdaspur.

    work done.

    6) Great community support - Community is the greatest strength of Java

    programming language and platform. Java has many active forums like

    Stackoverflow which is an open source organizations and many Ja va user group for

    assisting with everything. Java has a community to assist beginners, advanced and

    even expert Java programmers.

    7) Java is FREE As Java is free language you can save money for creating

    anything using the Java application. It has also a ssisted Java in gaining popularity

    in the midst of individual programmers, and large organizations.

    8) Very Good documentation support Javadocs Javadoc is an amazing piece

    of documentation telling you all there is to know about Java API. It is one of the

    major reasons for Java being the best programming language. It has made learning

    easy, and providing great reference at the time of coding in Java.

    9) Java is platform independent

    great way to attract a host of new development in Java. It is the prime reason for

    Java being the best pro gramming language, as most of Java applications are

    developed in Windows environment and run in the UNIX platform.

    10) Java is everywhere Java runs on desktop, on mobile , on card, and nearly

    everywhere and so do Java programmers. The wide availability of Java

    programmers is another reason for organizations opting to choose Java for new

    development than any other programming language.

  • WebBean Project Report P a g e | 4

    CSE Department, Guru Nanak Dev University, Regional Campus, Gurdaspur.

    Project Description and Technologies Used

    Project Name:

    WebBean (A Java CMS)

    Project Description:

    WebBean is a Java Based Content Management System with Mobile responsive

    attractive user interface . Using WebBean, you can develop any kind of web project

    like a blog website, or commercial w ebsite, or a web portal for universities and

    hospital, etc. WebBean take care of data management in dbms and uses highly

    secure methods to fetch that data. Using WebBean, you can customize themes of

    your website, can add new components or banners, can add or delete articles and

    their categories, manage users of website, add custom footer and title of website.

    WebBean also manage sessions, user details, total visitors, online user, and many

    things at backend.

    It is my innovative idea which came from other ex isting Content Management

    some support other technologies like ASP.NET, PERL, RUBY, and PYTHON.

    But there are very less number of CMS which support Java. And those which

    suppo rt like openCMS and Apache Roller are very complex and can only be used for

    high scale projects.

    So I am designing Webbean as a solution to this problem. Webbean is very simple

    to use CMS but is highly flexible and efficient. Webbean take care of authentic ation

    problems and sql injections attacks.

    Languages used :

    Programming Logic:

    Core Java, Java Servlets, JSP and XML.

    User Interface:

    Html 5, CSS 3, Javascript, Jquery, Less, and Twitter Bootstrap framework.

    Database Tier:

    Structure Query Language (SQL) in Mysql database system.

  • WebBean Project Report P a g e | 5

    CSE Department, Guru Nanak Dev University, Regional Campus, Gurdaspur.

    Technologies Used

  • WebBean Project Report P a g e | 6

    CSE Department, Guru Nanak Dev University, Regional Campus, Gurdaspur.

  • WebBean Project Report P a g e | 7

    CSE Department, Guru Nanak Dev University, Regional Campus, Gurdaspur.

  • WebBean Project Report P a g e | 8

    CSE Department, Guru Nanak Dev University, Regional Campus, Gurdaspur.

    User View Analysis

    There are two interfaces with which user will interact. So there are two different

    points of view which we need to consider for analysis purpose.

    And these are:

    1. Public view which admin wants to create.

    2. Admin view with which admin will interact and will work with.

    Public View

    WebBean is a tool to create websites and to manage content on them. So the final

    output which admin want to get is a public interface (which can be web site, college

    bulletin board, campus portal, a blog, a discussion forum, etc).

    As WebBean is supposed to generate this public view automatically, we need to

    design this interface also. So I have de signed one default html layout with all

    required CSS. In addition I have designed 5 other CSS design (themes) for this

    default layout. Admin can change look and feel of website by just selecting from a

    list of all 5 different themes.

    What public view should include?

    o This is the first question which came in my mind. So to answer it, I

    had gone through many web sites, and Google bloggers, and forum

    sites.

    o After doing complete analysis on this, I got the following answer.

    o Public view should include:

    Titl e of Website

    Subtitle along with Title (though subtitle can be optional )

    Menu Section Which will link to main pages of site like

    about, contact, etc?

    Article Section almost all websites have number of articles

    or (sometime called as posts).

    Category Section Articles are categories into categories.

    And list of these categories must be shown on web site. I have

    also added count of articles in each category.

    Footer Section Footer Section is used to display some

    copyright content or sometime owner details of website.

    Though Admin is free to add anything in this footer, I have

    added copyright details by default.

    Components This is new feature added in WebBean. I had

    added many different positions (about 12 positions) which can

    be easily used by admin to add his custom content, like add

  • WebBean Project Report P a g e | 9

    CSE Department, Guru Nanak Dev University, Regional Campus, Gurdaspur.

    banners, social plug - ins, external links, custom html,

    jumbotron, etc.

    Below is the screen shot of default layout of public view with all

    different content sections:

  • WebBean Project Report P a g e | 10

    CSE Department, Guru Nanak Dev University, Regional Campus, Gurdaspur.

    What should be the default design of publi c view?

    o

    features in public page because this is the page which admin will

    create using WebBean. So it all depends on him how he will design it. o But to provide default design, I have used white background with

    simple link colors and paragraph colors. I have used Bootstrap default

    css styles to provide various css properties to element in this public

    page. o In additional themes which are provided in WebBean, I have only

    changes values of those css properties. o Here are the other themes of default public page:

  • WebBean Project Report P a g e | 11

    CSE Department, Guru Nanak Dev University, Regional Campus, Gurdaspur.

    Admin View

    Admin view is the main interface with which admin or other users (assigned by

    admin) will interact or will work.

    Admin will open this interface by opening its link in browser and will use it to

    manage content on the site.

    What an admin should be able to do on this interface (which is

    actually called as WebBean CMS)?

    o First he should be able to change site configurations like:

    Title

    Subtitle

    Theme

    Description (this may include meta tags, and SEO tags )

    And footer.

    o Now admin should be able to add more users to take care of his

    project site.

    o Menus:

    Menus are dynamic.

    page.

    Demo c

    Admin can create as many menus he wants.

    Each menu has some content also.

    o Article and Categories:

    I have added these two modules in different positions.

    But both are related to each other.

    When you ad d new article you have to choose one category

    from existing list.

    If you want new category, you need to first create it.

    Article has further many modules to add title, heading, body,

    author, date, etc.

    o Components:

    In this module admin can add new component in any position of

    default page.

    In Component, name is used to refer the component only and is

    not displayed anywhere.

    Content inside component can be any standard html code with

    iframe or javascript code also.

    Two or more component can be added at same p osition, and in

    this case recent component will be displayed on top.

  • WebBean Project Report P a g e | 12

    CSE Department, Guru Nanak Dev University, Regional Campus, Gurdaspur.

    What other features must be present in CMS?

    o Mobile Responsive

    As admin will need to add new article using his mobile, design

    of CMS should be mobile responsive. I have used bootstrap

    framework which make use of jquery and media queries to

    make your design mobile responsive.

    o WYSIWYG editor

    that admin has no knowledge of html. But to write good looking

    articles and compon ents, we need some css and html.

    Fortunately, I have used tinymce editor which is WYSIWYG

    editor, which format your article text automatically in back end.

    You just need to write and use buttons available to format your

    text.

    o Help Menu

    Though admin inte rface is very easy to use, still admin

    sometime need help to understand any particular feature.

    For that I have added help menu button in which user can

    search on any topic.

    Help page also highlights all positions available and also help in

    adding new posi tions.

    Help page will be modified in future to add more features.

    o Security and Authorization

    Well, admin link is complete separated from public pages. By

    area of WebBean. But you can easily

    anything.

    By changing this link, public users will never know how to go to

    admin page.

    Second WebBean each page is well authorized using session

    technique of Java Servlets. When user login, first its details are

    checked in database and then new session is created which will

    invalidate automatically after 30 minutes.

    o Search button

    Search button is always must in any kind of project. WebBean

    is provided with search facility which helps in searching

    database or any feature present in WebBean. Results of search

    button will be organized into categories like menu, article,

    component, user, features, database, etc .

    Note: Interface of admin area is designed in later phase and its screenshots are shown in next coming pages.

  • WebBean Project Report P a g e | 13

    CSE Department, Guru Nanak Dev University, Regional Campus, Gurdaspur.

    Modal View Controller Architecture (MVC)

    WebBean CMS is based on MVC architecture. Here is how MVC based application

    works:

    Here is how WebBean works:

  • WebBean Project Report P a g e | 14

    CSE Department, Guru Nanak Dev University, Regional Campus, Gurdaspur.

    Development Environment

    Project development starts with this phase. First of all environment is set. All tools

    like compilers, editors, designer tools, etc are collected.

    Tools collected for WebBean development:

    Eclipse (Integrated Development Environment): Eclipse is the best

    light -weight and open source IDE for development of java, c/c++, php, etc

    projects.

    Tomcat 8 (Integrated with Eclipse): This helps in testing our

    application while we are developing it in debugging mode.

    JDK and JRE Version 1.8.0_40 : This is core java runtime. Though

    Servlets and jsp files run in tomcat container, but tomcat itself run in jvm. So

    java runtime and compiler tools are required.

    MySql Database Server: This is backend database management

    system used in my application. Though we can use Oracle easily.

    WebBean work well with both with oracle and mysql.

    XAMPP Stack: Xampp is a package produced by Apache supported by

    Bitnami. Xampp consiste of many packages like Apache server,

    PhpMyAdmin, MySql Server, etc.

    We will use two of its packages namely MySql and PhpMyAdmin.

    Laughing Bird Logo Creator and Adobe Photoshop: WebBean Logo

    and many other Icons are designed by me using these two applications.

    I have also use font -awesome - icons and glyph - icons in project which are

    provided by Bootstrap web framework.

    Prepros and Sublime Text Editor: These two applications are used

    to design WebBean Layout and editing Bootstrap default CSS files to

    produce new CSS themes.

    Stages in Development phase:

    1. User Interface Design

    2. Database Design

    3. Modal Classes

    4. Controller Classes

    5. View JSP files to implement design

  • WebBean Project Report P a g e | 15

    CSE Department, Guru Nanak Dev University, Regional Campus, Gurdaspur.

    Project Directory Setup

    Before going to development stages, first we should setup directory hierarchy for

    various files in project. The following setup is done in eclipse.

  • WebBean Project Report P a g e | 16

    CSE Department, Guru Nanak Dev University, Regional Campus, Gurdaspur.

    a. User Interface Design

    Interface is designed using Bootstrap framework. Bootstrap provide precompiled

    css files with jquery and some other javascript plug - ins. It also provide font -

    awesome - icons and glyph - icons which I have used for home button, and other such

    menus or buttons.

    I have compiled the default bootstrap theme again after making changes in it. As

    bootstrap source code is written in LESS language. So I have used Prepros Compiler

    to compile bootstrap source code to css and js files. Less language is very easy

    language to edit new custom designs and their properties.

    After doing above process(s), I got the following designs for various modules of

    WebBean:

    1. Login page

  • WebBean Project Report P a g e | 17

    CSE Department, Guru Nanak Dev University, Regional Campus, Gurdaspur.

    2. Home page

    3. Global Settings

  • WebBean Project Report P a g e | 18

    CSE Department, Guru Nanak Dev University, Regional Campus, Gurdaspur.

    4. Article Title

    5. Article other details like author name, date, category, etc.

  • WebBean Project Report P a g e | 19

    CSE Department, Guru Nanak Dev University, Regional Campus, Gurdaspur.

    6. Article Body editor ( with all Word Processor features)

    7. Article Manager ( used to edit, delete, or add new article)

  • WebBean Project Report P a g e | 20

    CSE Department, Guru Nanak Dev University, Regional Campus, Gurdaspur.

    Similar to previous screenshots there are number of other modules

    like, category manager, menus, users, components editors, help,

    system info, search page, etc.

    To view all modules we need to check in working application in

    tomcat.

  • WebBean Project Report P a g e | 21

    CSE Department, Guru Nanak Dev University, Regional Campus, Gurdaspur.

    b. Database Design

    Database design is the root base of every project. It should be simple, clear,

    robust, highly optimized and documented. I have designed my database using

    MySql Workbench tools.

    Following tables are designed in webbean_db schema.

    Users it hold curr ent user details and keep the session active.

    Setting it is used to store title, subtitle, theme, footer, and other global

    information

    Category it hold list of categories and article count in each category.

    Article it is used to store articles and th eir meta information like, title,

    body, author, date, category, etc.

    Menu it store menu names and their content.

    Component it store component name, content and its position on page.

    Test this table is only used while testing and developing. In actual

    deployment it is removed.