Austin Bristol

bristola@allegheny.edu

Profile Picture
LinkedInGitHubTwitter

Large Projects

  • Spotify Playlist Creator
    • GitHub Link
    • This project is a website which allows you to quickly create Spotify playlist based on a certain number of options. From one playlist, you can create another playlist which has only songs of a certain genre, artist, album, popularity, etc. The backend of the server which handles requests as well as Spotify authorization. It uses Spring Boot as a website framework and the Spotify web API.
  • Distributed Java Workflow
    • GitHub Link
    • This Java project was originally made for a distributed computing class. The system allows the user to chain together a workflow or an acyclic graph of Java code tasks. It will take the tasks and execute them automatically on different amazon web service instances. This is all based on filling out config file before execution.
  • AI Soccer game
    • GitHub Link
    • This project is a game developed from scratch in Python using various libraries and developed with a classmate. It is a physics based soccer game with an AI controlled player. A link to a demo of the game can be found in the README of the GitHub repository.
  • News and Social Media Analysis
    • GitHub Link
    • This project is currently being developed for my senior project at Allegheny College. It is a large Python program which collects and analyzes large amounts of media data. It will also have a website front end to interact with.
  • Database Grapher
    • GitHub Link
    • This Java project was to be able to automatically make graphs using an Sqlite3 database. Just simply put a Sqlite3 file in the Database directory, and run the program using the instructions. Detects various databases, columns, variables, and foreign key relationships, and automatically creates either a bar graph or a line graph.
  • Automatic Crypto Currency Trader
    • Source code private
    • This is a large Python project made for the company Azariel Technologies LLC which I have co-founded. Automatically trades crypto currencies using different methods such as market analysis, and runs the programs with amazon web services.
  • Interactive Lecture Website
    • GitHub Link
    • A website written in Python with the Flask framework. The goal of the project is to make a common place for teachers, and users to share lecture content and to interact throughout the lecture. This project is not completed and will be continued to be worked on.
  • Day Planner
    • GitHub Link
    • The final project for an analysis of algorithms class, and this project was written with a classmate. It will automatically plan out a restaraunt and activity for users to do based on their locations, likes, and dislikes.
  • Gator Grader
    • GitHub Link
    • Gator Grader is a tool developed in Python which allows users to check the correctness of students work. It allows for many configurable checks, and when used in conjunction with Gradle, can be used to easily check that all work is completed for an assignment. I have participated in the development of this software system in Computer Science 481. Our group has worked on a new sample repository for new users to easily get latex projects working. Also, we developed a new feature to the gatorgrader system; we developed a regex checker, so that the user can check for regular expressions in different files.
    • Week 1: In the first week of working on this project, we just set up the outine of what we planned to do. We joined a team in the class, and our team was given a task. Also, we worked with our team to ensure that every member could run, test, and develop gatorgrader. I was able to get stuff set up on my computer fairly easily, but few team members had to work around some computer challenges at this stage.
    • Week 2: Our first assignment as a team was to create a sample latex assignment that demonstrates the functionality of gatorgrader. My team members added all the necessary files, much like the Java or Python sample repositories. Namely, a sample latex file and bibtex file were added in order to show how gatorgrader can be used for this sort of project. This week, I added the gatorgrader.yml file, and added some preliminary checks that would be common in a latex project. This ensured that we could get gatorgrader working with our latex project.
    • Week 3: This week, we continued to work on enhancing our latex assignment starter repository. We also started to think that having a more variable way of counting fragments would be helpful. Discussing with other teams, we determined that having something like regular expression support would be a much welcomed feature. This way, you can go above and beyond just normal fragment counting. We started to analyze existing code, and determining how this feature would fit in. I started by writing some code for regex checking with my team. I added functions for checking regex counts and valid regex checker. This feature was originially added to the existing fragment checking functionality. I just made the checking function that was used for counting the current fragment be our new regex checker if the user input fragment is a valid regex. This implementation was a little faulty due to not knowing that we wanted regex to be our own argument.
    • Week 4: During week 4, we changed how regex checking worked. Instead of going through the existing fragment checking argument, my team and I added a new argument. I wrote a lot of the orchestration and invocation code to get regex checking functionality to work in the system. My teammates worked on adding a brand new argument for regex, that will help determine when we run the checks that we added. Also, we worked on adding test cases for all the new code that we added for the new regex functionality. After this week however, our code still broke when running our new argument.
    • Week 5: We started where we ended this week; working on the regex functionality. Whenever we used the regex argument, we got an error saying that we had invalid arguments. We were finally able to figure this problem out. The problem was that in the arguments code, it checked to see if there was a valid check command. This ensured that a check argument existed, but a fragment did not exist. The reason our code was failing was that we had to check to that a regex did not exist either. After we added this to the function, our code worked and everything continued as expected. We continued to enhance the test suite, and test our code with the latex starter.
    • Week 6: In the final week of development, we made final changes to our software feature implementation. We had small bugs in the code to fix, including one which caused the entire tool to crash if invalid regex was input by the user. This, along with others was fixed by the team. Likewise, we had multiple problems with linting tools which were causing the build to break. We worked together as a team to figure out where the problems originated and fixed them. Also, this required us to converse with a maintainer in order to tackle a linting problem out of our control. Finally, we ensured in this final week that the test suite still maintained a 100% coverage, as well as all tests still passed. Both of these tasks were completed as we opened a final pull request to add our final feature to the production version of Gator Grader.
  • Petition Pronto
    • GitHub Link
    • Petition Pronto is a work-in-progress system that will allow students to upload a petition for a change in, for instance, their graduation requirements. Along with giving faculty a way to vote on the petition, this system will then automatically notify students of the result of the vote.
    • For this second project completed for cmpsc441, my team and I developed "Petition Pronto". We were tasked to create a software system which allows students to submit petitions for their class and curriculum, as well as allow professors to respond to these submissions. This system allows a way for all users to complete their necessary tasks easily and efficiently. The way we were to implement these requirements were up to us.
    • As team we first decided the broad methodologies by which we were to complete the project. We determined that using a web interface was the easiest and most straightforward way for our users to use the system. By using the Python web framework flask, we have been able to create a fully working website that students and professors can use to handle class petitions.
    • There are many features to this project. Namely, students can easily go to our website, and submit their own petition. This petition will be assigned to all the professors in the related department to review for approval. Professors can log in to the system based on the administrators signin credentials that they assigned. Professors can do things such as change their password to their liking. Upon signing in to the website, professors are prompted with the petitions that were submitted to their department. By clicking on different petitions, professors can review the petition as well as give their approval or disapproval. Once all the professors review a petition, students will get an email notification telling them the result.
    • In order to store all the data that this website needs, we have developed many different tables in an sqlite3 database. This is queried through Python once users make requests to different flask routes. These two technologies in tandem allow the system to effectively accomplish the goals we set out.