Projects
This web page list all projects that I have worked on during my time at Georgia State University, as well as some personal ones. Projects are organized by the year they were initially written in.
License Information
Most of the major projects in this page use the MIT License and thus can be modified and distributed provided that the license is kept. Unless specified otherwise, projects without a license implicitly have the MIT License applied to them.
2020
CSC 4110 Project: Pi Rain Alert
Description
Rain alert is a C++ application for Raspberry Pi that monitors rainfall measurements from a connected sensor and sends daily notifications and error messages to a stored email address through SMTP (Simple Mail Transfer Protocol). Rain Alert makes use of CMake in order to allow the program to be compiled on a variety of different platforms. These platforms are limited to any UNIX or Linux machine. The application was designed for usage on Raspberry Pi Zero, but will run perfectly well on any Raspberry Pi device. The application runs quick and only occupies several megabytes of RAM. Rain Alert can run with a basic text-based UI or a text-based UI based on Newt.
GitHub Link:
https://github.com/ucarlos/CSC4110-Rain-Alert
CSC 4320 Project: SF Music Player
Description
SF Music Player is a small music player written in Java for Android devices that combines elements of a file rowser application and audio player. To play audio files, the user must navigate the phone's file system and manually add each audio file into a database. Then, after selecting a track from the database, the user will be able to play the audio file. Audio playback can be paused, resumed, and stopped. Audio playback runs in the background, allowing for audio to be heard while the user is opening other apps or has the phone screen off.
GitHub Link:
https://github.com/ucarlos/CSC4320-SF-Music-Player
Rsync_Path
Description
Rsync_Path is a small Python program that acts as a wrapper around rsync , allowing users to select what folders they wish to download from a remote UNIX machine. Rsync_Path provides a threshold limit, preventing a folder that is smaller than the limit from being downloaded. Currently, Rsync_Path requires that the source computer be a UNIX/Linux machine, but I have plans on creating a device-independent method.
GitHub Link:
https://github.com/ucarlos/rsync-path
Romanjize
Description
Romanjize is a small Python program that converts Japanese audio tags into English using google translator and uses translate-shell in order to Romanize Japanese text into a form that can be displayed in Latin characters. It also allows for audio conversion using ffmpeg. This application came from a desire to enable Non-English music to be displayed properly on cars that could only display ASCII or Latin-1 characters.
GitHub Link:
C Doodles
Description
This repository contains multiple minor C and C++ programs that I have written in my spare time. Each program can be compiled individually through the use of GCC/G++ or any other compiler. The project can also be built using CMake.
The repository contains programs such as
An Implementation of std::vector
Text-based implementation of Snake
Text-based implementation of Connect Four
Text-based implementation of Tic-Tac-Toe
Github Link:
Programming Principles Using C++ (Chapters 12 - 14)
Description
Chapters 12, Chapter 13, and Chapter 14 contain solutions to various GUI problems presented in Bjarne Stroustrup's Programming Principles Using C++. The FLTK (Fast Light Toolkit) library used a custom connector class which had to be modified to compile on Linux. A Bash script was also written in order to allow for single program compilation on Linux machines.
GitHub Links
Principles of Practice Using C++ (Chapters 17 - 21)
GitHub Links
2019
CSC 4360: ElderCare
Description
ElderCare is an Android application that assists the elderly in paying bills, managing medicine events, making shopping lists, and keeping track of fitness. This application was a group effort, where Brandon Harris, Juan Cortes, Muhammad Ali, and I wrote the application over the course of a month.
GitHub Link
CSC 4370: PHP E-Commerce
Description
I developed a virtual agent application that can simulate booking flights and parking. The application was written in JavaScript, HTML/CSS, PHP, and MYSQL and allows the user to book flights and parking lots. I implemented user registration and login/logout capabilities, and the user can purchase airplane tickets and parking locations through a shopping cart system. A MYSQL Controller was written to connect to a MYSQL database in order to populate it with users, shopping carts, flights, and parking lots.
GitHub Link
CSC 4370: JavaScript Sliding Puzzle
Description
A Sliding Puzzle game I made with JavaScript, HTML and CSS. A random image is selected when the website is run, and the puzzle is randomized depending on the difficulty level. A puzzle solver is also included, which solves the puzzle for you. Additionally, a random audio track plays during the game.
GitHub Link
Float to IEEE
Description
Float-to-IEEE is a small application written in C that enables a floating-point number (In single or double precision) to be separated into its Sign, Exponent and Fractional components. This information is then displayed in a column, along with additional information about the floating-point value. This project came from a desire to automate the process.
GitHub Link
https://github.com/ucarlos/Float-to-IEEE (C Version)
https://github.com/ucarlos/Cpp-Float-To-IEEE (C++ Version)
Principles of Practice Using C++ (Chapters 7 - 9)
Description
This repository contains solutions to several chapters from Bjarne Stroustrup’s Principles of Programming Using C++ (2014). These solutions were written on a Linux machine, but should work on Windows and macOS since it only uses the standard C++ library.
Source Code Link:
https://drive.google.com/file/d/1DgHbm89yfFTo9pu92-QiSsz8nA6rCH4e/view?usp=sharing
2018
CSC 4350 Project: Mechanical Car Workshop Manager (MCWM)
Description
This project was developed as part of a group (Team ABKU) and uses SQLite, JavaFX and custom XML to create a Java application that manages a car workshop. MCWM provides car workshop managers an clean and simple interface to order car parts, manage repair jobs and calculate monthly expenses.
Source Code Link
https://drive.google.com/file/d/1ws-WdguFfL6TSnuh5iWMuSvXoLzOxRaU/view?usp=sharing
CSC 4520: Design and Analysis of Algorithms
Description
Contains all assignments written for the course.
Source Code Link
https://drive.google.com/file/d/1limOKUmzQnXt4QEX93wopgwIEoRKtB0t/view?usp=sharing
Principles of Practice Using C++ (Chapters 1 - 6)
Description
This repository contains solutions to several chapters from Bjarne Stroustrup’s Principles of Programming Using C++ (2014). These solutions were written on a Linux machine, but should work on Windows and macOS since it only uses the standard C++ library.
Source Code Link:
https://drive.google.com/file/d/1_6OCdHgo5ea7Vppq701-Cr6iK0HDzHRV/view?usp=sharing
Computer Systems Solutions
Description
This repository contains all practice and homework problems that I have worked and solved while reading Randall Byrant's Computer Systems: A Programmer's Perspective.
Second Edition
Contains Practice Problems for Chapter 2 (Integer and Floating Point Representation) and Chapter 3 (x86 Assembly)
Third Edition
Contains Chapter 3 (x86-64 Assembly)
GitHub Link
https://github.com/ucarlos/ucarlos-computer-systems-solutions
2017
C Primer Plus Problems
Description
This repository contains all the program solutions that I wrote while reading Stephen Prata’s C Primer Plus in 2017. These programs are the earliest C programs that I have written and contain Chapters 9 - 17 of C Primer Plus. This includes topics such as pointers, C-style string, The C Standard Library, and various data structures implemented in C.
GitHub Link
https://github.com/ucarlos/uly-c-primer-plus-solutions
DND Dice Roller
Description
A small DND dice roller program that I made for DND sessions. Written in C.
Source Code Link
https://drive.google.com/file/d/1hnpnTJWzPDWBU68GnYKgtKgm2pNfuvXQ/view?usp=sharing
CSC 3320: System-Level Programming
Description
Contains all C program assignments written for the course.
Source Code Link
https://drive.google.com/file/d/1-AmXAdtdyZVwXRoq-Rt7uKD6D1Xpcf-s/view?usp=sharing
2016
JavaFX Calculator
Description
Calculator.java is a small calculator program made with Java8 and JavaFX that preforms normal arithmetic. This program was one of the first programs I made with JavaFX.
Source Code Link:
https://drive.google.com/file/d/1R7SPw3up3ATTgILcvInKG_-2Xpp1_MXT/view?usp=sharing
Eight Queens
Description
Eight Queens is an implementation of the Eight Queens problem written in Java with some help from Charlie.
Source Code Link:
https://drive.google.com/file/d/1R7SPw3up3ATTgILcvInKG_-2Xpp1_MXT/view?usp=sharing
Deck Cards
Description
Deck Cards is a small card project game written in Java and comes with Java Swing and JavaFX versions.
Source Code Link:
https://drive.google.com/file/d/1TlOWt2fi9_TyPfkwc9Kuo-a0xiXOni3Y/view?usp=sharing
CSC 2720: Data Structure Assignments
Description
Contains all assignments written for the course (In Java)
Source Code Link:
https://drive.google.com/file/d/1yIZebLU2Tgyt0xiRpO9lLB_a42xQzl0L/view?usp=sharing