Ali Zaini

Projects 🚧


HoodHood Keyboard

HoodHood enables you to type in English and have your text instantly transliterated to Arabic.
I went into this project with an idea and no experience with mobile development. Since I was working on developing system software and not just a normal mobile app, there weren't many tutorials available.
I researched existing applications and looked at other open source keyboards, including the AOSP keyboard. After doing a lot of research, I began work and published the project within a month of starting and learned a lot from doing so.

  • Useful those who are more experienced typing with the QWERTY layout but would like to communicate in Arabic
  • Published to the Google Play Store
  • While typing, it transliterates by sending the word being composed to an API and the suggested words are updated in the candidate view
  • Developed in Android Studio with Java/Kotlin and XML for creating the keyboard layouts

JAVA

KOTLIN

MOBILE

API

XML

ANDROID STUDIO

Link the Players & ThirdTyre

A sports trivia game, where you are given two players (who have never been teammates) and you have to guess which other player has teamed up with both of them in the past. Created for FIFA, Formula 1, NBA, MLB and NFL.

  • Over 5,000,000 games played and 4,000,000 views on TikTok!
  • Games generate daily revenue via Google Adsense
  • Scraped web to create data set to use for the games
  • Created a template so the game format can be reproduced for any game, just requiring a data set (bonus NBA prototype)
  • Developed custom analytics system
  • Encoding games for sharing

REACT

NEXT.JS

MONGODB

MONGOOSE

GIT

CHAKRA UI

VERCEL

AskSistani/AskAyatollah

AskAyatollah is a website that allows you to ask an AI trained on Ayatollah Sayed Sistani any question. This is for religious questions and can help save people time in getting answers to their religious queries.

  • I wrote a blog about my experience presenting this project for a TV show competition!
  • Over 5,000 questions answered
  • Aim to hopefully support more scholars in the future
  • Scraped data and fine-tuned a model and used RAG to create the application

REACT

NEXT.JS

OPEN AI

GIT

TAILWINDCSS

VERCEL

Proto: Platform for Managing Coding Problems and Submissions

This was my final year dissertation project, supervised by Dr Christopher Hampson. Did really well on this project and had fun.
It's basically a clone of HackerRank/LeetCode, targetted more towards universities.

  • Developed the frontend and backend in TypeScript. Used Chakra UI for styling. Backend was GraphQL, Prisma and Postgresql. GraphQL is probably overkill but I see some benefits in using it, like the type generation to be shared between FE/BE.
  • Used the Judge0 API to execute user code
  • Implemented GitHub OAuth using Passport.js
  • Wrote a pretty good dissertation and learned about designing and engineering a larger scale project
  • Used Figma to design early prototypes

REACT

POSTGRESQL

DOCKER

GIT

CHAKRA UI

VERCEL

GRAPHQL

PRISMA

OAUTH

yet another link shortener

A link shortener that allows you to set custom URLs, expiration dates and manage them from your account.

  • shorten any link
  • create an account to manage your links
  • set expiry dates for your links
  • delete your links whenever you want
  • easily share your links with a QR code

REACT

GRAPHQL

NODE.JS

MONGODB

MONGOOSE

GIT

CHAKRA UI

HEROKU

nyaascraper

A CLI application/tool to scrape and open magnet links for HorribleSubs/subsplease/Erai-raws torrents from nyaa.si. Useful for when batches don't exist or you don't have some particular episodes.
User may specify the show name, quality, range of episodes and the option to either automatically load the magnet or download the .torrent files.

  • searches for shows using the same search engine as on nyaa.si
  • allows user to select quality (480p, 720p or 1080p)
  • select range of episodes to download, including episodes with decimals e.g. 13.5
  • doesn't download premade batch files which are already available by the groups on nyaa.si
  • tells you how many episodes weren't found/loaded

PYTHON

WEB SCRAPING

HTML

BEAUTIFULSOUP

CLI

GITHUB

SnapSense

🏥 A web application for the automated management and recognition of diabetic wounds. This project was developed for a real client as part of a large group project for 5CCS2SEG.
I spoke with the client to understand their technical needs and worked on developing the frontend and backend infrastructure. I also wrote a lot of detailed documentation so this project could be extend by future teams (checkout the last few screenshots).
The client was very pleased with the product and entered it into a competition.

  • Superadmin can create Hospitals and assign Admins to them. Admins can invite Doctors to their Hospital
  • Doctors can invite Patients to join their Hospital and giving them access to Patient submissions. Doctors can request for Patients to make submissions
  • Patients can make image submissions and respond to questionnaires. They are also sent email reminders so they never forget to fulfill requests assigned by Doctors

NODE.JS

GRAPHQL

REACT

CHAKRA UI

MATERIAL UI

JEST

REACT TESTING LIBRARY

MYSQL

SEQUELIZE

AWS EC2

AWS RDS

AMAZON S3

GITHUB

TRELLO

yt-dl-chatbot

Simple chatbot to download YouTube videos through Telegram.

  • Download any YouTube video quickly and easily
  • Videos are sent directly on Telegram
  • Select any quality using an inline keyboard (No need to remember any extra commands)
  • Easy to use, just send the YouTube link to the bot and select the quality to get your video

PYTHON

TELEGRAM API

poll.zaini.me

A quick and simple polling application. Built using the MERN stack, so MongoDB stores the questions and the front-end was created using React with Express/Node running the server and API. Hosted on Heroku.

  • Have multiple questions in a poll
  • Can set which questions are required or not
  • Set encrypted passwords so only authorised people can vote
  • Using cookies to prevent multiple votes

REACT

AXIOS

BCRYPT

EXPRESS

MONGOOSE

MONGODB

COOKIES

HEROKU

ComputingHub

ComputingHub was a GCSE Computer Science revision website I created while studying for my GCSEs along with some friends. I learned a bit about HTML/CSS and about getting a website online. The project is no longer maintained but a version of it is available below.

HTML

CSS

JAVASCRIPT

MY GCSE CS NOTES

TFTHelper

A tool to assist players in Teamfight Tactics by Riot Games by providing a variety of tools. I started work on this as soon as the game was announced, but eventually abandoned it as a well-established company created their own version and was adopted my most players who were looking for such a tool.
OpenCV - used to detect when the player had certain items or champions available to them
Eel - Python library to be able to interact between JavaScript and Python. Used to develop a GUI Designing an interactive 'cheat sheet', which was quickly outdated as the game evolved Learning how to learn things quickly so I could be the first to release something like this.
I look forward to new game releases and seeing which tools I can make now that I am more knowledgeable. Learned a bit about hooking and how that would be a more reliable way of reading what is happening in the game instead of using image detection

PYTHON

OPENCV

COMPUTER VISION

TEMPLATE MATCHING

HTML

CSS

JAVASCRIPT

Roomba PDDL Problem Maker

A short script I've written to make the creation of PDDL problem files easier for my INT group project.

Saved my group a lot of time

in both visualising and creating the problem files. Otherwise we'd have to manually write out hundreds to thousands of lines.
I'm using pywebview for the desktop app GUI. The webapp version is just using flask with a basic API. Instead of writing to files it just displays the problems on the page.

PYTHON

HTML

CSS

JAVASCRIPT

frequentspeedtests

A simple script which runs an internet speed test periodically and stores the results. Useful to monitor your internet speed and if you're having any issues.

PYTHON

King's Fake Banking App

A fake banking service to facilitate scam-baiting.
Created for the small group project for 5CCS2SEG. Achieved a high First for this project.

  • The site is made to look like a real bank, with multiple fake pages such as a contact page and loans etc.
  • Admins can access an admin panel where they can manage (CRUD) their users, the users bank accounts and the bank account transactions
  • You can log into your user account like a real bank account to manage your bank accounts and transactions. You can view the bank statement of any bank account. You can transfer money between your bank accounts. You can make payments from your bank account which will be deduced from your account
  • Very well documented project and well organised with a Trello board. Learned a lot about working a group from this.

RUBY

RUBY ON RAILS

POSTGRESQL

GITHUB

BOOTSTRAP

HTML

CSS

JAVASCRIPT

LuckOrSkill

A demonstration of Veritasium's model for astronaut selection as described in their video "Is Success Luck or Hard Work?"

JAVA

Transliteration API Wrappers

API wrappers for www.google.com/inputtools/try and www.yamli.com.
Created for HoodHood Keyboard.

PYTHON

REST API

POSTMAN

Sudoku

I first implemented the Sudoku backtracking algorithm in just HTML/CSS/JS but once I learned React, I reimplemented it and also allowed the user to actually enter their own boards and solve them.

JAVASCRIPT

REACT

HTML

CSS

A Game of Life

An implementation of John Conway's Game of Life using React. One of my first projects to learn React.

JAVASCRIPT

REACT

HTML

CSS

SimpleKNNAlgorithm

A simple implementation of the k-nearest neighbours algorithm in Python.

PYTHON

SubredditAffiliationDetectorBot

Replies to users so others can see if they post on certain subreddits. Made to try out the reddit API (PRAW)

PYTHON

API

jsPong

Pong in JS but it's badly implemented. Worked on this to try out HTML5 canvas element. Was cool to implement the physics and "game engine" for rendering every frame.

HTML

CSS

JAVASCRIPT

But wait, there might be more!

Checkout my GitHub to see the latest things I'm working on.