Introduction
Highlights
Project
Write-ups
Certificates
Other Activities

DuCloud

Description: My research team at AICloudNetX Lab - who also are my classmates needed a better way to share documents, as sending research or lecture files individually was inefficient. I built DuCloud — a personal cloud system on my old laptop to manage shared files. It’s more convenient for small teams than Google Drive or OneDrive, and helped me learn how cloud storage works.

Type: Cloud

Tool: Tailscale

Key challenges:

  • First time build something with Linux
  • Old laptop have many problems with screen and keyboard
  • Have to test many other ways: configure static IP by log in router, Cloudflare tunnel, Funnel,... but these ways is not suitable

Solutions:

  • Linux Ubuntu is not complex so much so I can learn easily
  • Connect to outside keyboard and screen
  • Choose use Tailscale because: I cannot log in my router, use Cloudflare tunnel have to pay something like other cloud (Google, OneDrive), Funnel cannot download file and lack of many featrues

Key learning:

  • Fundamentally understand how cloud platforms work
  • Many way to build a small cloud
  • User access hierarchy and authorization

Details:

All devices need to download Tailscale to connect the cloud. This can be turn on and turn off whenever user want

  • Step 1: At laptop use as server, download FileBrowser and share the port 8080
  • Step 2: Make user and run. After this step, get the username and password
  • Step 3: Then open with Tailscale
  • Step 4: Expose port for other devices

AimGame

Description: A 2D game developed as a final project for a university course, using free assets from "itch.io" and built with SDL2 in C++.

Type: Game develop

Language: C++ with SDL2

Key challenges:

  • First time learn how to build a game
  • Lack of RAM - memory overload

Solutions:

  • Use ChatGPT, Copilot to find available functions. Use Youtube to fing how to build a game and deploy it
  • Replace old algorithm of drawing characters, image (render each time call the drawing functions) by more optimal algorithm (call functions before main loop)

Key learning:

  • Programming and debug skills
  • Modulize and optimize a product
  • Learn how to use Git, Github, Gitbash

Detail:

Personal Portfolio

Description: A personal portfolio website fully self-designed and deployed, including custom domain registration, hosting setup, and manual web development. This project also serves as a way to reflect on my university journey and summarize what I have learned.

Purpose: Self learning

Type: Web develop

Language: Javascript with HTML

Key learning:

  • Learning how to build a web
  • Apply AI to projects and how to use AI effectively without being dependent

Detail: