What it does
JigSaw is a coding challenge website. You can submit your own challenges through a form interface utilizing markup formatting and JSON data. You can then answer others' challenges through an intuitive editor along with a console. In addition, you can choose to submit your solution for fellow programmers to view.
How we built it
Challenges we ran into
Some open source libraries and modules that we used, such as CodeMirror, cookie parser, and Marked, were unfamiliar to us as we have not integrated them into a project prior to this hackathon. Front end development also stood as a challenge since we held little to no experience with front end development and UI design. In addition, our sizeable backend necessitated the use of concepts including a server database and a custom API to handle authentication, running user code, and getting content from the site.
Accomplishments that we're proud of
We were able to make our own API, which could handle requests to the server as well as manage to create a polished and professional looking website. Furthermore, our website is lightweight and modular, meaning that we can switch to different databases while maintaining high performace.
What we learned
We learned how to program the front end of a webpage effectively and efficiently with templates to dynamically generate HTML. We also learned server architecture with Node, how to use custom API's for our own system, and how to integrate a database with a website. Utilizing open source libraries proved to be a new, useful skill we can employ in the future.
What's next for JigSaw
- Comments sections underneath challenges for feedback towards the author or for others to share their ideas and approaches
- Implementing more languages to practice and create challenges for (C, C++, Python, Java, etc...)
- Add a forum section
- Add the ability to delete your created challenges
- Add a reporting feature to reprimand those who do not follow guidelines (i.e. inserting the wrong parameters) as well as moderation
- XP Progress Bar + levels
- Search Engine Optimization to our domain
- Search feature to find specific challenges or users
- Add the ability to change user aspects, such as profile pictures, usernames, passwords, bio's, etc...
- Add tags and interests to easily recommend users with challenges they would find interesting