Reddit Orders Bot
Reddit is a online messaging board split up into units called "subreddits," each of which revolve around a different thing. I was an avid follower for the College Football Subreddit. Over the summer of 2018 they held a massive modified version of the board game Risk. Every User on the subreddit declared what team they wanted to play for, and then daily they had the option of either defending a territory held by their team or by attacking an adjacent territory held by another team.
The teams that did the best were the teams that were organizing and coordinating strategy with each other. So, I created a Python bot to help in the process. The python bot could get registered through reddit to send users messages every day. After those of us in charge of Wisconsin decided where we wanted to send our users, I could place the percentage of users per-territory into the bot and it would then send out a message to all of the users with their assignment, randomized based on the percentages provided. This bot received constant tweaks and improvements to better represent what we wanted, and helped Wisconsin place very highly in the competition.
Adjustments had to be made very quickly, as the vote occurred at Midnight EST everyday, so I had to exhibit the ability to make fast changes as the game evolved on a daily basis as well as tackle some technical hurdles and forecast future needs.
Github Repository: https://github.com/KliemannNoah/Reddit-Risk
Reddit Subreddit Scraper
Following the Conclusion of the Risk Game, some of the Wisconsin leaders began to realize that we would need to recruit more people for the following year if we were going to improve on the prior year's performance. To wit, I decided to scrape all of the comments from the College Football Subreddit and store the username and flair into a massive database.
Such a database is not available from reddit's end for privacy reasons, but a user who posts has stated they want to be identified as supporting the team with their flair. By checking every incoming comment to see if that user is in the database I can create a database with 1000+ badgers despite us only having around 200 people over the summer. This would let us keep track of all of the Wisconsin users, so that at the start of the next risk game we could message them all and gain lots of new recruits.
The database is stored on a Raspberry Pi, using SQLITE 3 and info is scraped from Reddit with the PRAW API.
- createDB.py - this file created the database
- deleteDB.py - this file will delete the database
- updateDB.py - this file makes structural changes to the database
- queryDB.py - this file is used for querying the database
- insertPublic.py - this file is running continuosly on the Pi and inserts the users into database as it scrapes reddit. Runs via nohup
Project is still running currently, and can be found on my Github Repository at: https://github.com/KliemannNoah/RedditDatabase
During 'CS 506 - Software Engineering' I worked with a team of 5 other students to create an application from scratch to adress a niche that was not yet filled. My group decided to work on a website that would keep track of Social Media metrics for cryptocurrencies, and compare them to their market growth.
This including work from design documents to a final presentation, using 3 agile sprints to develop the application. It required work on handling the front end websight design and layout, heavy background API scripting and Scraping, and a solid backend infastructure to connect the two. We used Heroku to host the website, and django which had a Model-View-Template Architecture. The Site was made by the end of the semester, but was taken down shortly after the free trial expired, as no one wished to continue fleshing out the project from what it already was.
Github Repository: https://github.com/KliemannNoah/CryptoCounter