THIS WEBSITE!!!
I built this website from scratch using Django to handle web services and Bootstrap 4 with Material-Dashboard created by Creative-Tim for the theme of this site along with Social Buttons and Font Awesome. I am looking to update this website as I continue to learn more about web design. As I add something new to the site I'll be sure to log it here.
Update 1:
- Added reformatted resume
- Added a download button for my resume at the top of the page
- Fixed formatting issue with download button on resume page colliding with navbar-toggler on mobile
- Fixed the bision
- Added a new personal project and took out the dead buttons on project page
Team/Solo Projects
GitHub
AI Attendance Tracker
This was a collaborative project in a group of three for my AI class. The goal of this application was to create an attendace software that would use facial recoginition and identification to record whether a student was present in the class. To accomplish this, we used Microsofts Face API for facial recognition and identification. Dlib is also used for facial detection on a photo taken of the classroom. This had to be done since the free tier of Microsoft's Face API allowed for only a certain number of calls to the server. The program used an SDK called cognitive_face which would handle all of the JSON requests made to the Face API server. The application used a SQlite database to keep a record of the student name, id number and a microsoft key that served as an identifier for the student stored in the Face API server. For this project I was responisble for creating add_person_faces, add_student, create_person, create_person_group and database_commands so we could interact with the database with some simple commands for testing purposes and doccumenting the project. At the moment the project remain unfinished since it was a proof of concept. I need to add to the database that would keep track of attendance and add a UI so the program doesn't have to run through the terminal.
GitHub
NASDAQ Web Crawler
This was a collaborative project in a group of six for my Software Engineering class. The goal of this was to experience a development cycle for a piece of software. We were given a story from the client as to what the program should be. In return as the developers we were supposed to create a a web scraping function that would scrape the https://www.nasdaq.com/options/ pages for the headline, symbols in the headline and the associated text for each of the symbols in the headline. The app then needed to follow the links on the page and screen scrape the content on the page and place the data into the database. The UI needed to alllow ther user to search each of the data elements via a search page and a results page would then be displayed showning all of the data in the row. It was also required that the data present in the results page could be exported to a CSV or PDF file. All of this was only supposed to be accesible after the user logged on using a registered account or registering for a new one. The user credentials were then stored on a SQL database. I was responsible for the frontend of this project. Together as a team we came up with a template for how the layout of website should look like including the theme used. I implemented all of these design choices and chose the colors used throughout the website. This was my first time building the frontend of a website and I learned a ton from this project. At the beginning I had no idea where to even begin, but luckly I had a great team that helped to point me in the right direction and feel confident in my ability to build the frontend.
HW Bot
I designed this bot to submit my HW for a class I was taking. The bot was built in Python along with the Selenium and Schedule libraries. The bot would run continuously in the background of my homeserver until schedule was triggered once a week to initiate the bot script. The bot would then navigate Blackboard from the login screen all the way to course messages. The bot then selected my Professor as the recipient of the message, drafted a short message with my name and student ID, then finally navigated to my HW directory and selected the appropriate assignment for the week. In the version uploaded to GitHub it will not be able to login to my Blackboard since I've taken out all of the credentials needed to do so. I do not want to compromise my Blackboard account, but you can still get an understanding of how the code works.
Object Detection Using Haarcascade models
This is a work in progress project. I don't have anything to show at the moment, but I will update as the project progresses.
My interest in Haarcascade models stems from the Attendance Tracker project done for my AI class. Before using Microsoft's Face API, we explored using Haarcascade models. As a fun project I though I'd build multiple models for different objects and bring all together in one app. I want to create some UI to make the experience nice and easy for users. I want to practice designing software for users and making it as simple to understand as possible.
Python
GitHub
Classifier Evaluation
This was a project for my data mining class. We were allowed to use libraries from Scikit, specifically the classifiers. The classifiers used on this project were support vector machine (svm), decission tree (dt), linear discriminant analysis (lda) and random forest classifiers (rfc). The classifiers were trained on the dataset "cancer-data-test.csv" and tested on "cancer-data-test.csv". The ressults for both tests can be found in the documentation folder in the file "Solutions.pdf".
GitHub
Classifiers Written From Scratch
In this project for my data mining class, we were tasked with creating our own classifiers from scratch. The classiefiers made in this program are Information Gain, Gini Index and CART index. We were only allowed to use numpy library for matrix manipulation and the math library present in python. We were given the formulas and had to implement them into three seperate methods. The program then had to load up the dataset called "train.txt" and store it in a numpy array. The array was then passed to a method called "best_split". "best_split" was tasked with finding the best column and threshold to use on the dataset for each classifier. Each classifier would then be called using the best column and value found by best split as its parameters. The program then runs again on the "test.txt" using the best column and value it learned from the "train.txt" file.
GitHub
Eigenvalues and Eigenvectors
This program computes the laplacian and the symmetric laplacian matrices. It then takes the eigenvalue list and finds the index with the smallest value. The smallest value index is then used to graph the values at the same index in the eigenvector array.
GitHub
Graph Search
These graph search algorithms were for my AI class. Pictures of the graph are available in the word documents. The graph search algorithms that can be found here are depth first search, breadth first search, uniform cost search, greedy search and A* search.
Java
GitHub
Square Root
This program calculated the square root from scratch. Didn't use the square root method present in the math library. The only method used from the math library was abs.
GitHub
Ellipse Object
This ellipse program gets the radius, color and area of hard coded ellipses.
GitHub
Friend Of A Friend
Receives a JSON post containing a 2 element list containing the name of a person and their friend. The program returns a list of names that have a connection by a friend.
GitHub
Hashing Algorithm
Looking for strings that contain the same characters by running a hashing algorithm and comparing values. Multiple characters in a row will be disregarded.
GitHub
Points Within A Polygon
The program receives a JSON post containing a set of points that form a polygon. If the points do not form a polygon, the correct answer will not be returned. The size of the polygon is limited to a 19x19 grid but this can be altered by modifying an embbeded for loop. A JSON response is sent back containing a list of points within the polygon.
GitHub
Priority Queue
This program receives a JSON post that contains a series of names, commands along with a numbers representing priorities. The commands are enqueue and dequeue that determines what happens to the names stored in a list. The JSON response sent by the program is a final list after all the commands have been performed.
GitHub
Sorted List
This program receives a JSON post of an integer array and returns a sorted JSON array.
C/C++
GitHub
Context Free Grammar Addition
This project uses Flex and Bision to create a grammar rule for the addition, subtraction, multiplication and divsion of positive integers.
GitHub
Number Sorting
The program reads inputs from the keyboard and creates a list. This list is then sorted using insertion sort and displayed to the user via terminal.
GitHub
File Grep app
This program aims to replicate the functionality of grep. The argument format the program accepts is "filegrep PATTERN FILE" where pattern and file are fields to be filled in by the user. Should be noted that FILE does not need to be a file and can also be a directory. The program then performs a grep like search in the file provided and returns the line number and line that matches the pattern provided.
GitHub
Replicating the ls -al command
The program aims to mimic an ls -al command when inputted into a terminal. The program accepts either a file or directory name. If a directory is given as an arguement all files and details about the file will be printed out to terminal. If a file is given as an argument, the details of that specific file will be printed out to the terminal.
GitHub
Minimum Number in Array
The program accepts a user inputted list of numbers through terminal. The lowest value in that list is then returned to terminal. I put all of the work into the main method since it was a very simple program and at the time I didn't think it warrented its own mehtod. I found the lowest number by sorting the list of ints using insertion sort and returning the first index of the sorted list.
GitHub
Linux Permission Values
This program accepts a user inputted list of characters through terminal. The list of characters represent linux file permissions and will return the numeric value for the permission. The program calculates the numeric value of a permission by parsing through the characters and keeping a running total for the owner, group and user. Once the character string is parsed through, the final totals are returned to the terminal.
GitHub
Command Line Inputs (ints) Sum
This program accepts a list of integers as a command line arguement. If a list of integers is not inputted along with the command the program will return the message "no input numbers". Otherwise the list of numbers is totaled and returned to terminal. If a number is not inputted the program will alert the user and continue to add the rest of the numbers.
GitHub
Sum of an Array
This program accepts a user inputted list of integers through the terminal. The list of intergers are then summed up and returned the to the terminal.
Assembly
GitHub
Assembly Basic Skills
In this repository basic skills in assembly are stored here. This was the process I went through to learn how to use assembly code.
GitHub
Number Manipulation
This assembly program will count the total number of inputted numbers, returns the largest integer, outputs the number with the most 1's in binary and the number of ones in binary by descending order.
I am proud of this program since I had to learn assembly in just 2 days. While the final part of the program does not work, I still think this program shows my ability to pick up a new language and turn around a product quickly.