2024-03-27

MLSG Website Project

Project Overview

In a recent endeavor, I had the privilege of architecting and implementing a comprehensive solution aimed at simplifying game server rental and bill management for the overseas Chinese community. The project involved the integration and customization of several technologies, including WHMCS, HTML, CSS, Stripe, and the Pterodactyl panel, to deliver a fully automated system. This system is meticulously designed to alleviate the challenges associated with game server setup and customization, notably modding and adjusting game values.
Home Page

Design and Development

Leveraging the Hostie template, I meticulously customized HTML pages to resonate with the aesthetic and functional expectations of our target audience. This customization extended to WHMCS pages, ensuring a cohesive and intuitive user experience. Every design decision was taken with the user in mind, aiming to provide premium servers that are not only high in quality but also accessible in their native language.

Integration and Automation

One of the cornerstone features of this project was the seamless integration of Stripe for LINK payment, including Apple Pay. This integration underscores our commitment to offering convenient and secure payment options, catering to the preferences of our users. Furthermore, the incorporation of the Pterodactyl panel into our system marked a significant advancement in our capability to offer fully automated game server rentals.
Automation

Localization and Accessibility

Recognizing the importance of cultural and linguistic accessibility, all HTML and WHMCS pages were localized. This initiative was undertaken to ensure that our services are not just available but also approachable and easy to use for the overseas Chinese community. The goal was to provide a service that feels familiar, thereby reducing any potential barriers to accessing premium game servers.

Impact and Reflection

This project stands as a testament to the power of technology in bridging gaps and bringing communities closer. Through this initiative, we’ve been able to significantly ease the process of game server setup and customization for our users, offering them more time to enjoy their gaming experiences without the hassle of technical complexities.

For more insights into this project, I invite you to visit the website: MLSG Website. Here, you’ll find a detailed showcase of our work, reflecting our commitment to excellence and our continuous journey towards making gaming

2023-10-15

Reception Form and Name Card Printing

I’m thrilled to unveil my latest project: a simple yet efficient site designed for event attendees to seamlessly input their information. Once entered, this data is stored in a database and can be immediately converted into a printable name card, providing instant and on-site utility.

Form Page

The primary objective behind the creation of this platform was to expedite the process of registration at events, without compromising on accuracy or efficiency. To ensure a smooth experience, the site also incorporates a login page exclusively for administrators, granting them the ability to view all registered participants at a glance.

Attendees Page

While the design currently serves as a temporary layout for this utility, I am committed to refining it further and introducing additional features to make it an even more invaluable on-site tool.

Name Card for Printing

For those intrigued by the technicalities, this site stands on the foundation of a client-server architecture. I leveraged the power of Nextjs for the frontend, while the backend was meticulously crafted using Expressjs. Data storage was managed through Mongoose, which offers an elegant way to work with MongoDB and Node.js.

If you’re an event organizer or simply a tech enthusiast, do give EventGo a visit!

Looking forward to more opportunities to create, innovate, and enhance in the future.

2023-07-15

Event Posting and Management Platform

Introduction

The Event Posting and Management Platform is an innovative startup project designed to revolutionize the way individuals and organizations plan and manage events. From selecting venues to hiring temporary staff, selling tickets, and coordinating with suppliers, this platform offers a comprehensive solution for all event-related needs.

Website: https://evtgo.com/

Note: UI/UX is done by contractors, but prototyping and coding are done by me.

GUI
(Above Prototype is designed by me)

GUI
GUI
(Detailed design by third party)

Features

Event Planning Tools

  • Venue Selection: Browse and rent the perfect place for your event.
  • Supplier Coordination: Find and collaborate with suppliers for catering, decorations, and more.
  • Equipment Rental: Rent necessary equipment such as sound systems, lighting, and furniture.
  • Staffing Solutions: Hire temporary staff for event support.
  • Ticketing System: Manage ticket sales and distribution seamlessly.
  • Collaborative Planning: Share and coordinate plans with team members or clients.

Technology Stack

Backend

  • ExpressJS and REST API: Powering the server-side logic and providing a robust API for client interaction.
  • Mongoose and MongoDB: Serving as the primary database for storing event details, user information, and more.
  • Redis: Utilized as a caching solution for frequently requested content, enhancing performance.
  • InfluxDB: Used as data logging micro service, trade off little accuracy to eliminate blocking and complex batching

User Management

  • Cognito: Managing user authentication, authorization, and profile handling. (Removed in later version)
  • Decoupled DB: For User Store and other regional data for best performance while maintain user data consistency

Hosting and Deployment

  • EC2: Hosting the application on Amazon’s Elastic Compute Cloud (EC2) for scalable and reliable performance.
  • S3: Leveraging Amazon S3 as an economical Content Delivery Network (CDN) solution.
  • Docker: Implementing containerization for consistent development, testing, and deployment through CI/CD pipelines.
  • Lambda: Utilizing AWS Lambda for serverless computing, enabling efficient scaling and cost optimization.

Future Expectation

The app is expected to use the user generated data to train AI and perform Interest based recommendation on events and ads, and provide events planning AI for faster planning and suitable options and solutions.

Conclusion

The Event Posting and Management Platform is a comprehensive solution that simplifies the complex process of event planning. By integrating cutting-edge technologies and providing user-friendly tools, it offers a one-stop solution for event organizers, suppliers, and attendees. Explore the platform and transform the way you plan and execute events.

2023-05-02

AI Garbage Sorting Using Object Detection CNN

Title: CNN Thunderdome Showdown: Benchmarking YOLOv7, VGG-16, and GoogleNet for Recyclables Image Classification Accuracy

Date: April 8, 2023
Authors: Tom Sun, Dexuan Ren, Deepta Adhikary
University: York University

Abstract

The study focuses on image classification for recyclable sorting and classification. Three models were tested: YOLOv7, VGG-16, and GoogleNet. GoogleNet was found to be the most effective with an accuracy rate of 94% and faster training speed. The findings can be applied to reduce costs in recycling plants and create garbage collecting mini robots.

Introduction

The project explores the challenges of image classification and how transfer learning using pre-trained models like CNNs can overcome these challenges. The study focuses on recyclables and assumes that recycling plants have techniques to isolate each piece of recyclable and capture images.

Methodology

  • Models Used: YOLOv7, VGG-16, and GoogleNet.
  • Dataset: Kaggle dataset for recyclables.
  • Design & Training Pipeline: Pre-trained VGG-16 and GoogleNet models implemented in PyTorch. YOLOv7 used for object detection. Images processed using RoboFlow platform.
  • Model Training Changes for YOLOv7: Background removal and manual relabeling.

Results

  • Baseline Accuracy: 70% (average from Kaggle models), Human accuracy at 99%.
  • Scores:
    • YOLOv7: 70%
    • VGG-16: 88%
    • GoogleNet: 94%
  • Observations: Different models have strengths and weaknesses depending on the specific materials or objects being classified.

Discussion

  • Strengths and Limitations: YOLOv7 required significant overhead, while VGG-16 and GoogleNet were easier to train. GoogleNet was concluded as the better model for this task.
  • Future Directions: Further testing on various datasets and exploring other areas like facial or shape recognition.
  • Peer Evaluation: Feedback received and changes made to improve the report.

Updated YOLO V8 and latest model

The project has been updated to use the latest YOLO V8, which enhances the performance and efficiency of the models. You can find more details about YOLO V8 model here.

GUI
GUI

Conclusion

The study provides a foundation for automated garbage sorting, potentially reducing costs and human effort in waste management. GoogleNet was identified as the most suitable model for this task, with potential applications in recycling industries and the creation of waste-collecting robots.

Full Report

2023-04-15

HelpDesk WebApp using WebSocket

Tech Stack

MERN
WebSocket

Participation

Software Design and Author of SRS
Implemented Web Socket Related Functions
Part of Pan Test (Static Code Analisys)
Bug fixing and security checklist
Demo Deployment (Over Web with HTTPS)

All Source Code can be found here: Github

Download SRS
GUI
GUI

2022-11-20

Image Stitching and Optical Flow Estimation

Introduction

This project, carried out by Dexuan Ren, focuses on the implementation of Optical Flow Estimation using the Lucas-Kanade method. The goal is to estimate the motion pattern between two consecutive frames or images.

Partial Codes

GUI
GUI
GUI
GUI
GUI
GUI
GUI

Methodology

Optical Flow Estimation

The Optical Flow Estimation was implemented using the following steps:

  1. Spatial Derivatives: A five-tap (central differences) derivative filter was used to compute spatial derivatives.
  2. Temporal Derivative: Gaussian filtering was applied to both images, and the first image was subtracted from the second.
  3. Eigenvalue Calculation: The flow estimate was considered valid only in regions where the 2×2 matrix was invertible, i.e., the smallest eigenvalue was greater than a threshold (e.g., τ = 0.01).
  4. Flow Visualization: The flow fields were visualized using the flowToColor function.

Window Size Effect

Different window sizes were experimented with, and it was observed that as the window size grows, fewer optical flows are detected.

Image Warping

A function named myWarp was implemented to warp one image with the computed optical flow field and compare the result with the other image. This helped in visualizing the accuracy of the computed flow field.

Results

The Optical Flow Estimation was tested on various image sequences, including ‘sphere’, ‘synth’, and ‘corridor’. The results were visualized using matplotlib, and the flow range was computed for each case.

  • Sphere Sequence: Max flow: 9.5293, Flow range: u = -6.000 .. 4.055; v = -5.403 .. 7.403
  • Synth Sequence: Max flow: 2.0551, Flow range: u = -1.891 .. 1.609; v = -1.798 .. 1.486
  • Corridor Sequence: Max flow: 433.8663, Flow range: u = -402.000 .. 328.000; v = -358.000 .. 412.000

Conclusion

The project successfully implemented Optical Flow Estimation using the Lucas-Kanade method. The effect of window size on the result was explored, and the accuracy of the computed flow field was visualized through image warping.

References

2022-10-16

Campus Map App Design

Interactive Campus Map

An innovative application designed to assist campus users in finding locations like buildings, classrooms, parking places, and more. The map is interactive, up-to-date, and offers detailed information beyond static maps or Google Maps.

Components

  • Home Page: Default map centers at campus geological center with options to recenter based on GPS location and switch to satellite view.
  • Search Functionality: Allows users to search for locations with detailed results, including address and route from current GPS location.
  • Location Pages: Includes “My Locations” and detailed location pages with address, description, and photos.
  • Building Plans: Multileveled plans with room numbers, north direction, and interactive features like zoom and rotate.
  • Course Page: Allows users to search and view courses by catalog number and location.
  • Parking Page: Displays available parking slots, rates, and pass counts.
  • Profile Page: Includes options to sync timetable, add parking credit, and change password.

Prototype

An interactive prototype of this project is available on Google Drive.

Feel free to explore and get inspired!

GUI
GUI

2022-09-20

Indoor Golf Automation

Implemented the Automation on Site for two stores, Using REST API to sync with cloud.
All devices will be auto on or off depending on the user’s Booking, also support remote control.
Store will automaticly close and open in midnight and morning.
Supported Device including, PC, lights, sensors, Survilance cameras, Montion IR cameras.

Source code is an IP to Mr.Leaves Electronics and Networking Inc. thus its not shown here.

Click this to Learn More about the store: ClubHouse Golf

GUI
GUI

2022-07-11

Game Server Rental and Egg Development

Introduction

We have integrated the Pterodactyl panel for these new nodes, a move that streamlines management and operations while enhancing automation capabilities.
I also participates in the egg (Docker image and Installation scripts) developement of Pterodactyl in the major open source repositories.

My Github Page.

Technical Design

Architecture:

  • Distributed System: The nodes are part of a distributed system that ensures high availability and fault tolerance.
  • Microservices: The system is built using a microservices architecture, allowing for scalability and ease of maintenance.

Many Nodes

Containerization with Docker:

  • Isolation: Docker containers encapsulate each game server, ensuring isolation and consistent environments.
  • Docker Compose: Used for defining and running multi-container Docker applications, simplifying deployment.

Pterodactyl Panel:

  • Integration: The panel is integrated with the Docker ecosystem, providing a unified interface for managing game servers.
  • Customization: Allows for extensive customization of server settings and configurations.

Demo Servers

Security:

  • MFA: Multi-Factor Authentication (MFA) using the Google Authenticator app enhances security.
  • Firewalls & Network Isolation: Implementation of firewalls and network segmentation to protect sensitive data.

Automation & Monitoring:

  • CI/CD Pipeline: Continuous Integration and Continuous Deployment (CI/CD) pipeline for automated testing and deployment.
  • Monitoring Tools: Integration with monitoring tools like Prometheus and Grafana for real-time insights.

Deployment Strategy

Environment Setup:

  • Development, Staging, and Production Environments: Ensuring a smooth transition from development to production.

Scalability:

  • Horizontal Scaling: Ability to add or remove nodes based on demand, ensuring optimal resource utilization.

Backup & Recovery:

  • Regular Backups: Scheduled backups of critical data.
  • Disaster Recovery Plan: A robust plan to ensure data integrity and availability in case of failure.

Accessing the New Panel

The new panel can be accessed at Mr.Leaves Server Group.

GUI

Conclusion

The technical design and deployment strategy of our game server hosting system reflect our commitment to excellence. By leveraging cutting-edge technologies and best practices, we provide a robust, scalable, and secure solution that meets the needs of demanding users. Explore the new panel and experience the benefits of our advanced hosting solution.

2022-02-19

Simple C program shows How Float is stored

This is a simple code to demonstrate how a double is stored in computer memory.

To understand the concept, please read the details in the API Floating Point Data Types link.

Click Here to view the source code.

Example Output:

[root@localhost ~]# gcc ShowDoubleConversion.c -lm
[root@localhost ~]# ./a.out

Please enter a double number: 7464.1648

Double: 7464.164800
RawDouble: 40BD282A30553261

Dec Form:
*****************
Sign: 0
Exponent: 1035
Fraction: 3703336361865825

Hex Form:
*****************
Sign: 0
Exponent: 40B
Fraction: D282A30553261

Conversion:
*****************
Sign: Positive
Exponent: 12
Binary Fraction: 1101001010000010101000110000010101010011001001100001
Decimal Fraction: 1.822306
Raw Double in Decimal Calculation: 7464.164800=1x1.822306x2^12

Double Check Answer: 7464.164800
[root@localhost ~]#

Get In Touch

Feel free to reach out to me with any questions, feedback, or collaboration opportunities. I would love to hear from you!

  • Address

    Willowdale, Toronto
    Ontario, M2M 4H9
    Canada
  • Phone

    647-355-0239
  • Email

    ken.ren98@gmail.com