AI Plays Flappy Bird
The project showcases the implementation of the NEAT algorithm in Python to play a Flappy Bird-like game. It orchestrates the evolution and evaluation of a bird population through successive generations. The algorithm releases a population of genome-controlled birds into the game to assess their fitness, with each bird's network derived from its genome to make decisions of jumping or not along the way. When a bird population goes extinct, a new generation of evolved birds is created and evaluated as the previous generation does. This iterative process continues for multiple generations until the fitness threshold is met and the winner genome is saved.
Book Search Engine
The Book Search Engine is a desktop application developed in Python using the Tkinter and CustomTkinter library. It enables users to interact with a local SQLite database to manage and query book information effectively, allowing users to look up book information with ease, and to add, update, delete book records in the local SQLite database. This application is particularly useful for librarians, bookstore owners, or any book enthusiast who needs to manage a collection of books.
Centauri Alpha's Retail Data Consulting Project
A data consulting project that I implemented for a retail business client during my employment at Centauri Alpha. The experience includes extracting and loading data to GCP BigQuery using Fivetran, transforming data within the data warehouse with dbt, analysing online sales data from the data warehouse using SQL queries and Python pandas, performing customer retention analysis employing statistical methods, developing and evaluating a business strategy based on the retention analysis, and presenting data insights to stakeholders with Power BI in weekly meetings.
ChatGPT Tkinter Desktop App
This user-friendly GUI application allows users to have natural language conversations with ChatGPT directly from a local computer. Built upon OpenAI's Chat Completions API, it leverages advanced natural language processing capabilities to deliver high-quality responses to human's requests. Through an intuitive user interface, users can easily select between o1, o1 mini, GPT-4o, GPT-4o mini, and GPT-4 Turbo models, engage in conversations with ChatGPT, review previous interactions, and even listen to the chatbot's responses through audio playback. This application aims to provide an immersive and enjoyable conversational experience akin to chating with a real person.
Cloud Data Warehousing with AWS Redshift
The project implements a scalable cloud solution for Sparkify's analytics team to gain insights from their user and song data. The goal is to build an ETL pipeline that extracts data from AWS S3 staging area, loads it into staging tables in a database hosted on Amazon Redshift cluster, and transforms it into a dimensional model with fact and dimension tables in a star schema that allows for efficient querying to answer business questions such as popular songs, user listening patterns, and peak activity times.
Data Modelling with Apache Cassandra
This project focuses on building an Apache Cassandra database for Sparkify, a startup that offers music streaming services. Sparkify collects large amounts of user activity and song data, and the analytics team wants to query this data to better understand user behaviour, specifically around song preferences. The goal is to create an ETL pipeline to preprocess raw event data stored in multiple CSV files, consolidate it, and design and implement a Cassandra data model to support queries on the song play data.
Degrees of Separation with BFS
This project utilizes PySpark RDD and the Breadth-first Search (BFS) algorithm to find the shortest path and degrees of separation between two given Marvel superheroes based on based on their appearances together in the same comic books. It offers efficient exploration of superhero connections, empowering users to analyse and discover degrees of separation between their favourite superheroes in the Marvel universe.
Geocoding Web Service
SuperGeocoder is an online geocoding service built in Python with Flask that effortlessly transforms all address data within user-uploaded files into precise latitude and longitude coordinates. Upon uploading a file, users can instantly preview the output table on the website or opt to download the file in its converted format. Additionally, the integrated mapping service enhances the user experience by enabling them to visualise the exact location of each address on a map, offering deeper insights into each site.
Google Maps Style Route Planner
This Python-based project provides a user-friendly algorithmic solution for finding the shortest path between two locations on a map. By leveraging graph theory and A* search algorithm, users can efficiently calculate optimal routes similar to Google Maps. The project includes a Jupyter Notebook, "Google_Maps_Style_Route_Planner.ipynb", which houses key functions for map visualization, shortest path calculation, and optimal route highlighting. The necessary map data is stored in the "maps.py" module, imported by the notebook. With comprehensive documentation and the ability to perform tests, this project offers a reliable and versatile route planning solution.
ImageAI Computer Vision Flask Apps
This project showcases two Flask applications that utilize ImageAI's image prediction algorithms and object detection models. The "Image Object Recognition Flask Application" allows users to upload images and receive accurate object predictions with confidence scores. The "Video Object Detection Flask Application" enables object detection in videos, generating detailed frame-level data and providing valuable insights through data analysis. These user-friendly apps provide an intuitive platform for leveraging advanced computer vision capabilities, empowering users to effortlessly explore, analyze, and extract valuable information from visual content.
Item-based Collaborative Filtering
This project utilizes PySpark DataFrames and PySpark RDD to implement item-based collaborative filtering. By calculating cosine similarity scores or identifying movies with the highest number of shared viewers, the system recommends 10 similar movies for a given target movie. The repository contains two independent spark driver code files, catering to datasets of different sizes. The project offers a scalable and personalized movie recommendation system for users to discover movies aligned with their preferences.
Music Events Web Scraper
This project is a web scraping program engineered to extract detailed information about music events from Eventbrite, a popular event management and ticketing platform. Users can specify a country and a city to gather attribute data on upcoming music events, including event names, venues, addresses, dates and times, durations, prices, booking statuses, and web URLs. The collected data is subsequently saved in a CSV file, which is then attached to a marketing email sent to designated recipients. Additionally, the data is transferred to a local PostgreSQL database for efficient storage and management.
OpenAI API Web Applications
This repository hosts a collection of custom web applications powered by OpenAI's GPT models (incl. o1-mini, o1-preview, gpt-4o, gpt-4o-mini and gpt-4-turbo), Whisper model, and TTS model, and developed using Chat Completions API and Assistants API. These apps include an interactive chatbot ("Talk to GPT") for text or voice communication, and a coding assistant ("CodeMaxGPT") that supports various coding tasks. With its user-friendly interface, cutting-edge models, and auto-prompting features, this repository aims to enhance users' programming capabilities and to boost efficiency in both their work and everyday life.
WebCam Monitoring with Email Alerts
This project is designed to enhance security by monitoring specific areas and detecting unauthorized or prolonged presence. This application utilizes webcam technology to continuously monitor a designated area, alerting users via email when any object enters and remains in the area beyond a specified duration (default is 2 minutes). This application is ideal for settings that require vigilant security measures such as front and back yards of residential houses, doorway of retail shops, or any sensitive areas needing close monitoring.