-
-
Title screen for PeerPulse
-
Main screen for PeerPulse
-
Connected Clients show up in the top right corner waiting to be accepted to users
-
Accepted Clients show up on the left tab
-
User can choose to view script before sending by pressing "s"
-
Once user decides to run code, information recieved and sent by clients shows up in the right tab
Inspiration
We at PeerPulse were inspired to develop our app because of high barrier to entry that deep learning and other computationally expensive tasks bring to the tech atmosphere. Hardware is becoming more important by the day, and students and many personal developers do not have the capital to invest in enterprise-level hardware that is necessary to keep up in today's day in age. However, most people have access to plenty of consumer grade hardware that should help with this problem.
What it does
PeerPulse establishes a centralized network where clients can come to donate their computing power. Clients can join this network and run specific functions, allowing computationally heavy tasks to be allocated to each client evenly, maximizing parallel processing power. These kinds of tasks are usually expected to be ran by a GPU, as they can handle large amounts of simultaneous calculations and data interpretation, but our solution receives similar results.
How we built it
To preserve the retro vibe for the 10th anniversary, the frontend was built entirely with a terminal user interface and written in C++ with ncurses. We also utilized python for the client script and frontend sockets. We used tailscale to help create our distributed network.
Challenges we ran into
The biggest challenge was managing the retro vibe with the modern features of our application. We decided to create a socket server to manage the sending and receiving of data, but this created various problems for us that we had to solve. Additionally, using a multithreaded process environment made deadlocks and other synchronization errors quite common. Additionally, we had initially planned to use raspberry pi's as a simple source of computing power, but we quickly realized that there was no way to connect them to a monitor, so we had to use 2 laptops checked out of Patee Library, for which we could not install any software that required a restart (linux, WSL, VMware, etc. ).
Accomplishments that we're proud of
Our ability to create a ncurses frontend despite not having much experience with terminal UIs is something that we are proud of. Additionally, some of our team members didn't have much experience with low level C programming, but we were able to pull together and learn whatever we needed to to get the project done.
What we learned
Even though our team members had different skill sets, we learned how to utilize each person's strengths to the overall advantage of our team. Working in a heavy time crunch meant that we needed as much out of everyone as possible, so our more experienced members were able to guide those who didn't have much experience with the codebase into making meaningful contributions.
What's next for PeerPulse
PeerPulse recognizes the inherent preference for GPUs, but the average student does not have access to a GPU that can be utilized for deep learning. Therefore, the next step for PeerPulse is to extend functionality towards other devices, like consoles and iOT embedded systems, which can truly maximize the efficiency of PeerPulse for the future.
Built With
- c++
- claude
- git
- github
- python
- socket
- tailscal
- tailscale
- visual
- visual-studio

Log in or sign up for Devpost to join the conversation.