AdiaScript: a procedural programming language and IDE. It can be used for many different things. It's the only open source project that I'm continuing to work on at the moment. Link
IT ticketing system: a ticketing system I made for a class about databases. It's a Java program that interacts with a MySQL database. Link
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
JavaFX Piano: a simple program that lets you play music with your keyboard. Link
Performance Benchmark: a multithreaded Java program that tests your computer's performance. Link
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
Tech quotes: a project that randomly displays tech quotes from famous people in tech. Written in JavaScript. 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
Saint Louis Software website: a static website with basic information about who I am, what my education is, and what I can do. Made with HTML, CSS, JavaScript, Bootstrap, etc. Primarily a front-end development project. Link
Various Wordpress websites: I've made sites with Wordpress, a popular LAMP-based content management system. Examples: Hello Life Skills and Smart Financial Research. Link1 Link2
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.
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. I mostly use the servers for virtual machines, such as for web development or infosec projects. Link
Computer science flash cards: digital flash cards (for an app called Anki) for my computer science classes. Link
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