Projects
Projects all lead to Github for more documentation. Click for Architecture Diagram.
Built in 24 hours for Auburn Hackathon 2024 Space Theme. React web app hosted on AWS EC2 that allows users to dynamically populate 3d rendering of playlists as a solar system. Song metadata determines factors of the planet like size, speed, and rotation. Users can click on planets to hear 30 second snippets of the song that planet represents. Employs computer vision via SciKitLearn to map album art palette to planet color gradient. Utilizes Docker to host the backend, frontend, and NGINX. AWS-EC2 Docker NGINX React SciKitLearn Computer Vision MultiThreading
Built in 24 hours for UA Hackathon 2024. React web app designed to help CGI in their recruiting efforts. The application allows mobile users to easily input information into a MongoDB database. The app implemets a combined authenticaion portal for both students and CGI staff. Endpoints are secure and cannot be accessed manually. Students can update information whenever they need, and upload resumes. HR staff can add addiitonal feedback and update any fields. They can also use OpenAI API to generate feedback based on parsing the submitted resume from the student. Docker React FastAPI OpenAI MongoDB
An AWS pipeline created with Terraform. Ansible playbooks build a Jenkins server with a build slave, which analyzes code with SonarQube, which analyzes the codes for bugs and only continues the pipeline if the app does not reach a threshold. It then builds a container with Docker, publishes on JFrog Artifactory, and deploys on Kubernetes for high availability in case of crashes. Terraform AWS-EC2 AWS-EKS Jenkins SonarQube JFrog Artifactory Ansible Docker Kubernetes
A simple web application that updates a live production through AWS automatically. Jenkins polls for changes to GitHub source code for a Tomcat server hosted web application and then executes jobs with Ansible scripts. These scripts create new Docker images with the changes, upload those images to DockerHub, and then deploy the new image into multiple pods on Kubernetes with a loadbalancer. AWS-EC2 AWS-EKS Jenkins Tomcat Maven Ansible Docker Kubernetes
Built in 10 hours for AWS GameDay Hackathon Regions 2024. A serverless AWS project that uses a full AWS SAM template. It builds an animal registry API Gateway API for new and born animals. It also uses a Cloudwatch Bus Rule to trigger a Lambda to automate the feeding for animals. Animals are stored in a DynamoDB database, and the animal processing is done through a Step Function with a Map to process the Lambda functions simultaneously. SAM (Serverless Application Model) API Gateway EventBridge Cron jobs Lambda DynamoDB Step Functions IAM
Django web application that uses Postgres to handle user data, while leveraging AWS-S3 for storage of static files. The applicaiton was containerized with Docker and the image was uploading to Amazon Elastic Container Registery (ECR) . The image was then used to deploy the applicatino on Amazon Elastic Container Service (ECS) using the Fargate serverless launch type. The deployment includes security measures with HTTPS support and a custom domain. AWS CLI Boto3 Certificate Manager Django Docker ECR ECS Fargate Gunicorn Postgres RDS Route53
A Python bookstore web scraper to extract book information from an online catalogue using Xlml, scrape that information asynchronously using Asyncio and RabbitMQ to queue work items, store information in a PostgreSQL database, allow users to query data from the created database using Flask, and pull data in a way that allows for additional book information than the website provides. The project was containerized using Docker. Python Xlml Asyncio RabbitMQ PostgreSQL Flask Docker
Built over 2 weeks for Google's AI Hackathon 2024. Program that allows recruiters to chat using Gemini to jobs and get insights into applicants. It's hosting with a React frontend, a FastAPI backend, and connects with Google Cloud to produce candidate information in a conversation like format. It uses RAG to reduce hallucinations by storing data in Pinecone and passing the embedded data to Gemini with the help of VectorAI React Auth0 Docker TailwindCSS Uvicorn FastAPI Dotenv Pinecone Gemini VertexAI MongoDB
A C# and React JS GUI that connects to Microsoft Sql Server using .NET Entity Framework CORE to do CRUD operations to manipulate movie data. The user can add, like, delete, and sort data in various ways, and these changes with be reflected in the sql database and the GUI. C# ReactJS Microsoft SQL Server .NET6 Entity Framework Core
An AWS project that uses Lambda and SNS to allow users to access a Flask webserver to upload files. These files can then be shared via email with recipients recieving links to download uploaded files. User information is stored in a MySQL RDS Database. AWS Lambda SNS Flask MySQL
This project uses various Github Custom Composite Actions, Javscript Actions,and Docker Actions. Using these custom actions, I set up a CI/CD pipeline and deploy a static website to Amazon S3. These actions are trigger automatically upon code commit. Github Actions Github CI/CD Composite Actions Javascript Actions Docker Actions AWS S3
This project uses Jupyter Notebooks to produce to a Apache Kafka Stream hosted on AWS MSK. The stock market API data is consumed by a Jupyter consumer and stored in S3. An AWS Glue crawler takes the S3 Json files, and transforms them into a data catalog for AWS Athena to query against in real-time. Kafka Jupyter Notebooks Pandas AWS MSK AWS EC2 AWS Glue AWS S3
This was a commisioned project, so the source code is private. Users access the application on any webpage via an embeddedable iframe. The appliction's React frontend is hosted on Firebase and the backend is hosted on Google Cloud's Cloud Run. The FastAPI API communicates with OpenAI's API to generate AI responses. When code chnages are pushed, Github Actions deploys the frontend and backend. It builds a Docker container, which is stored in Google Artifact Registry, which is pulled by Cloud Run. Secrets are stored on Github Secrets and Google Secrets Manager. Github Actions React Firebase Google Cloud Google Cloud Run Google Secrets Manager Google Artifacts Registry Google Secret Manager OpenAI API Docker FastAPI
This project demonstrates how to build a company AI agent using Amazon Bedrock and Claude 3 Sonnet to interpret user inputs and execute corresponding API operations via AWS Lambda functions. The agent leverages semantic matching to map user prompts to API descriptions defined in an OpenAPI schema. Banking records are stored in DyamoDB, returned to the Bedrock Agent, which uses RAG Retrieval-Augmented Generation similarty search in an Bedrock Knowledge Base from an OpenSearch vector database, with vector embeddings generated from company pdf stored in S3 RAG Bedrock Agent Bedrock Knowledge Base Claude 3 Sonnet Lambda OpenAPI Schema
Dockerized Python application that runs a Streamlet UI for an AI Chatbot. The chatbot uses Langchainedrock, specifically anthropic's claude-3-haiku LLM. The chatbot uses Langchain to keep track of the conversations memory and give contextually accurate responses. Langchain Bedrock Claude 3 Haiku Streamlit Docker
Dockerized Python application that runs a Streamlet UI for a RAG (Retrieval-Augmented Generation) document question and answering bot. The pdf is loaded, split into chunks, and turned into embeddings by AWS Bedrock's Titan Text. These embeddings are stored in Meta's FAISS Facebook AI Similarity Search. The question that the user gives is embedded, and Langchain performs a similarity search on the question, grabs data context from the Vector storage, and passes that context and question to Claude v-2 LLM, which gives the user a response. Langchain Claude-v2 Titan-embed-text-v1 FAISS Streamlit Docker Langchain
A Python project that investiagates HuggingFace's Transformers and NLTK, but ultimately Implements SpaCY to add a sentiment section to an PostgreSQL database of posts, and populate those with sentiment polaritys based off the content of the post. The SQL query uses a batch format to make the program run faster. Python HuggingFace NLTK SpaCY PostgreSQL
GraphQL Server implemented with Go and MongoDB. Basic queries and mutations, the server can be used to create a dog, get a dog, and get a list of dogs. Golang GraphQL GqlGen MongoDB
The purpose of this project was to learn about software development methods, learn to implement software as a team, and produce a dashboard to control a drone for modernized agricultural development. It was developed in Java with the JavaFX GUI. The drone was controlled via the Tello SDK. Java JavaFX Tello SDK
An AI automated devops architecture visualizer. It's a React webapp that either accepts a Github repository link or a manual description of a project. It then prompts OpenAI API to create a graph in the format required by custom edges and nodes from ReactFlow. The graph is then visualized and can be edited as well as interacted with to learn more about how to project connects. OpenAI Docker TailwindCSS TypeScript ReactFlow ReactRouter FASTapi Uvicorn Dotenv ElkJS
I created this tutorial to teach students about Github Actions and CI/CD Pipeline tools. This project auto-generates comments on issues created in this repository, as well as explains in detail how to develop and setup basic workflows. Feel free to check out the README to see the presentation in detail. Github Actions Github CI/CD React Javascript
This application creates a simple way to interact with data on the cloud through an abstracted WebApp. A .NET8 application that allows users to add, delete, and view the contents of Blobs and Containers. Users can easily create both blobs and containers and then adjust the content of each. Azure .NET8 C# Blob Storage Blob Service Client
An AWS Amplify React application that allows users to sign in using Amplify's authenication through Cognito User Pools, then add comments and files to a group dashboard. A user can upload files for all other users to see and download, as well as add comments. Files are stored in S3 and comments are stores via GraphQL into a DynamoDB table. Amplify S3 Cognito DynamoDB React GraphQL
A Javascript and ReactJS application that uses MongoDB to store data and Mongoose to create models to alter data, and Express to create endpoints to access data. It uses JsonWebToken to ensure user authentication when attempting to use various data routes and it encrypts and decrypts data with CryptoJS. This application allows users to create accounts, access products, add them to their carts, and more. Javascript ReactJS MongoDB Mongoose Express JsonWebToken CryptoJS
Selenium webscraper in Python that takes patient case data from appointments from an excel document with Pandas and automatically inputs and submits that data in the hospitals record system. It interacts with easy and complicated dropdowns, as well as selecting health codes based on various matching. Selenium Pandas Python PipEnv XML
React webapp that uses a FastAPI to server an API with Uvicorn. It uses the Spotify API to grab album art, stitch them together with Pillow and then return the image to frontend, where users can download their custom album-stitched background. Album amounts and resolution of image can be customized by the user. The application gives demos of what the image might appear like in their smartphone screen. Python Pillow Pandas Uvicorn Requests PDM NumpyFastAPI React
A work-in-progress game built from the ground up in Python using the Pygame library. Incorporates graphics, collisions, classes for various entities, world maps, animations, maps that update with player position, and more. Python Pygame
A parser that parses an S-expression language for Polish notation and converts it into an AST using the structs defined in the lib.rs file. The language supports 4 artihmetic operations: +, -, *, ^ where arguments can be integers or other polish notation expressions. Parentheses are optional for binary operators, but are mandator in other k-ary instances. Rust Recursion
A Standard C program takes in command line arguments and presents different data to the user depending on the flags the user provides. All flags can be used in conjunction with one another to produced subsequently more limited results for the data output. The data can be limited based on file size, file type, file name, and the user can execute any command on the specfically selected data. Standard C Linux
Using API Gateway, a user can call this Lambda to use Bedrock to access Stability's Stable-Diffusion to generate an image of the prompt. This image is stored in S3 and a Presigned URL is generated and returned to the user. Users can also call the other route for various tasks, such as text summarization. API Gateway Bedrock Stable-Diffusion S3
Python project that uses the Torch and Lavis Libraries to implement image captioning and visual question answering. The user uploads an image locally and then can prompt questions about the image. Python PyTorch Lavis
Rust project that places rectanges into a plane and then recursively calculates the area by using a QuadTree data structure. The recursion splits each quadrant into 4 quadrants. It will mark one quadrant as completely filled when inputting rectangles. If the rectangles overlaps with multiple quadrants, it will only insert the intersections. Areas cannot be double counted because if a quadrant is already filled it does not add the area. Rust Recursion
One of three projects created using Go to learn more about the language more. This project utilizes Go Routines for concurrency, Channels to connect them, and Wait Groups to prevent race condition errors. This application is a CLI application that takes in flags in order to translage a phrase from one language to another. Go Concurrency Go Routines Channels Wait Groups
React to-do list containerized with Docker. Purpose of this project was to learn more about containerization. Users can add new items to the list, check them as completed, as well as delete them from the list. React Docker Javascript
A Java Swing GUI that a bookstore manager could use to keep track of the inventory of his bookstore, all of his customers, and which customers were renting which books. Java Java Swing
Takes in CSV data in Python, passes that data to MySQLWorkbench alters the data in MySQL, and using Pandas, returns a table of the result as well as updating the CSV data. Python MySQL MySQL Workbench Pandas
Python project that reads pdf tables using Tabula and transfers that data into excel using Pandas library to increase ease of access to the data. The data is then stored in a local folder. Project was containerized using Docker. Python Tabula Pandas Docker
A personal website with a Javascript contact form that makes an api call to Web3Forms.com to send an email to mfkimbell@gmail.com. The website responds to size, and looks clean and professional on IOS. Styling was built with Bootstrap and various snippets of css I've found. It's hosted on Google Domains Javascript BootStrap Google Domains