Below you will find a list of my open-source projects grouped by category and language. Most of these were written as a way to learn various languages and technologies.
A collaborative learning application for students of all ages. Provides essential student functionality in a central connected location. Students create "Study Groups" that relate to a specific class. Within each Study Group users can take notes, create flashcards, keep track of events, take quizzes, and chat with each other. Implemented using Vue.js and storing data and user info via Firebase. Firebase enables real-time updates to Study Group data as members add and change things. Micro-server written in Node.js / Express to convert markdown text into PDF. Written as part of my Senior Year capstone project. I was the lead developer on a time of 3 other students. The project was selected by Kutztown University for internal use and further implementation.
A free eBook downloading utility that provides a simple and clean interface for searching and downloading files from irc.irchighway.net
. Front-end written in React / JavaScript. Golang backend. Custom implemented IRC and DCC clients. Websocket communication via JSON messages to front-end user interface. Also provides an alternative CLI alternative to the web interface.
A collaborative shopping list mobile app for families. Create custom lists that are shared amongst all members of your family. Mobile app written in Dart using the Flutter mobile framework. Backend REST API written in Java using the Spring Boot Framework. User authentication via JSON web tokens. Data persistance via PostgreSQL. Backend deployed within a Docker container.
The original book keeping application written when I was first learning modern web development. Provides a simple way to keep track of read books and their ratings and reviews. Written in Vue.js and Bulma CSS. Persists data and gets realtime updates via Firebase.
Flexible and customizable web scraper written in Java using JavaFX for the GUI. Tweakable crawler settings along with customizable data retrieval rules implemented via a JSON protocol. Crawler path visualization is shown via a graph structure. Permits a greater understanding of the crawler's path and scraped data.
A desktop and mobile application to accept game queues while away from the computer. Customizable for any desktop game. Mobile app written in Dart using the Flutter mobile framework. App scans the local network for open remote-queue server instances. The desktop application is written in Node.js and uses express and websockets to enable real-time communication with the mobile app. Desktop GUI uses the Electron desktop app framework to allow cross OS compatibility.
Desktop application written for the Elementary OS linux operating system. Provides an extensible and simple way to switch various app and code editor themes with the click of a button or on a set schedule. Written in the Vala programming language and using the GTK desktop UI toolkit.
Desktop application written in JavaFX. Makes use of the MVC pattern to separate application conerns. Provides a catering business mock application that allows users to place orders and schedule appointments. Persists data to an SQLite3 database. Final project of Java Programming class.
A velodrome race start timer. Written in Dart using the Flutter framework. Works on both IOS and Android. Written for my brother who wanted an accurate and simple race timer for practicing his race starts. Mimics the look and sounds of the real velodrom timing system.
A cross-platform mobile app implementation of my previous Book-Keeper Vue.js single page application. Written using the Ionic hybrid mobile development framework. App written using Angular, Typescript, and Firebase. Makes use of the mobile device's native camera and local notifaction functionality. Provides a native look on both Android and IOS.
A simple CLI to scan computers for open ports. Scan a single computer on all ports or scan all computers on a network for a specific open port. Fast and multithreaded.
A local file server written in Golang. Allows you to share files and folders across different computers on a local network. Unlike traditional file server CLIs, it allows folders to be downloaded by compressing them into *.zip file.
A .gitignore
file generation CLI utility written in Golang. Support for hundreds of languages and frameworks. If the language templates aren't specific enough, you can write custom rules to suit your needs. Used for all my projects to generate base .gitignore files
A plugin for Visual Studio Code. Enables users to quickly switch their editor font from the commmand pallete (Ctrl + Shift + P). Over 12,000 installs.
A web scraper written in Python using Scrapy. Crawls and scrapes movie data from IMDB.com. Data is stored in an SQLite3 database. Frontend data visualization via a Flask server allows you to search through the movie results and view scraped data. This served as the inspiration for writing my own web scraper implementation in Java.
A custom download server and client CLI written in Java. Makes use of TCP sockets and multithreading. Implements a custom network protocol that enables multiple clients to traverse the server's file system and download any files they choose. Final project for my Network Programming class.
A basic implementation of the HTTP protocol in Java. Written without the use of the Java HTTP package. Simply uses TCP sockets. All data parsing and routing is custom. Written as a way to further understand how higher-level HTTP servers work behind the scenes.
Privately stream a movie with friends with a real-time chat.
Similar to the Sticky Notes app, I want to view certain trello lists or boards on the desktop. Simple things like To-do lists. I am thinking of making it with C# but if I want cross platform I'll have to use something like GTK or QT.
Use websockets to have a live typing race with others.
Users create accounts and get matched with other users that have different services to trade. The only way to win is to team together.
My favorite podcast application PocketCasts recently changed their payment model from a one-time fee to monthly subscriptions. I am really not happy with it. My ideal podcast application would enable users to listen on both desktop and mobile. Podcast progress should be synced between devices. I am leaning towards a self-hosted data solution where users store their individual data in an SQLite database within their Google Drive or other cloud provider account. Mobile app in Flutter or React native. Backend services written in Java or Golang.
Hosted on a local media server. Quickly add links to be downloaded in the background.
- Started development at download-manager
Like goodreads but with less useless features.
- Books
- Public Ratings (stars)
- Private notes (there are no public reviews?)
- Reading status
- Shelves
- Because it would be too much data to import everything from goodreads, when a user first looks up a book that isn't there, it will parse / scrape from another website
- This will slowly build up a book collection
Web app dashboard that shows job statistics for various languages / technologies
- Total in United States
- Total per state
- Simple graph comparions
- Maybe a change over time graph?
YARP Extensions for custom proxies
- Configuration providers NuGet packages that provide configuration extensions.
- Integrate the Docker socket API with
- Similar to how Traefik autodetects services via labels, this would do the same
- Simple UI to configure the YARP settings manually.
- Allow opening a folder of video clips and combining them
- Good for dashcams and other video cameras that only collect small video clips.
-
Browser extension to prompt users to practice specific LeetCode problems on an optimized schedule using spaced repetition.
-
Features:
- Recognize the problem from the user's current page
- Use Notifications api to prompt users on the day they should practice again
- Show history
- Hide or clear completed problem text in code editor when they are practing a previously completed problem.
- Store data either locally or create a web service.