Developed an Android mobile application for campus walking route recommendation and sport recording in Java, using Android Studio.
Created user-friendly interfaces with fragment display, incorporating a panoramic map of CUHK campus using Google Map API and interactive map markers for route guidance.
Developed route recommendation and navigation feature, allowing user to choose start and end points among frequently visited locations on campus
Implemented Dijkstra algorithm to optimize route recommendations.
Developed a walking recorder feature, utilizing GPS and background services to track users' sports activities, recording location, time, and distance traveled.
Developed a walking history feature, enabling users to review and analyze past sports records, including detailed maps with start and end points.
Technologies
JavaAndroid StudioGoogle Map APIMobile App Development
Online Book Ordering System
Group Project | Febuary - April 2023
Built an online ordering system for books in Java, using JDBC with Oracle database.
Designed and constructed E-R diagrams and relational schemas.
Created SQL commands for book search, order placement, order updates, and order history queries.
Technologies
JavaSQLOracle Database
Space Travel Game
Group Project | November - December 2022
Implemented a Space Travel Game based on OpenGL and C++ from scratch, including object rendering, transformation, lighting, texture mapping, skybox, shader, and interaction.
Technologies
OpenGLC++Computer Graphics
The Prediction of Summer Olympics Medal Counts
Individual Project | October - December 2022
Predicted countries' summer Olympics medal counts based on different fields of data
Applied various data processing and analysis techniques, such as correlation analysis, to analyze possible factors contributing to the summer Olympics medal counts
Implemented Linear Regression, Decision Tree, and Neural Network Classifiers to predict 2020 Tokyo Olympic medal counts, and analyzed their performances
Technologies
PythonData MiningMachine Learning
Yinsh Game AI Agent
Group Project | April - May 2022
Implemented an autonomous agent that can play and compete in a tournament for the game Yinsh
Applied various AI techniques, including Monte Carlo Tree Search, Alpha-beta Pruning Minimax, A Star, and Greedy BFS
Designed heuristic functions and reward shaping on nodes expansion to improve the performance of the agent
Analyzed design decisions, strengths and weaknesses of different techniques, challenges, and improvements
Technologies
PythonMTCSReinforcement Learning
"Oh! Heaven" Game
Group Project | May 2022
Applied software engineering knowledge, design patterns and principles (e.g., Strategy Factory, Singleton, Information Expert, Polymorphism, and Observer) to refactor and extend the system of the game to support new behaviours
Ploted the UML design class diagram to reflect the actual implementation of the changed system, and the design sequence diagram to demonstrate how the software objects collaborated
Technologies
JavaGRASP patternsGoF PatternsSoftware Modelling and Designdraw.io
Twitter Sentiment Prediction
Group Project | April - May 2022
Developed a Twitter sentiment classifier based on the given dataset
Implemented different machine learning methods, including Naïve Bayes, Logistic Regression, SVM, and Stacking Model, compared and analyzed their performances, advantages, and limitations on this task
Implemented different data preprocessing techniques (e.g., stop-words removal, tweet tokenization, stemming, and lemmatization), feature extractors (e.g., Bag-of-Words, TFIDF, unigrams, and bigrams), and evaluation metrics; analyzed the critical factors and reasons for improving model performance
Ranked 8th out of 343 groups in the Kaggle prediction competition of the course
Technologies
PythonMachine LearningNLP
"Snakes and Ladders on a Plane" Game
Group Project | April 2022
Applied software engineering knowledge, design patterns and principles to refactor and extend the system of the game to support new behaviours
Ploted the domain class diagram, design class diagram to reflect the actual implementation of the changed system, and the design sequence diagram to demonstrate how the software objects collaborated
Technologies
JavaGRASP patternsGoF PatternsSoftware Modelling and Designdraw.io
Diabetes-Home: A Diabetes Management Web Application
Group Project | March - May 2022
Developed a web application for patient-clinician data management and deployed the website on Heroku/Render. (https://diabetes-home.onrender.com/)
Designed and implemented frontend UX/UI using Adobe XD, Handlebars, CSS, and JavaScript with responsive design.
Implemented authentication and authorization using Passport.js and role-based redirection upon login.
Developed the backend using Node.js and Express.js, and managed data with MongoDB.
Implemented REST APIs for patients and health records management, including searching and filtering.
Technologies
Adobe XDUX/UIHTML/CSSJavaScriptHandleBars.jsNode.jsExpress.jsMongoDBHerokuPassport.jsREST API
MLFQ Scheduler
Individual Project | December 2021
Implemented a Multilevel Feedback Queue (MLFQ) scheduler in C according to the given scheduling rules, process information and queue information based on the framework.
The scheduler passed all the test cases and got full marks in the evaluation.
Technologies
CLinuxOperation System
Research on Daily Activities and Sleep Quality
Group Project | April 2021
Proposed the idea and methodologies for investigating the relationships between college students’ daily activities and sleep quality.
Collected, plotted, and analyzed the raw data from online questionnaires. Fitted the data with different distributions and gave estimations with a 95% confidence interval.
Exploited conditional possibilities to indicate the most suitable activity time intervals to improve the sleep quality.
Self-studied multivariate normal distribution and tried to apply it on our data set.
Finished a 21-page report together with other group members and gave a presentation to the class.
Technologies
StatisticsLaTeX
A Smart Walking Stick: “Eye-Cane”
Group Project, Group Leader | April 2021
Proposed the idea of an innovation: an intelligent walking stick for the visually impaired to travel, designed its appearance and general functions.
Investigated the working principles and technical specifications of the technologies used in our innovation.
Designed the prototype of the product and proposed the project development plan including the project schedule with a Gantt Chart, required resources and the budget plan.
Finished a 21-page technical specification and a 17-page product proposal together with other group members, and gave presentations of our product.
Technologies
Adobe Illustrator
Surveillance vs. Privacy
Group Project | March 2021
Studied on the digital privacy and the role of surveillance.
Investigated on how electronic products monitor people's behaviors, possible consequences of privacy disclosure, and explored possible ways to prevent privacy from revealing.
Finished a report article together with other group members and submitted to the department student forum.
Technologies
Internet Privacy
Reversi Game
Individual Project | December 2020
Built a board game Reversi using Java based on the GUI and basic frame, implemented functions to judge valid moves and the end of the game.
Implemented an extension to the basic game to allow the user to load a game board from a file using inheritance, and save current game board and current player setting on window closing.
Technologies
Java
Data Analysis and Fraudulent Detection via Benford's Law
Group Project | December 2020
collected and analyzed a variety of data in different fields from professional statistical websites, classify the data types into types that may or may not obey Benford's law, and summary the possible conditions of Benford's law.
Collected real-world data from social media platforms, votes and stock market using Python, and analyzed them by different verification methods to find out the possible data fraudulent according to Benford's Law.
Finished a 48-page report (including forms and charts) together with other group members and gave a presentation to the class.
Technologies
PythonProbabilityLaTeX
Conway's Game of Life and Turing-completeness
Group Project | April 2020
Implemented Conway's Game of Life in Python.
Reproduced the proof of Turing-completeness of Conway's Game of Life using equivalent conditions and logical gates.
Studied the patterns, features, and Turing-completeness of different cellular automatons such as Rule 110, collected and studied more Turing-complete Examples such as Minesweeper.
Gave oral presentations to the class. Here is the poster designed and made by me.
Technologies
PythonLinear AlgebraAdobe Illustrator
Checkers AI Player Program
Individual Project | November 2019
Developed a checkers program in C language that supports both human-human players mode and human-AI players mode
Implemented the Alpha-beta pruning algorithm to allow AI players to execute the best strategy in 5 seconds via lab PC
Ranked 2nd out of 45 students in the AI player tournament of the course.