This page will showcase my previous and current projects.
Current:
March-May 2023: SparkGPT:
SparkGPT - A project built using Python/Flask and the OpenAI API. Recently Bitcoin Lightning Network payment supports were added! This project came out of my desire to use ChatGPT via the API and learn more about how things worked. I’ve since made it a goal to try to find ways to improve it on a near daily basis.
Features:
- Improved design over previous “chat apps” I have created in the past using Javascript and AJAX so there is feedback when sending a message. Previously, the page wouldn’t update until the ChatGPT API responded.
- You can select from a series of preset prompts or you can input your own custom prompt. These custom prompts tend to work better than inputting your own prompt after the conversation has already started.
- A chat interface that includes the ability to easily delete individual messages, reset the chat entirely, and download the conversation history to a markdown file.
- Filename of the markdown file is ChatGPT generated based upon your initial message.
- Ability to have multiple concurrent chats going at the same time. Front page will have a small summary of the ongoing chat as well as the current prompt being used.
- PrismJS support so all code blocks have syntax highlighting and look all colorful. (As they should!)
- Added Bitcoin Lightning Network support, all chats are powered by sats!
- Supports both ChatGPT(gpt-3.5-turbo) and GPT-4.
Completed:
January 2023: Python/Flask 100 Days of Code Final Project:
Steam Price Tracker - This is a project built using Python/Flask. This is mostly a project to cap off the Replit 100 Days of Code as my final project. It is a website to allow users to track Steam video game prices using website scraping.
Features:
- Login System with hashed/salted passwords stored in the Replit Database
- Password Recovery System
- Email Confirmation
- Token Generation and verification system for Password Recovery/Email Confirmation
- CSRF Protection
- Ability to add games to a Price Tracking List
- Set Price Target
- Page will scrape the Steam website to get price updates, email sent if price is below price target
- Admin panel to view user information/delete users
- Background scheduler to update prices/purge old tokens
- Supports bundles and games that aren’t for sale yet. Will email you when they go on sale
- Logging System to keep track of various changes
January 2023: More Python Projects
Scraping Hacker News - This is a project built using Python/Flask that will scrape Hacker News using Beautiful Soup. By default it will scrape the first 20 pages for “ChatGPT” but can also search for arbitrary search terms. [demo]
News API + GPT API + Spotify API - This project attempts to combine three different APIs: News API, OpenAI’s API, and Spotify’s API. A user will select what news category they’d like, it will send them over to GPT3 for a five word summary, this summary is then used as a search query on the Spotify API. The results are served up within a simple webpage.
Popular Songs via Spotify API - A Python/Flask app that allows you to search by artist/year for the most popular songs. It will use the Spotify API to retrieve this information and display it on a webpage. Links are to Youtube Music simply because I don’t have Spotify premium myself. [demo]
Weather App - A Python/Flask app that uses OpenWeatherMap API to pull in weather info like current temp, expected high/low for tomorrow, as well as tomorrow’s time for sunset and sunrise displaying it on simple webpage UI. [demo]
Replit Chat - A simple chat app built using Python/Flask that uses Replit Authentication and Replit databases. You must have a Replit account to read/send messages. [demo]
December 2022: Random Python Projects:
Mood Tracker App (GitHub): A mood tracker app made in Python that outputs mood, stress, and sleep quality to a CSV file. It is also outputted to a SVG file in the form of a line graph for tracking of this data over time. You can try it on Replit here.
Goal Setting App (GitHub): A single goal setting app that helps you set short, medium, and long term goals while also providing encouraging tidbits along the way. You can try it on Replit here.
Affirmation App with Text to Speech (Replit): An app meant to help with self affirmation when maybe you’re having a hard time doing it for yourself. Uses the PyGame library to produce visuals/play audio, and uses the Google TTS(Text to Speech) library. You can try it using the app above, don’t forget to enable audio by clicking the button in the lower right of the screen.
Bitcoin Fees, Past & Future Blocks App (Replit): A command line tool that queries (Mempool.Space)[https://mempool.space] for previous block information, current fee rates, and prospective block information, including an estimated unconfirmed transactions number to help estimate how busy Bitcoin is at any particular moment. You can try it using the link above.
October 2022: Sats Converter:
In my recent adventure in practicing programming with Python, I was encouraged to make something to convert from sats (0.00000001 Bitcoin) and the United States Dollar. This was created one night and seems like a good demonstration of programming and UX skills. This example is posted on Replit – allowing you to play with the script in the browser. My apologies if it has an annoying captcha prompt.
Another version of this same project but made in PyGame can be found here. Improvements include keyboard input and added graphics.
A simple Javascript project that queries the Kraken API and then extracts the Bitcoin Price.
June-September 2022: Star Trek: Collective Mischief:
In June I started my game dev adventure by starting a Shmup tutorial by the folks over at Lazydevs. This has led to an absolute explosion of understanding and exploration in programming. This is mostly focused on the Lua scripting language at the moment with some other minor experience with Javascript.
This has progressed to the Lazy Devs Basic Shmup Showcase where the completed version of Star Trek: Collective Mischief has been revealed! Go here to find download links!
August 2022: Sun Escapes Me:
Sun Escapes Me is my entry to the LOWREZJAM game jam. This is my first game jam as well as my first game release. Please click the link above to try out the game! You can play it in the browser or by downloading the build for your operating system.
July 2022: Coin Toss Game:
This isn’t really a game but helped to solidify some concepts and demonstrate basic competence in Lua/Pico-8 programming. Basically generating a random number and then extracting if it is an odd/even number by using the modulo operator. That pixel art coin was made by me too!
Previous Lives:
2019-2022: Lightning Junkies:
A Bitcoin Lightning Network podcast focused on my learning journey and technological analysis of Bitcoin/Lightning Network. Currently on indefinite hiatus.
2008-2011: Portrait/Wedding Photographer:
A long time ago my main focus was photography and becoming an expert in that. Mainly focused on portrait photography before having a wedding photography business full time. Moved on from this because it seemed to lack a technological challenge. Right around 2011 was when I started to play with Python for the first time.