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.

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 GPT-3.5 Turbo, GPT-4o 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.

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. gpt-3.5-turbo, gpt-4o 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.