Inspiration

As first time hackers we had trouble coming up with ideas as to what to create for this hackathon. We have been practicing our python lately so we decided to work using python. Next we wanted to learn something new but still be comfortable enough so that we can finish it within the time limit so we decided to user socket.io and create a chat server that is similar to IRC.

What it does

PyRC is a python IRC that essentially allows users to communicate with each other. We made it in hopes that users are able to create rooms switch rooms and have conversations with each other at any time.

How we built it

We built it using Python and socket.io. We used python as both members on the team were comfortable using it. Then we both had to learn how to use socket.io so that we can properly create events and handle them. We then used google-cloud and MongoDB to allow messages sent by users to be stored. This was new to both of us as we both have never used google cloud. We then created the db.py file which properly connects to the cloud and saves our messages.

Challenges we ran into

We had quite some trouble creating non-blocking input. For the longest time, users would not be able to see messages incoming until after they had sent a message simple because we were using the input() function in python. Instead we used aioconsole's ainput() which allows us to have smooth non-blocking input.

Accomplishments that we're proud of

We are honestly extremely proud of our progress with this project. We did not think we would be able to get it done, and at times we were about to quit. However, we pushed through and we got it done completely.

What we learned

We learned that there is ALWAYS a solution, no matter what type of issue or problem we may have there is always a solution on google. No amount of googling is too much googling :D

What's next for PyRC

As stated in the video demo we want to move everything to a web interface to allow users to connect easily using their browser so that all sorts of users can join not just ones with python installed. We also want to add commands and build upon what we have so far. We do want to encrypt traffic so that it is end to end encrypted. Those things are definitely within reach after how much we got done today.

Share this project:

Updates