File Hider: a file steganography tool for hiding files within other files. Written in Java with JavaFX for the GUI. Link
EZcrypt: a file encryption/decryption tool. Written in Java with JavaFX for the GUI. Link
Intro to security: a short book about information security. Uses Markdown for the chapters. Link
ChiWeather: a bot that gets weather data for Chicago using a weather API. It also uses FTP to download a photo of the sky taken on another device, and then uses a script to add a timestamp to the image. It then uses the Twitter API to send a tweet that contains weather data. Written in Python and Bash. It has two separate components: one for taking the photo on a Raspberry Pi Zero (written in Bash), and another for building and sending the tweet (Python). It uses crontab for task scheduling. Link to repo Link to Twitter account
To-do list app: a LAMP stack web-based to-do list app which stores to-do items in a database and requires authentication to view. I made this because I wanted a simple to-do list app, because I find myself using text files for writing to-do lists. Not only is it useful for me, it also demonstrates proficiency with Apache, MySQL, and PHP. Link
Prime Finder: a program that finds prime numbers, gaps between primes, and frequency of prime number occurrence. Then it graphs the data. It can save its place and then quit and resume later. Written in C++ and gnuplot. Link
AWS S3 Bucket Scraper: a simple proof-of-concept security tool that demonstrates how misconfiguring an S3 bucket can be bad, as the S3 API's XML responses can let someone enumerate all objects within a bucket. This tool can download all files in an S3 bucket. If you're going to use the cloud, it's important that you understand security for it. If you're an employer and you'd like to see the security projects I've written, let me know. Otherwise, they are private so that people can't misuse them.
ASIO: Alan's Simple IO module for Python 3. It makes it easier to make HTTP requests, get HTTP responses, download files, write data to files, and more. It supports Unicode, ASCII, and binary data. Link
Clone All: a Python tool for cloning every repo from a given GitHub user. Uses ASIO for IO operations. Link
AMP: Alan's Maintenance Program. A shell script for automating Linux tasks, such as installing software updates, testing the network connection, and scanning for malware. Link
0x416c616e.github.io / alans100daysofcode.com: a Jekyll-based blog. Jekyll is a static site generator written in Ruby (which I didn't make). Link
Static Site Generator: I was frustrated with some of the quirks of Jekyll (needing specific versions of dependencies and getting errors), so I made my own simple static site generator instead. Written in Python. Link
Java weather API tool: a tool for downloading and saving weather data. Written in Java. Link
Software development book: a book about software development in a variety of languages. Not yet published, but unfinished versions are available upon request
Unnamed 2D game engine: a 2-dimensional game engine for RPG games. It features tile-based movement and collision detection, as well as 2D graphics. It also has a level editor. Written in Java and uses JavaFX for the GUI. Link
ClearClipboard: a browser add-on for Firefox and Chrome that clears your clipboard. Useful when you're copying and pasting something you only need to use for a little while and don't want to accidentally paste later. Link
Dice Roller: a browser add-on that lets you roll dice or specify a custom range for random numbers to generate. Link
PHP web shell: a website security tool written in PHP. If you're an employer and you'd like to see the security projects I've written, let me know. Otherwise, they are private so that people can't misuse them.
Simple rootkits: a collection of simple scripts relating to rootkits, backdoors, reverse shells, bind shells, and listeners. Only for educational purposes, intended to demonstrate simple security concepts about remote interactive shells via /dev/tcp/, TCP listeners, and how crontab can be misused. If you're an employer and you'd like to see the security projects I've written, let me know. Otherwise, they are private so that people can't misuse them.
Rootkit Finder: a simple security tool for finding rootkits and other suspicious stuff in Linux. Link
Abyss: a cool security project. Ask me about it! The repo is private because it's a security-related project that I don't want people to misuse, but I will share it with select people.
File servers: I've set up file servers with FreeNAS and ZFS for SMB file sharing. I've set up user accounts and permissions so that people can access their own files, but not other people's. Primarily used for Windows desktop file backups. Photos/screenshots coming soon
Customer routers: I've set up routers with pfSense and DD-WRT. Photos/screenshots coming soon
Server rack project: built some servers and a network. Set up all the physical stuff as well as software. Currently, there are two hypervisors on it, and many other computers that I have yet to set up, but plan on eventually setting up as a Kubernetes cluster for containers. Photos/screenshots coming soon
Computer science flash cards: digital flash cards (for an app called Anki) for my computer science classes. Link
Future projects: I want to concentrate on full stack LAMP development (web dev), using cloud providers for hosting my web projects, interacting with databases, publishing my book, and information security. I will also be doing a Java-based database project this semester in the database class, writing a Java front-end program to interact with a database.
Unfinished projects: some people say they can't think of a project idea. Some people I've spoken with struggle to come up with ideas for things to code. I'm the opposite. I have a zillion ideas for things I want to make. I have a backlog of projects that I want to make. Every day, there's always something more I can do. The best way to keep your skills sharp is to constantly code. Work on new projects. It's fun, educational, and makes you feel accomplished when you finish an app. In addition to my good finished projects, and some non-noteworthy projects, I also have a lot of unfinished projects. Some are half done, others I've barely started on, and some are ones I want to start on in the future in my free time. For a list of my unfinished GitHub projects, check out this repo here: Link