Inspiration

My inspiration for this project came even before I knew that the theme of this year's Big Red Hacks hackathon would be related towards education. In senior year of high school last year, me and a group of friends were all in Computer Science class together, but I realized for some of my friends they sometimes couldn't pick up on concepts quickly as they were visual learners. Even with all the online, interactive collaborative tools we have today, sometimes peer to peer learning can not really feel as such. Often times, reading from a textbook or reading and writing code based on a video or book can not always help some students to pick up those core Computer Science concepts as well as those students who may be more independent learners but are not necessarily visual learners.

What it does

My project Groupy essentially allows you to Log in and Sign up for an account and it will allow you to add friends, view friend requests and current friend requests, and start up a new game. You can setup something called a code challenge where there are 4 columns on the screen and using web socket technology, the app is able to detect when someone has made a change in their text editor on the screen and then display that change to the rest of the users. When a user is typing something out themselves and realizes they did something wrong, and maybe keeps making that mistake over and over again across the different code challenges, it might allow them to better learn by working on the same problems collaboratively. It is not a program designed for speed like many other programs out there, but rather for a collaborative setting and to talk it out and work on the solutions together through each other's whiteboards. I also plan on adding some features in the near future for traditional quizzes and things alone those lines, but my idea has changed a lot over the last few days.

How I built it

Although this project is mostly a prototype at the moment, the backend is ran on MongoDB and a full REST API for Groupy was built to interact with the database. I decided to try out Swift Kitura web framework for this project, and it was a nice framework for handling all of the API endpoints as well as interacting with the frontend. In the future, I plan on building a game server using either Socket.IO or WebSocket technology for the code challenges so that all clients will be able to see updates to various code editors in a given column in real time.

Challenges I ran into

Right now, Groupy is just a prototype and mostly a proof of concept because I spent most of the weekend learning web development and how everything ties together but I did learn a lot, and I do plan on completing it as I have some spare time every now and then. I didn't have much experience with web development but I figured it couldn't hurt to try something new, and it was cool to experience this weekend nonetheless.

Accomplishments that I'm proud of

I'm really proud that I made the effort to get into learning web development at this hackathon, it was a really cool thing to experience all the various aspects of web development and to see how everything fits together.

What I learned

This hackathon, I learned how to use AJAX to interact with REST APIs and use that to populate data or interact with data on your website, learned a bit about jQuery, learned how to use a CSS framework to make designing layouts much faster (Materialize in my case). However, for this hackathon, I spent most of my time learning how to build REST APIs from scratch and how to make them interact with a database. I also reviewed syntax for MongoDB, and spent some time reviewing the documentation for the Swift Kitura web framework so I could make the frontend and backend fit together even from what I have so far.

What's next for Groupy

I will definitely continue to work on the concept of Groupy outside of this weekend's hackathon. I think it will be a great project to build upon as time goes on and continue to learn new concepts and explore new ideas for the project. I hope some of my friends and others who stumble across this project can find it a useful tool to collaborate with friends on code challenges. In the future, I hope to add leaderboards, statistics, and various modules to show you how you and your study group could improve.

Built With

Share this project:

Updates