Thang Pham's Showcase
SHOWCASE: Social Networking - New Project

After the final release of social network Bridgeye, I immediately started on a new social networking project. Unlike Bridgeye, the main focus of the new social network is to allow the user to express about themselves as much as possible. Therefore, for the beta release, we focused primary on the profile pages than anything else. After two weeks, we are able to launch the beta release of this new social network. The project is once again built on Java EE 6 framework with GlassFish 3.1 and PrimeFaces 2.2.1. The source codes is much more loosely coupled. The EJB is much lighter with the implementation of generic CRUD. Unit Testing was done with JUnit, Mockito and EJB Embedded API.  

Below are screenshots of the new social network:

                                                    Home Screen

                                                 Registration Screen

                                                     Profile Screen

                                                  Personal Feeds

                                               Edit Profile Screen

                                                 Notification Screen

                                                   Friend List

SHOWCASE: Social Network Site - Bridgeye - Final Release

After two weeks of taking feedbacks from the users, we are glad to announce the final release of Bridgeye. If you are unfamiliar with previous versions of Bridgeye, please visit my previous blog posts to see specific functionalities and framework technologies that are being used to develop Bridgeye. The release features many enhancements of the previous implementations, and significant amount of bugs fixes. Here is the overview of notable changes:

1. Bridgeye’s look is too dark, and we are unhappy about it. As a result, we have design a new theme for Bridgeye and I think it look great. (Please check out screenshots of Bridgeye’s new theme)

                                                      Login Screen

Main page contain: a. Institutions Times displays all activities around Wake Forest University. b. Friend Times displays all activities from your friends. This functionality is the combination of Facebook and Twitter.

                                                Sponsors main page

2. Add an Expires and Cache Control Header. The Expires prevent the browser from re-request the same static content (JS/CSS/images/etc) every, which is a waste of available time, connections and bandwidth. About the cache-control header for dynamic content, the general practice is that we just want to avoid caching dynamic content, especially the pages containing forms.

3. Use query with a timestamp to force re-request. The Expires header is useful, but with a too far-future Expire header, the client wont check for any updates on the static resources anymore until the expire date has passed. A common practice is then to append an unique query string to the URL of the static content denoting the timestamp of the last file modification or server startup time.

4. Allow sponsors to create their own images gallery, and edit their business information.

5. Rating system is implemented allowing students to rate businesses. 

Showcase: Social Network Site - Bridgeye - Version 2 


Finally it is here, the second version of Feel free to check out the latest version of but if you are unfamiliar with version 1, my previous blog posts will layout the specific functionalities.

Bridgeye’s structure has already been established from the past few months of development so the second track of development mainly revolved around the further shaping of Bridgeye to satisfy the requests of our alpha users. One major necessity we’ve analyzed was the importance of individual privacy, security and control. Likewise, as of today, we have successfully implemented privacy settings, not only for profiles but for networks as well. Along with allowing users to choose who they want their posts to visible to, we’ve created two distinct feeds by combining the structure of Facebook (social network) and Twitter (micro-blog). We were very happy with the results and the amount of time we took to finish.

                                                     Login Page 

We now have a “Institution Times” which basically accumulates all action around Wake Forest University. Institution Times is viewable by all Wake Forest students who register to our site. Anything students post, unless specify “private to friends only” will appear on Institution Times. We also have “Friend Times” which show you what your friends are doing. User who are not your friend will not be able to see the content of Friend Times.


                                                    Profile Page

                                                 Network Page

In regards to profile and networks, the privacy functions now provide all users the option to send individual “Private Messages” or Mass Email all members within that respective network via Bridgeye’s platform. This was largely initiated by the decision to address engagement amongst users. One way to manage a richer and more integrated communication experience, we implemented “Bridgeye Messenger” actively links the activity within Bridgeye with the individual’s email inbox including messages on profile feeds, private messages, comments on a certain post or update from network administrators. However, the most notable difference between solely using the email is that users now can engage in multi-way conversations while working on projects, making decisions or updating members.

                                                 Uploading E-Flyer

Another function we’ve successfully created is the ability to post E-Flyers. We interchangeably refer it as electronic-flyers and eco-friendly flyers because it is a healthy alternative to posting physical flyers around campus. As well, it is convenient, centralized and quick to post. Basically, users can upload an image of their flyer through Bridgeye, give it a desired description, then simply press post. Whether the image is private to only members or visible to the entire student body, the E-Flyers are a powerful yet simple alternative to sharing events, advertising groups and engaging activity.

          Edit Profile Page: Here we let the user see how their thumbnail look like

If the user unhappy with how their thumbnail look, we allow them to crop their profile image to create a thumbnail the way they want. 

                                        TextBook Trade System

We also allow users to trade their old textbook at 

Showcase: Social Network Site

Social Network Site:

Developed a social network site using Java EE 6 framework. The system utilizes JavaServer Faces(JSF 2.0) to develop the presentation layer, Enterprise JavaBean (EJB 3.1) to handle business logic, Java Persistence API (JPA 2.0) for object relational mapping to the database, PrimeFaces framework to support Ajax, and enhanced user graphical interface. 

               Login Page: Login system implemented SHA-256 algorithm   

Central Feed Page: All feeds will show up here. Each feed is subjected to a rating system. When a user up-vote a feed, the feed itself will jump to the top.

Profile Page: Each user has their own profile page where they can display their own personal information. 

      TextBook System: A system where students can trade their books 

User/Group/Event Search: When a user search for a keyword, results will be shown in three categories: People, Network and Event. 

TextBook Search: When a user search for book, results will be shown in three categories: Books By Title, Books By Author, Books By ISBN

Showcase: Document Management System

Document Management System

Developed a web application to manage AutoCAD drawings in a multi-user networked environment using Java EE 6 framework. The application will allow engineers to checkout AutoCAD drawings on a first come first serve basis; to download the desired drawings onto their individual workstation; and to upload the revised drawings back to the server. The application will provide security to prevent unauthorized access. The application will mark checked-out files as read only to prevent two users from simultaneously modifying the same drawing. The application will provide two levels of access: “Administrator” and “Designer”.

The system utilizes JavaServer Faces(JSF 2.0) to develop the presentation layer, Enterprise JavaBean (EJB 3.1) to handle business logic, Java Persistence API (JPA 2.0) for object relational mapping to the database, PrimeFaces framework to support Ajax, and enhanced user graphical interface. Fine-grained Access Control List (ACL) and Role-Based Access Control (RBAC) are implemented for resources control. 

              Login Page: Login system implemented SHA-256 algorithm

     Main Page: Display List all drawings that user “admin” currently allow to see. 

Drawing Detail Page: Display the drawing’s detail information, and a complete list of revision history of this drawing. User is allowed to upload drawings here. 


Main Page: If user’s role is an ADMINISTRATOR, he/she can see the user list, and have the permission to edit individual user. 


User Detail Page: Administrator has the capability to restrict a particular resource or grant a particular resource to a user. This page also display information about the projects that the current user manages, and the drawings that the current user checks out.