Skip to content

Latest commit

 

History

History
153 lines (90 loc) · 9.8 KB

readme.md

File metadata and controls

153 lines (90 loc) · 9.8 KB

Projects

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.

Full Stack

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.

Desktop

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.

Mobile

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.

Miscellaneous

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.

In Progress

Movie Streaming Application

Privately stream a movie with friends with a real-time chat.

Future Project Ideas

Trello Desktop Widget for Windows 10

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.

A simple type racing clone. Takes comments from reddit.

Use websockets to have a live typing race with others.

A Buddy Finding Service For Streaming Subscriptions

Users create accounts and get matched with other users that have different services to trade. The only way to win is to team together.

Podcast App / Website

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.

Web based download manager

Hosted on a local media server. Quickly add links to be downloaded in the background.

Goodreads alternative

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

Indeed Jobs Dashboard

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.

Automatic docker configuration

  • Integrate the Docker socket API with
  • Similar to how Traefik autodetects services via labels, this would do the same

Web interface confgiuration

  • Simple UI to configure the YARP settings manually.

Video Clip Concatenation Desktop App

  • Allow opening a folder of video clips and combining them
  • Good for dashcams and other video cameras that only collect small video clips.

LeetCode Spaced Repetition Extension

  • 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.