KPI analysis with MySQL Azure Database

The project aims to design an interactive queries function of SQL by connecting the database from Azure to evaluate the KPI performance. Local Database (DB) connection to Azure is executed by using Azure Database for MySQL single server(use Migration Wizard). In codespace, we can access Database which is exactly the same as the Azure database, and with this, I created a Datawarehouse and loaded all the needed data from the DB. Interactive queries can be perfromed in the codespace with the SQL interface. The goal of this project is to let KPI evaluation be more efficient and updatable by connecting to a cloud Database.

Fake Image Detection

The goal of this project is to develop a tool that can distinguish between fake and authentic images using a pre-trained MobileNet model. With advancements in AI-generated images, the ability to accurately detect fake images has become increasingly important. The project aims to provide a useful and reliable solution for identifying fake images and helping people verify the authenticity of visual content.

Emotion-Conditioned Music Generation with Transformer GANs

Generative models have been widely applied to the realm of natural lanauage. Automatic generation or Images or texts has been prevalent, while music generation is a relatively niche area that we aim to delve deeper into via this project. We explore both the conventional ~Transformer and Generative Adversarial Network (GAN)-based models to evaluate their quality and performance in the context of conditional music generation.

Containerized FastAPI with timely News

The web application is built to return JSON payload containing the news that are relevant to what users want to read. Overall, it is developed using AWS cloud 9 as the environment and queries from the Atlantic news website. The microservice was containerized in AWS Elastic Container Registry (ECR) and pushed to production using AppRunner and FastAPI. Continuous Integration is enacted through Github Actions and Continuous Deployment is performed through configuring Build Server to deploy changes on build using AWS ECR and Code Build.

Serverless Web Application of Sentiment Analysis on Texts

The project aims to build a serverless web application that is able to reuturn a sentiment report without a server, and perform Continuous Integration through Github Actions and configure Build Server to deploy changes on build (Continuous Delivery) using AWS Lambda, API Gateway and S3 bucket.

Personal Assistant Line Bot using AWS Lambda, DynamoDB, API Gateway

The project aims to design an interactive Line Bot that can help track the to-do list. Line is a message platform where people in Taiwan, Japan and Korea use in their daily life. It deployed AWS Lambda Function that was built to connect dynamoDB (using boto3) and Line (using the line-bot-sdk). To establish the connection between users and channels,the Lambda Function was also connected with AWS Gateway using the REST API, which would allow the messages sent from Line users to store in dynamoDB, and allow the information to be pulled out from dynamoDB.

The Price Behind the Trends: Uncovering the Hidden Costs of Fashion

This HackDuke project aims to build an innovative and intuitive web app for sustainability fashion, which achieved a third-place in the environmental track. An image-to-text neural network model, natural language processing were adopted to help users identify the estimate hidden electricity, water, and CO2 costs of a piece of clothing by simply scanning the clothing label. The web app allows users to conceptualize the environmental impact of their clothing purchases, and stay informed when making purchase decisions. The app was deployed on Heroku and is currently paused due to high costs of running it.

Measuring the Effectiveness of Opioid Policy: A Causal Inference of Public Policy Impacts

Using 400M+ rows of data, the project examines the effectiveness of interventions in the State’s Opioids policies in lowering the volume of opioids prescription and the rate of drug overdose mortality. Pre-Post analysis is first conducted to examine the difference in opioids prescription and mortality rate between pre-policy and post-policy era. However, even if the trend is different, we cannot be sure the difference is caused by the policy and not other factors. Thus, differnece-in-difference analysis is conducted. This method allows us to compare the change in opioids prescription and mortality rate in the state where the policy was enacted, with a hypothetical parallel universe where the policy was not enacted. Overall, the project provides evidence-based recommendations on the effectiveness of the State's Opioids policies, and to inform future policy decisions on opioid use and abuse.

BERT or Naive Bayes? Classification of LinkedIn Company Industry

The project aims to evaluate whether company descriptions on LinkedIn are sufficient to identify the type of business. The current study focuses on three predominant industries: Financial Services, Hospitals & Health Care, and IT Services & IT Consulting, while it can be scaled to incorporate additional business sectors for broader use cases. The study deploys BERT as a discrimitive model and Multinomial Naive Bayes model as a generative model to compare their effectiveness of classifying company's industry based on the company descriptions on LinkedIn. Synthetic data was also generated based on Naive Bayes model in order to assess how the two models perform under real conditions and under the conditions for which the generative method was designed. Results suggest Naive Bayes have a slightly better performance in classifying the company industry than BERT model, even though both achieved high accuracy.

Commands Line Tool of Keeping Diary in RUST

The project built a c command line tool in Rust that allows users to quickly record their diary with a time stamp. Rust's memory safety features and static typing could ensure that the tool is robust and free from common programming errors such as buffer overflows or null pointer dereferencing. Rust's concurrency features could also be leveraged to allow multiple users to use the tool simultaneously without data corruption or synchronization issues. The resulting command line tool would be efficient, fast, and reliable, making it a useful tool for users to easily record and recall their diary entries.