Projects and works
BusETA (Android App) - 2015 August
An Android application to check estimated time of arrival of bus routes in Hong Kong using official data.
Using Java, Android Libraries, XML.
Link: Website, Play Store, GitHub
Chrome extensions - Since 2011
ftpSync (Final Year Project) - 2015 February to May
The aim of this project is to build a DIY cloud solution, based on an FTPS server controlled by the user. Overall I believe the project to be a success as I achieved most of the requirements set at the beginning of the project. I developed an application for Android devices using Java and one for Mac OS X platform using Python. The application able to synchronise selected directories with ftps server. Even though there are many uncertain in my initial plan, I ultimate decided things I need to work on. Although the project has been a challenge, it has also been entertained to learn about new aspects. As a result of this project, I learnt a lot throughout the process; I gained handon experiences on programming in Android platform, a wider knowledge of methods Java provided, the use of tools like Android Studio and PyCharm, and problems and solutions to remote synchronization issues. (abstract from the final report) Grade 68%.
Using Java, Android Libraries, XML, Python.
Link: Final Report, GitHub (Android version)
Java RMI Whiteboard - 2015 March
In this mini-project I wrote the client and server code for a Java RMI programme that implements a shared white‐board for drawing simple graphical objects, such as circles, triangles and squares. The programme allow multiple clients to add new graphical objects to the shared white-board, and to obtain from the server a list of the current set of graphical objects on the white-board. This list can then be used to allow a client to display the current white-board.
Using Java, Swing, Remote.
Visual Aid System - 2014 February to May
The objective of this project is to develop a prototype that uses video to sound technology which will be tested within a controlled environment. The system is written in C and using Kinect SDK. This is the first time I experience on both C and Kinect programming. My team developed an object tracking system using specific colour cards and my part of the work is to develop the depth tracking system to alert when user approaching to a large obstacle like the wall. The project did not have a great success, although we did implement basic features that works. This project let me get experienced on topics like project management, working in a group of 8 for a year and coding skills. Grade 64%.
Using C and Kinect SDK.
Video shows the object tracking, guidance, voice recognition and text to speech software integrated in to a working system, allowing the user to locate a desired object.
- Video shows the depth tracking system, which notifies the user if they are approaching any large object such as a wall. This is achieved by the increase in pitch and frequency of sound notifying the user.
Parallel Programming - 2014 December
There are three pieces of parallel programming assignments including OpenMP, MPI and CUDA. The task for each of these assignments are similar, which is to modify a program that do blurring on an image to a parallel program that run using OpenMP, run across network computers using MPI with shift communication, and run under GeForce GPU in Linux machines using CUDA. These assignments give me a hands on experience to these three parallel programming and they show a huge improvement on performance when running for-loop in parallel compare to serial.
Using C++, OpenMP, MPI and CUDA.
MATLAB Media Browser - 2014 April
A basic but functional media browser and editor program written in MATLAB. Features both image viewer and audio player with image and auto processing using MATLAB functions, like cropping images, editing contrast, resize, flip, rotate, few filters and tone editing. In addition, I have implemented a slideshow function with the ability to set number of seconds to show next image with a timer. Grade 98%.
Link: Short Report
Runtime Analysis of Insertion Sort and Counting Sort - 2013
A study on run time performance of two simple sorting algorithms. The insertion sort and counting sort will be analysed to show how they go with different status and size of integer array set. Grade 85%.
Spending Tracker Prototype - 2013 November
The objective of this assignment is to understand HCI. It lets me experiences with Use cases, State Transition Diagrams, Interface Prototyping, and evaluate the usability of the interface with severity rating. This exercise reminds to take care of user experiences when developing software design. Grade 75%.
Multiple Choices Testing System - 2013
This project is to produce an aptitude test by a team of 5. It is written in Python with tkinter, PIL and shelve modules. The system include login mechanism with 3 different user types, student, lecturer and administrator. Student account is to take test and time limit and test record will be saved using shelve (python database module). Lecturer to view test results with the ability to search student, sorting results and save results to a csv file. Admin account for adding and editing questions, and adding users. Grade 69%.
Using Python with tkinter, PIL and shelve modules.
Simple Blog System - 2012 November
The objective of this assignment is to create a blog system without any external library and all codes need to be written from scratch. The system written in PHP with the use of MySQL as database. This project give an insight on proper database design. The blog system feature users login with permission control, posting blog posts, leaving comments, generating RSS feed, and inserting external videos, links, images and YouTube videos. The site applied AJAX to leave comments, add or edit articles and users and some tables. Grade 98%.
Using PHP, MySQL, AJAX, HTML5, CSS.
Links: Short Report
Python halloween theme Game - 2012 October
This project worked as a group of 5 and the game is written in Python by using pygame module, it is a game for players to control the elevator and get all the scientist to a second floor without killed by zombies. This is the very first time that I experience with Python. Grade 89.3%.
Using Python with pygame module.
Phone book Directory - 2009 December
A basic phonebook program written in Pascal that run on Windows system. Features including displaying, adding, editing, deleting, searching and sorting contact entries. The program itself is simple, but it meets all requirement of the assignment. The assignment included a report that indicate all steps of the program, showing ideas on flowcharts, testing the program with test cases and explaining every lines of code and functions. Grade A.
Using Pascal and Report Skills.