Inspiration

As a Localhost workshop organizer, I always detect new obstacles that prevent hackers from learning to their fullest potential. Looking at presentation slides can only do so much, and obtaining the necessary resources prooves to be a challenge. As a motive to explore modern web development frameworks, while increasing the Localhost experience, I developed 1on1, a simple and intuitive resource platform that delivers what matters most in real-time.

What it does

1on1 takes the hassle out of obtaining information. No login screens, no overcrowded webpages, no stress, just the resources. It's as simple as copying a domain name no more than eight characters. Then, poof, the content is being streamed right to your computer, you didn't even have to click a button. Also, hosting is a fast and streamlined process; no need to fill out tedious registration forms. Best yet, it works on mobile devices, so leaving your laptop back at your dorm is no issue.

How I built it

1on1 uses a combination of modern web frameworks. The backend is powered by Node.js and uses the Handlebars rendering engine to deliver dynamic content. CSS styling is custom-tailored to preserve its simple UI design. All your streams are copied into a MongoDB database so that accidental refreshes don't lead to doom. As for the real-time content streaming, 1on1 can only accomplish such a feat using socket.io, a super-fast WebSocket library simplifying the clientside and serverside relationship.

Challenges I ran into

While creating serverside CRUD apps are my strong suit. It was tricky to balance the client and server. Writing client-side JavaScript can be very tricky if you are not organized. I had to write complicated functions to replicate simple HTML manipulation, something that a rendering template such as Handlebars makes intuitive. One bottleneck I spent a solid four hours on was getting the express WebSockets library to connect with the client. After massive amounts of error 404's, I decided to switch to a different library I was skeptical about first. It turns out; It solved the problem.

Accomplishments that I'm proud of

This app was possibly the best project I worked on with the most accomplishment. While challenges could cause small amounts of demotivation, I not only persisted but got every objective nailed down that aligned with the concept. I ended up making a fully functional app that can be used by anyone. Honestly, I never came out of a hackathon creating something that would be re-used without my assistance. I think I am learning better practices to become an efficient software engineer.

What I learned

The biggest lesson was learning about the clientside and serverside relationship. I would always make apps that were strictly controlled by one side of the stack. But bridging WebSockets allowed me to make my web apps more dynamic than ever before. It is a potent tool that I hope to use in my future hackathon projects. The biggest lesson Im getting from the hackathon experience is to rest, even if there is a lot of work to do. When I refused to take a break, I got stumped for four hours on a problem with a simple solution. If I took a moment to rest, I probably would have been more efficient. The point is, rest is everything!

What's next for 1on1

1on1 is a project that will continue to serve me in my roles as a workshop organizer. I plan to add more CRUD features to the hosting side of the app. I want to add a removal feature that allows the host to delete messages at any order of the stream. Future updates could see an improvement in UI and additional features that make it even easier for students to learn with 1on1.

Share this project:
×

Updates