CodingCactus

codingcactus

Hi👋

Info

I'm CodingCactus, a fullstack developer leading towards backend development in preference over frontend. I'm proficient with Ruby, Python, JavaScript, HTML+CSS, MongoDB, and SQL. My favourite language to work with is Ruby, as it has such elegant syntax and when teamed up with Rails makes for such a powerful backend. For the database, MongoDB Atlas is my first choice with its simple configuration and scalability, it significantly reduces the time that would be spent setting up other databases. At the moment, I'm diving into the world of C# and Blazor which is a fascinating approach to fullstack development, allowing both the server and client code to be written in C#. I'm hoping to be working on some projects with Blazor in the future. My main workflow involves developing locally with JetBrains IDEs and Git, then hosting "production" on Replit.

Competitions

Other

Other than directly coding, I also spend my time doing other things. I'm a moderator of an online coding forum called Replit Community. My interests outside the coding world, however, mainly lie in mathematics based fields such as maths (obviously), physics, and electronics. As well as my academic interests, I also love running and playing table tennis.

Flaptus

Overview

Flaptus is a Flappy Bird type game where you jump through gaps for as long as you can, but with a twist. Everything is cactus themed! You are a Flappy Cactus (Flaptus) that has to avoid hitting the rocks as it flaps through the desert. Flaptus is complete with a global in-app and online leaderboard where you can see how you rank against the top Flaptus players around the world. Flaptus also has automatic update detection, where, if it detects there has been a newer release of the game than the one you are currently running, it will request you to upgrade to the newer version. Flaptus was my first proper game dev project. I used Ruby's Gosu Gem for the actual app, and then Ruby's Sinatra Gem for the downloads and leaderboard webservers.

Links

Classrooms

Overview

Replit shut down their classrooms product leaving my school with no efficient way of teaching students how to code. I decided to take it upon myself to create a replacement for us. My product uses replauth and embeds repls for students to work in, to keep it as close to what everyone was used to. Teachers create classrooms and then invite students and more teachers. The teachers can make assignments in which the students submit an embedded repl for the teachers to then return feedback for. Teachers can even add modal solutions to the assignments for students to look over once finished and reflect on whether their solution was the best way of approaching the problem. For this, I used Python's Flask library along with MongoDB Atlas.

Links

Cactus Carer Alexa Skill

Overview

Cactus Carer is a skill for Amazon Alexa which I made for a Replit Summer Hackathon. I ended up coming 2nd and winning $2000! To use Cactus Carer, you need to get it from the Amazon Store and then all you need to do is tell it what cacti you have, and it will tell you when to water and feed them. Cactus Carer is built using Ruby with Sinatra and MongoDB Atlas. This was a very enjoyable project as I got to properly work with OOP in a backend environment, and I was very pleased that I managed to come 2nd even though I was only available for 10 days of the 30-day competition.

Links

ReplTalk Gem

Overview

Following my transfer from Python to Ruby, I wanted to be able to do everything that I could do with Python - with Ruby. Most of my projects at the time involved some form of communication with Replit's GraphQL API. However, (understandably) there was no ReplTalk GQL API wrapper for Ruby! So I set myself a challenge and learning experience to make a Ruby Gem. As Replit's GQL API isn't really supposed to be for public use, it frequently undergoes breaking changes which means I need to be very aware if something is changed that breaks my wrapper.

Links

Slidey

Overview

Created as a submission for a jam with theme of "puzzle", Slidey is recreation of those games where you have to slide the tiles in a grid to create a picture, or order the numbers 1-15. It has 3 modes - 3x3, 4x4, and 5x5 - and 4 images to choose from, but you can also upload any of your own images. The images on the tiles are actually displayed using css only, which ended up being quite a challenge. I don't think I've ever before had to use calc() so much! Overall, it turned out really well, the layout and extras like animations and sounds are really polished, and the fancy moving background I also really like and very much enjoyed making.

Links

Cactus Bot

Overview

I decided to make my own, cactus themed, discord currency bot. It's my first of many discord bots, but still my favourite and also my most successful. It's in its fourth version now, starting off just using files, then ReplDB, then EasyPyDB, and now MongoDB Atlas to store its data. Each version brings speed and feature improvements. With Cactus Bot, you grow your cactus and then buy things from the shop to increase by how much you grow each time. There are also other fancy things such as growth per minute and habitats, which act as multipliers. Cactus Bot has been so successful that there are over 750 global users and has reached the limit of 100 servers.

Links

TODO List

Overview

This project came simply from a repl talk weekly challenge. All you had to do: make some form of TODO list application. It features the ability to create, mark as complete, and delete items in your TODO list. It also has deadline functionality, where you can enter by when you must have a certain item done by.

Links

Password Vault

Overview

Again, a project from a repl talk weekly challenge. This time a password vault. You can enter passwords and what site/app they are for and it will save them for you so if you forget them, you can just take a look in your vault. But what if you changed you password for a site? No worries! You can easily edit and delete passwords after making them.

Links

How To Python

Overview

This project is a website covering all the basics of how to program in python. Basically, I was bored one lunchtime with a computer science test a week or so away, and I thought I would make something to help my fellow classmates in the upcoming exam. It covers everything form printing, to looping and string/list manipulation. It also has a dark theme option!

Links

Cactus Clicker

Overview

On everyone's journey of learning web development, they make a clicker game. Cactus clicker is mine! Simply click the cactus to gain cacti. When you have enough cacti, you can buy upgrades to either increase your cacti per click, or your cacti per second. It uses local storage to save your stats, so you won't lose everything once you leave the page.

Links

Typing Speed Test

Overview

Test your typing speed with this console typing test. It uses Python's getkey module to detect your key press and then checks if it is the correct letter. It then uses ansi codes to colour and underline the letter that you are on and calculates your speed and accuracy once you're done. If you repeat the test it keeps track of your previous scores so that your average speed and accuracy can be calculated for you.

Links

2048

Overview

Play the classic 2048 game in your console! This project also uses Python's getkey module to detect key presses, and ansi codes for fancy colours. The controls are simply your usual wasd keys. What you need to do is put blocks of the same number together, this combines them into one block of double value. The goal is to get a 2048 block. A tip is to move the blocks in only three directions to try and keep the larger blocks close to each other in a corner.

Links

Tic Tac Toe

Overview

One of my first projects! If you're ever bored and just want to play some tic tac toe against a friend or bot, this is for you! As I said, this is one of my first projects, so if you just want to laugh at some bad code, this is also for you. There are 3 difficulty levels of difficulty against the bot: easy - just plays in a random spot and defends 3 in a row, hard - only one possible way to win involving luck, impossible - every single possibility hard coded (I had some spare time during lockdown).

Links