Wednesday, 16 May 2018

Internship


Objective
Although they place me as a user experience designer (UX), everyday I will be in change with different type of task.My task often involving in to maintenance a website. Beside that handing the data generate requested from Bank Rakyat. I also handling helping with the MKM staging website.
Task
  1. BRDA
  2. Bank Rakyat Maintenance
  3. Maintenance of Maktab Koperasi Malaysia (MKM)
  4. Maintenance Tabung Haji Website
  5. Pocket Pixel Website
Bank Rakyat Data Analysis
Description
BRDA is involving the Bantuan Rakyat 1 Malaysia(BR1M).BRDA task is divided into a 3 stages
  • Daily generate data
  • Weekly generate data
  • Ad Hoc
Each task required a different method of solving due to different type of input type.

In daily generate BRDA is involving how to retrieve the registered user. The BR1M user register submit form via to ​ https://www.jotform.com/​ (jotform). The online register (https://ebr1m.hasil.gov.my/) is link with jotform form.

In the back-end will receive a raw data file in .csv (​ Comma-separated values)​ were each value is divided by a comma.

My task is to process the data, converting the csv format into .txt file requested by Bank Rakyat checking the rather the register IC is valid and non duplicate. The raw value also required to be in proper format, interms of spacing between values. This process required to be done everyday and submission before 5 pm. The data submission is around 3k to 5k per day.

Weekly generate is usually requested weekly data required to find a registered user email to notify their validation for the registration. The Bank Rakyat will transfer us a list of IC, my task is to find emails based on IC list.

Ad Hoc process is when a special case example missing IC or anomaly data. Usually cases from the call center or data center, our help is to provide help to them.
Implementation
For the data generate, I suggested to them using a java instead of php. The reason behind this because the php is using more cache mero since it is link with the database and the php language show output of every result of line, thus making the program taking more time.

public class AdHoc {
 public static void main(String[] args) {
  AdHoc prog = new AdHoc();
  Vector  ICVector = new Vector();
  String file1_listIC = "C://Users//Nabeel//Desktop//Aduan 28052017.txt";
  String file2_Directory = "C://Users//Nabeel//Desktop//output adhoc 28052017 part1.TXT";
  prog.readICList(file1_listIC,ICVector);
  System.out.println("==============");
  System.out.println(" Result ");
  System.out.println("==============");
  prog.readCompareFile(file2_Directory, ICVector);
  System.out.println("==============");
  System.out.println(" Leftover ");
  System.out.println("==============");
  for (int i = 0; i < ICVector.size(); i++){
   System.out.println(ICVector.get(i));
  }
 }

 public void readICList(String fileName,Vector ICList){
  try(BufferedReader br = new BufferedReader(new FileReader(fileName))) {
   for(String line; (line = br.readLine()) != null; ) {
    String words = line.replace("\\s+"," ");
    String[] arr = words.split(" ");
    
    for (int i = 0; i < arr.length; i++){
     if (i == 0){
      ICList.add(arr[i]);
     }
    }
   }
  }catch (FileNotFoundException ex) {
   System.out.println(fileName + "unable to open");
  } catch (IOException ex) {
   System.out.println("Error in input and output");
  }
 }

 public void readCompareFile (String fileName,Vector ICList){
  try(BufferedReader br = new BufferedReader(new FileReader(fileName))) {
   for(String line; (line = br.readLine()) != null; ) {
    breakline(line,ICList);
   }
  }catch (FileNotFoundException ex) {
   System.out.println(fileName + "unable to open");
  } catch (IOException ex) {
   System.out.println("Error in input and output");
  }
 }
 public void breakline(String line,Vector ICList){
  String words = line.replaceAll("\\s+"," ");
  String[] arr = words.split(" ");
  String IC = arr[0].substring(16);
  for (int i = 0; i < ICList.size(); i++){
   if(IC.contains(ICList.get(i))){
    String newLine = line.substring(952);
    String word = newLine.replaceAll("\\s+"," ");

    String[] arr2 = word.split(" ");
    String email = arr2[0];
    System.out.println(IC + " " + email);
    System.out.println(line);
    ICList.remove(i);
   }
  }
 }
}
The java program is required a less time because does not link with any database. Beside that does not show result for every line. The program work by save all ic in a vector, then the program will read the raw data and compare with a vector that contain IC. If IC is found then the IC will be removed from the vector and will print the single row of raw data. By doing this the vector will become smaller thus making search time much smaller.
Bank Rakyat Maintenance
In every website maintenance is depend on what type of content manager system (CMS). Bank Rakyat is using a Liferay CMS. Liferay is a enterprise application. It does provide support and regular update.

The maintenance is requested from the Bank Rakyat to updating the content in their website (​ http://www.bankrakyat.com.my​ ). Such as adding or removing ads, picture or information.

The Bank Rakyat Maintenance is divided into two state:
  • Staging server
  • Live website
The purpose of staging is to create a temporary representative/prototype base of the request. This allow to avoid any error on the live website




Maintenance of Maktab Koperasi Malaysia (MKM)
The maintenance for MKM is similar with Bank Rakyat website, however MKM is built with Joomla as the CMS. The task also divided into two part

  • Updating the current MKM website
  • Transfer the current content MKM into new MKM website
  • Helping finding plugin for the new MKM
The current MKM website (​ http://www.mkm.edu.my/index.php/my/​ ) does not created by the PocketPixel. It have a lot of shortcoming, example in front-end the website have a problem is switching language, the website it also have a bad web design. Example the page layout is very messy and have a bad eye navigation. The PocketPixel is given the task to maintain the current website and transfer all content into the new website.

Example of maintenance is upload a new keratan akhbar, pengunguman, sebut harga (rss) and articles. Beside uploading, my task also to remove old post and do translation for Bahasa Malaysia for certain articles

For the task transferring content, basically ripping from the old website to the new website. Content such as staff directory, picture gallery, video gallery, article , pengunguman,keratan akhbar and sebut harga However required update a certain .jpg file measurement to make sure it match with the new template.

On the new website, I require to find a suitable plugin for the new website. They given a task to find video gallery, picture gallery and staff directory. Example of the plugin required :
  1. Album
  2. Sorting by category or tag
  3. Multiupload
  4. Most up to date - currently supported
  5. Lightweight

 
Tabung haji
For the Tabung Haji website (http://www.tabunghaji.gov.my/), I required to revamp the whole navigation, it been request by the Tabung Haji to make the sub content into an accordion. The original website is using a custom made CMS and a custom made markup language, therefore I require change into a HTML language.

I required to check the documentation and the css file to make sure the html does not disrupted the template page.



Problem encounter
The main problem that I encounter is I have a small knowledge on how handling and creating web design. Example a few term I unable to understand or few point I may miss out due to it. I require learn in the moment while doing my task. I also required sharpen my PHP and javascript language to handle the back end procedure.

Beside that in web designing, I was not teach on how create a properly web site in terms of playing with the color, navigation and transition. This cause problem in discussing the Pocket Pixel website design.
Way to Improve
I have been suggested to go around the internet on to see how to current website is build around. Currently many website is more interested on create that very minimal website. This is due to able to avoid unnecessary information dump to the user

For the back end programming issue I required to learn basic first. By understanding a basic I will able handle a more complicated issue. They suggested to me use a TreeHouse on how to learn creating a basic website.

Training Analysis Skill develop
  • Basic backend-programmer process
  • Basic frontend-programmer process
  • Basic CSS and PHP function
  • Javascript
  • CMS
    • I learn on how to install, tested Liferay.Create a page and post
    • Using a wordpress in terms of create a page, content/articles and setting
    • Using a joomla in terms of create a page, content/articles and setting
    • How to install plugin
    • How to choose plugin that is suitable with the website
    • Different between wordpress, drupal and joomla
Suitability, Strengths, Weaknesses
In my opinion I suitable in backend process, where handling how to create the template page. I found it way interesting than front end process.
My biggest weakness is in designing a website. I unable to capture or understand on which color,font,text size and medium to be use
Application of subject knowledge gained in the university to the industrial environment
The following is the subject that gain at university that apply during the internship
  1. Programming fundamental
  2. Website Application
  3. Software requirement
Recommendation to others
Yes, I will recommend to other to involve within this field even though I have a basic knowledge in web designing.
I also recommend other student to taking internship with Pocket Pixel, they have a good working environment and the staff is very friendly.
Conclusion
In conclusion my internship is very challenging. The task given often required finish within a day period. I required to learn and apply my new found knowledge as soon as possible. It literally feeled like you either can “swim or sink” in any moment. However I feel very motivated to learn something new especially within the field I not recognized. The web design industry is very huge however everyone able to apply if have a proper knowledge to be use.