{"id":130,"date":"2023-07-09T23:29:27","date_gmt":"2023-07-10T03:29:27","guid":{"rendered":"https:\/\/jamesbramlett.com\/?page_id=130"},"modified":"2025-08-29T14:38:22","modified_gmt":"2025-08-29T18:38:22","slug":"freelance","status":"publish","type":"page","link":"https:\/\/jamesbramlett.com\/index.php\/freelance\/","title":{"rendered":"Freelance"},"content":{"rendered":"\n\n\n\n<h5><span style=\"color:#bbbbbb;\"><span style=\"\"><span style=\"\">Freelance<\/span><\/span><\/span><br><\/h5>\n\n<p><span style=\"color:#bbbbbb;\">Sample E-Commerce Dashboard<\/span><span style=\"color: rgb(187, 187, 187);\"><br><\/span><\/p>\n\n\n\n\n<iframe loading=\"lazy\" title=\"ecommerce\" width=\"745\" height=\"480\" src=\"https:\/\/app.powerbi.com\/view?r=eyJrIjoiNzk4NGI5MzMtMWM0My00YzU4LTg4ODItMzFhZjg3MWMwOGFmIiwidCI6IjE2MDc0ODQzLTAyM2EtNDQyYy1hODMzLWQ3ZTMzOTE1ODdiYSIsImMiOjZ9\" frameborder=\"0\" allowFullScreen=\"true\"><\/iframe>\n\n\n\n\n<p><span style=\"color:#bbbbbb;\">Sample University Demographic Dashboard<\/span><span style=\"color: rgb(187, 187, 187);\"><br><\/span><\/p>\n\n\n\n\n<iframe loading=\"lazy\" title=\"replica\" width=\"745\" height=\"480\" src=\"https:\/\/app.powerbi.com\/view?r=eyJrIjoiYzQ4MTJiYzctMWJjNy00NDQ2LTk3ZTktZGZmNTNkYTcyMjNkIiwidCI6IjE2MDc0ODQzLTAyM2EtNDQyYy1hODMzLWQ3ZTMzOTE1ODdiYSIsImMiOjZ9\" frameborder=\"0\" allowFullScreen=\"true\"><\/iframe>\n\n\n\n\n\n\n\n\n\n\n\n<iframe loading=\"lazy\" title=\"UTK-Sample\" width=\"745\" height=\"480\" src=\"https:\/\/app.powerbi.com\/view?r=eyJrIjoiOTUzM2NkODktYTI5My00Y2ExLWI4ODctNmQ0MTA1YmVkNWVlIiwidCI6IjE2MDc0ODQzLTAyM2EtNDQyYy1hODMzLWQ3ZTMzOTE1ODdiYSIsImMiOjZ9\" frameborder=\"0\" allowFullScreen=\"true\"><\/iframe>\n\n\n\n\n\n\n\n<p><span style=\"color:#bbbbbb;\">I founded and currently manage, <a href=\"https:\/\/ut4pugs.us\"><span style=\"color:#ffffff;\">UTPugs<\/span><\/a>, an online gaming community of over 2,000 users. Additionally, along with collaboration from community members, we deployed <\/span><a href=\"https:\/\/ut4stats.com\/match_history\"><span style=\"color:#ffffff;\"><span style=\"\">UT4Stats<\/span><\/span><\/a><span style=\"color: rgb(187, 187, 187);\">, a website devoted to real-time statistical tracking of match results as well as player ratings. For this, I contributed toward both database engineering and queries using Postgresql. I have included on this page some example dashboards connected to the database.<br><\/span><\/p>\n\n\n\n\n<iframe loading=\"lazy\" title=\"Report Section\" width=\"745\" height=\"480\" src=\"https:\/\/app.powerbi.com\/view?r=eyJrIjoiNWRiOTk1YjAtZDc5OS00YzgxLTliMmMtNTRlNmZlY2NjNTJhIiwidCI6IjE2MDc0ODQzLTAyM2EtNDQyYy1hODMzLWQ3ZTMzOTE1ODdiYSIsImMiOjZ9\" frameborder=\"0\" allowFullScreen=\"true\"><\/iframe>\n\n\n\n\n\n\n<iframe loading=\"lazy\" title=\"Winter24_Seasonal_Matches_F\" width=\"725\" height=\"480\" src=\"https:\/\/app.powerbi.com\/view?r=eyJrIjoiMmVkY2QxN2EtYjA3YS00NTI4LTgwMjMtY2ExMmE1MWIwZWI2IiwidCI6IjE2MDc0ODQzLTAyM2EtNDQyYy1hODMzLWQ3ZTMzOTE1ODdiYSIsImMiOjZ9\" frameborder=\"0\" allowFullScreen=\"true\"><\/iframe>\n\n\n\n\n\n\n\n\n<iframe loading=\"lazy\" title=\"UTPugs Elim Power Ratings\" width=\"745\" height=\"480\" src=\"https:\/\/app.powerbi.com\/view?r=eyJrIjoiZTY1MTU4OTItMjA4MC00ZmIyLTlhZDMtYmZhNTZjMTczN2M1IiwidCI6IjE2MDc0ODQzLTAyM2EtNDQyYy1hODMzLWQ3ZTMzOTE1ODdiYSIsImMiOjZ9\" frameborder=\"0\" allowFullScreen=\"true\"><\/iframe>\n\n\n\n\n\n\n\n\n\n\n<p><span\u00a0style=\"color: rgb(187,=\"\" 187,=\"\" 187);\"=\"\"><span style=\"color: rgb(187, 187, 187);\">Utilizing Python, Posgresql, SQLite,&nbsp; R, and various APIs, <\/span><span style=\"color: rgb(187, 187, 187);\">I have also created a variety of programs and chat bots for this community which can be explored below.<br><\/span><\/span\u00a0style=\"color:><\/p>\n\n\n\n\n\n\n\n\n<p>This bot was created in Python3 in order to facilitate pickup games and provide match information to the community. Players are able to join and leave a list of user defined games. When a player limit is reached, it randomly selects captains who then alternate turns choosing teammates. Upon completion the data is stored in a SQLite database. This bot is also able to access our global database and provide general statistics for players.<br><br><img decoding=\"async\" src=\"http:\/\/jamesbramlett.com\/wp-content\/uploads\/2023\/07\/Discord_Z3LgI26frm-1.png\" alt=\"\" pl-media-id=\"249\"><br><\/p>\n\n\n\n\n\n\n<p>Github:<a href=\"https:\/\/github.com\/jbramle2\/Pugbot\/blob\/master\/pugbot.py\"> pugbot.py<\/a><\/p>\n\n\n\n\n\n\n<p>I created the live server reporter in order to allow users to easily view live server activity and previous match results within Discord. This bot was written in Python3 and combines information across 2 different relational databases (SQLite\/Postgres), along with API requests. It continuously scrapes database data for changes and reports them if found.<br><\/p>\n<p>This bot also records player ratings, finds their percentile score within the entire range, and assigns it to a position in a colored png image . This allows for in-game cosmetics to dynamically change based on player performance. The results of this can also be viewed at this <a href=\"https:\/\/ut4stats.com\/elim_ranks\"><span style=\"color:#0047b2;\">link.<\/span><\/a><br><\/p>\n\n\n\n\n\n\n\n\n<p>Github:<a href=\"https:\/\/github.com\/jbramle2\/ut4stats_2_discord\/blob\/master\/ut4stats_2_discord.py\"> ut4stats_2_discord.py<\/a><br><\/p>\n\n\n\n\n\n\n\n\n<p>This bot allows users to bet an imaginary currency on matches. It takes into consideration the ratio of bets for:against one team, along with the proportion of a given user&#8217;s funds in order calculate an appropriate payout. Using a JSON database referenced within Python, it maintains a user&#8217;s current pool, wins\/losses, along with variety of other metrics.<br><br><img decoding=\"async\" src=\"http:\/\/jamesbramlett.com\/wp-content\/uploads\/2023\/07\/bet_bot.png\" alt=\"\" pl-media-id=\"251\"><br><img decoding=\"async\" src=\"http:\/\/jamesbramlett.com\/wp-content\/uploads\/2023\/07\/bet_bot2.png\" alt=\"\" pl-media-id=\"252\"><br><img decoding=\"async\" src=\"http:\/\/jamesbramlett.com\/wp-content\/uploads\/2023\/07\/bet_bot4.png\" alt=\"\" pl-media-id=\"259\"><br><br><\/p>\n\n\n<p>Github:<a href=\"https:\/\/github.com\/jbramle2\/BookieBot\/blob\/master\/BookieBot_2.1.py\"> bookie_bot.py<\/a><br><\/p>\n\n\n\n\n\n\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-130","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/jamesbramlett.com\/index.php\/wp-json\/wp\/v2\/pages\/130","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jamesbramlett.com\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/jamesbramlett.com\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/jamesbramlett.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jamesbramlett.com\/index.php\/wp-json\/wp\/v2\/comments?post=130"}],"version-history":[{"count":84,"href":"https:\/\/jamesbramlett.com\/index.php\/wp-json\/wp\/v2\/pages\/130\/revisions"}],"predecessor-version":[{"id":538,"href":"https:\/\/jamesbramlett.com\/index.php\/wp-json\/wp\/v2\/pages\/130\/revisions\/538"}],"wp:attachment":[{"href":"https:\/\/jamesbramlett.com\/index.php\/wp-json\/wp\/v2\/media?parent=130"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}