Electrical & Computer Engineering + Computer Science Projects Showcase

Computer Science Projects

Here are some projects that I have recently completed. I have worked on many projects in the past, but I feel these are worth showcasing.

An easy-to-use communications application for Linux that includes video, voice, and text chat. Users can also send files to each other.

Linux - Communications Application

An advanced encrypted social media application that includes everything required for modern standards.

Windows - Encrypted Social Media Application

A multithreaded web crawler for Linux

Linux - Web Crawler (WIP)

Encrypted Social Media Application (ESMA)

Programming Languages Used:

  • C# for client and server

  • ​PHP 8 (register and login)

Compatible Operating Systems:

  • Windows 7+

Features: Including but not limited to

  • Server is multi-threaded. Both UDP and TCP are utilized. Each room has a unique UDP socket.

  • Accounts with profile pictures.

  • Add friends.

  • Create encrypted (using room hash key) temporary and saved chat rooms that include - voice chat - sending audio, video, image, and file messages - creating channels - adding custom roles with different abilities.

  • Direct messaging with asymmetrical encryption (signal style).

  • 1-1 Calls

  • Profile window can display user's social media.

Link :

Linux Communications Application

Compatible Operating Systems:

  • Linux (tested on Linux Mint 21.1 Cinnamon)

Programming Languages Used:

  • C++ for client and server​

Features:

  • Server is multi-threaded. Both UDP and TCP are utilized. Each room has a unique UDP and TCP socket.

  • Voice chat

  • Video chat

  • Text chat

  • A user can initiate a file stream and other users have 10 seconds to decide if they want to receive this file.

  • ​Easily create rooms with up to 4 users

Link:

Search Engine Web Crawler (WIP)

Compatible Operating Systems:

  • Linux (tested on Linux Mint 21.1 Cinnamon)

Programming Languages Used:

  • C++

Features (So Far):

  • Starting from seed website, collect html data from all websites within all sub websites (this is a multithreaded process).

  • Retrieve formatted web page text and headers using Gumbo Parser and convert pdf pages to formatted text using Poppler. Once converted, data is stored in a file with the url string's md5 signature as the file name.

  • If link fails, the program tries it again using 4 other different proxies, and if all else fails, it gets put in a queue (as a physical file), so that the program may come back and try it later.

Link: ​Unavailable (For Now)

Electrical/Hardware Projects

Technologies Used:

  • KiCad 8 PCB Designer

Features:

  • Modified and assembled the OpenLST UHF CubeSat radio by Planet Labs. Successfully built multiple functioning units through complex surface-mount soldering using reflow on a hot plate.

Setup Guide I Made

UHF Radio Assembly

Portable Ground Station for Low Earth Orbit Satellites

Technologies Used:

  • Blender3D

Features:

  • Made a tablet, with a modified compact Raspberry Pi to serve as the core,integrated a 4G module and an uninterruptible power supply, and housed the system in a complex 3D-printed enclosure designed in Blender 3D.

Technologies Used:

  • Blender3D & C++

Features:

  • The computer module is in itself considered the ground station. This computer contains a custom 3d printed case with many output ports on the back; these ports are a high power RF, 2 stepper motors for azimuth and elevation, 2 USB, 1 UART for azimuth and elevation detection, and a 36V input port which powers the device. The heart of this device is the Raspberry Pi 5 which controls all other modules such as radio and stepper motor driver.

  • A professional and advanced networking system utilizing multi-threading and both UDP and TCP sockets that was designed to handle a massive amount of clients. This networking system allows the streaming of synced audio and video to the clients. This software runs on Linux and was coded in pure C++ to ensure maximum performance.

Ground Station Client Tablet

Ground Station Computer Module

Technologies Used:

  • Blender3D & C++

Features:

  • At the heart is the BNO085 absolute rotation sensor using a UART connection. It constantly streams over vector rotation for various purposes which will be utilized on automatic antenna adjustments.

Ground Station Azimuth & Elevation Sensor

CubeSat Electrical Schematics

Technologies Used:

  • KiCad 8

Features:

  • Flight Computer

    • System watchdogs

    • Magnetometer

    • Gyroscope

    • NOR-Flash non-volatile memory

  • Attitude Control

    • 2x Magne-torquers

    • 1x Reaction wheel

  • Electrical Power System

    • Over-voltage protection

    • Over-current protection

    • Solar charging

  • Sun Sensor

    • Photo-diode matrix style

Link: