[HN Gopher] Show HN: I'm 15 and building a live quiz app for cla...
       ___________________________________________________________________
        
       Show HN: I'm 15 and building a live quiz app for classrooms: Quickz
        
       Author : varun_ch
       Score  : 264 points
       Date   : 2022-01-07 09:09 UTC (13 hours ago)
        
 (HTM) web link (quickz.org)
 (TXT) w3m dump (quickz.org)
        
       | shafyy wrote:
       | Hey Varun, that's super impressive - At 15 I was playing World of
       | Warcraft for 12 hours a day - I wish I started earlier with
       | coding :-)
       | 
       | I like the gamification/customization aspect and I guess that
       | resonates well with your fellow students.
       | 
       | Can you tell us a bit more about the tech stack you're using and
       | about some product choices you made? E.g., why do you only allow
       | log in with Google (is it because that's what students use
       | anyways?).
       | 
       | I make and run a small project called Fugu (https://fugu.lol),
       | which is an open-source and privacy-friendly product analytics
       | tool. I'd love to offer a forever-free account to use for Quickz
       | if you like. Just send me a quick email if you're interested:
       | canolcer@hey.com
       | 
       | Edit: Somehow, I'm not able to select answers when I'm hosting a
       | deck. I tried with Safari and Firefox. What am I missing?
        
         | varun_ch wrote:
         | Thank you, I really appreciate it!
         | 
         | Quickz is built on a SvelteKit, powered by a Node.JS backend
         | that handles the database and creates a thread for each game
         | room. I chose MongoDB for the database, because I found that
         | the non relational approach helps with the complex structure of
         | the decks. It's self-hosted at home using a Dell Optiplex
         | running Ubuntu Server right now, but eventually I'll have to
         | move to a better hosting setup. :)
         | 
         | Currently it only supports Google login, mostly because I don't
         | trust myself enough to safely manage and store credentials.
         | Many schools are already in the Google ecosystem, so for now it
         | should be enough. However, I'm not a huge fan of my website
         | depending on a single third party, so I'm going to have to work
         | on that soon.
         | 
         | The host's screen is just a mirror of what the players will
         | see, and so you can't interact with it, apart from going
         | forwards and back. I think this needs to be communicated
         | better, so I will be also working on improving the UI/UX on
         | that.
        
           | shafyy wrote:
           | Very interesting, thanks for sharing.
           | 
           | > _The host 's screen is just a mirror of what the players
           | will see, and so you can't interact with it, apart from going
           | forwards and back. I think this needs to be communicated
           | better, so I will be also working on improving the UI/UX on
           | that._
           | 
           | Ah, I see. That makes sense, sorry for my noob question =D
        
           | ricardbejarano wrote:
           | > Currently it only supports Google login, mostly because I
           | don't trust myself enough to safely manage and store
           | credentials. Many schools are already in the Google
           | ecosystem, so for now it should be enough.
           | 
           | That's senior-level decision making right there!
           | 
           | Storing creds is tough, all your users already have Google
           | accounts, and most of them probably prefer logging in with a
           | click rather than remembering a new set of creds. It also
           | puts a higher barrier of entry for fraud, since new Google
           | accounts require phone number verification.
           | 
           | I'm a SRE so if you need ideas for the hosting/infrastructure
           | side of things, feel free to ask!
        
         | emj wrote:
         | Usually you do not answer question when hosting but display the
         | questions on a big screen, in Kahoot the participants do not
         | see the questions on their own screens but have to watch the
         | big screen of the presenter.
         | 
         | To Varun, this is a nicely done clone.
        
       | replwoacause wrote:
       | Nice job! Have you tested it in Safari? When I go to the "Science
       | Experiments & Variables" quiz and click host, start, and then
       | begin, the music plays and the countdown timer appears but I'm
       | not able to select any of the choices.
        
         | replwoacause wrote:
         | Ahh ok so then it was my mistake. :)
         | 
         | Keep up the good work!
        
         | varun_ch wrote:
         | Thank you! Unfortunately I don't own a Mac, so I can't test it
         | on Safari.
         | 
         | Are you trying to select an answer on the host's screen? It's
         | just a mirror of what students see that's intended to be
         | projected on a big screen in a classroom.
         | 
         | Students select choices on their own devices, and the answers
         | are reflected on the host's screen. I'll work on some sort of
         | first time guide soon.
         | 
         | Thanks for the feedback! I really appreciate it.
        
           | oneplane wrote:
           | You might have some luck using Playwright and MiniBrowser for
           | that https://schepp.dev/posts/running-webkit-on-windows/
           | 
           | If you are on Linux, you can use the Epiphany browser which
           | also uses WebKit.
        
       | jaywalk wrote:
       | Very impressive! You've got a bright future ahead of you. Just
       | get rid of the cutesy "hints" on the login page (Press Alt-F4 to
       | win, etc.) I know you're just trying to have some fun, but if you
       | want people to actually start using this (and it seems like you
       | do) they're not going to be happy if students end up closing
       | their browsers in the middle of quizzes because they aren't in on
       | the jokes.
        
         | varun_ch wrote:
         | Thank you! That's a pretty good idea..
         | 
         | I've just pushed an update that removes the hints.
        
         | gspr wrote:
         | > if you want people to actually start using this (and it seems
         | like you do) they're not going to be happy if students end up
         | closing their browsers in the middle of quizzes because they
         | aren't in on the jokes.
         | 
         | When did the world become so saddeningly serious?
        
           | kevinventullo wrote:
           | The original version of Facebook had the Top Gun quote "Too
           | close for missiles, switching to guns" at the bottom of the
           | page.
        
             | jaywalk wrote:
             | Completely different scenario.
        
           | jaywalk wrote:
           | Do you not see any issue with this being used for an actual,
           | graded quiz and a student being kicked out because they
           | thought pressing Alt+F4 would give them an advantage? It's
           | not like they were funny but unrelated and harmless hints.
           | They were not obvious jokes to non-technical people, and
           | could directly harm the students if they took them seriously.
           | 
           | You can throw all the Alt+F4 and Ctrl+W jokes you want into a
           | game. No harm, no foul. But they have no place in an
           | application like this.
        
             | varun_ch wrote:
             | While I completely agree, I just wanted to point out that
             | Quickz quizzes (and Kahoots) shouldn't be used for proper
             | graded tests.
        
       | caymanjim wrote:
       | Congrats on securing a short, catchy, memorable, pronounceable
       | domain name. That's quite an accomplishment in itself.
        
         | varun_ch wrote:
         | Thank you! Unfortunately it's not a .com, but I'm really happy
         | to have even gotten the .org anyway.
         | 
         | It seems like there's already a lot of stuff on the web under
         | the name Quickz, so improving my SEO might be a challenge.
        
       | SwiftyBug wrote:
       | That's very cool! My first big project was also as a teenager,
       | and it was a mobile phone app for my school as well. I ended up
       | being paid by the school to maintain the app after I graduated.
       | It was a lot of fun! Keep up, Varun. Quickz looks awesome and I
       | personally like the stack you chose. Svelte is great!
        
       | milkers wrote:
       | Congrats Varun, I look forward to your Product Hunt launch.
        
       | varun_ch wrote:
       | Hi HN. My name is Varun, I am 15 years old and I'm building a web
       | app called Quickz.
       | 
       | It functions similarly to Kahoot, which is a learning platform
       | that we often use in school. I had some annoyances with the
       | direction and features of Kahoot, so I decided to make my own.
       | 
       | Teachers can create a deck of questions, and host it to their
       | classes. Students will join with a Game Pin, and answer questions
       | simultaneously. Students are rewarded points for answering
       | correctly, and quickly. At the end of the game, a leaderboard is
       | displayed that shows the top players.
       | 
       | To encourage students to win, the top players are rewarded
       | "creditz", which can be used to unlock more character
       | customization options.
       | 
       | I've just been working on Quickz for a couple months now in my
       | free time, so it's definitely not full release yet, but please
       | have a look. This is my first big project, and I'm very proud of
       | it :)
        
         | bonestamp2 wrote:
         | > a leaderboard is displayed that shows the top players
         | 
         | Great job!
         | 
         | One thing to consider, especially if you plan to monetize this,
         | is how you're going to differentiate yourself from Kahoot. For
         | example, you could highlight the top three players in a fun way
         | like kakoot does, but also have a list below so people below
         | the top 3 can still see how they did compared to others.
        
           | suifbwish wrote:
           | Allow top players to challenge eachother and reset
           | leaderboards every Monday similar to an MMO
        
           | varun_ch wrote:
           | Thank you! The leaderboard currently emphasizes the top 3
           | players, but it does show everyone too.
           | 
           | The major focus that differentiates Quickz is that I really
           | want to make something that is educational and promotes
           | learning.
           | 
           | For example, teachers can specify the reason a question is
           | correct while making a deck. This is something that I felt
           | was missing while playing Kahoot because I find that it's
           | easier to remember and understand why something is correct if
           | I'm given an explanation for it.
           | 
           | In terms of monetization, a "pro" plan for teachers that
           | stores and aggregates game statistics is the current plan,
           | but that's far away from now. :)
        
       | theindianappguy wrote:
       | I build marksplus when i was 17 it helps create quiz
        
       | johnwheeler wrote:
       | What css/UI framework is that? Looks really good
        
         | varun_ch wrote:
         | Tailwind :)
        
         | jaywalk wrote:
         | It looks fine, but it's an incredibly generic Bootstrap-looking
         | design. Nothing special about it that I can see.
        
       | user3939382 wrote:
       | I build online assessment edtech for a living. Don't do it kid,
       | it's a dark path.
       | 
       | No but seriously -- awesome work!
       | 
       | No but seriously, how do you normalize score processing for a
       | randomized set of multiple choice questions with partial-score
       | matching questions?
       | 
       | Back to work...
        
       | camhart wrote:
       | Congrats! Keep it up. At 15 I was writing bot scripts to run
       | video game characters around for me haha. I soon realized I liked
       | coding more than even playing the game.
        
         | Insanity wrote:
         | ha, definitely got into it for similar reasons!
         | 
         | And then came modding etc. Sadly, it seems like modding is
         | dying, at least for the few modern games I'm interested in. (So
         | really kudos to minecraft for teaching a new generation about
         | mods and programming along the way, my nephew is going through
         | that phase).
        
           | debaserab2 wrote:
           | Still plenty of games out there to mod for, but you generally
           | have to look for indie titles.
        
         | ceesharp wrote:
         | Good old Silkroad Online!
        
         | tester34 wrote:
         | Did the game name start with 'T' letter?
        
           | camhart wrote:
           | Nope, R.
        
             | mcdoogal wrote:
             | RuneScape? The botting and private server scenes inspired
             | many a programmer out there :)
        
               | camhart wrote:
               | Yep you got it. But I grew up on the original
               | runescape... classic. I still love the game, even though
               | it's killed.
               | 
               | https://www.youtube.com/watch?v=Kws89gVKoxw
        
               | iamricks wrote:
               | Inspired me, my favorite private server was 2speced,
               | tyler and bluur were to best to ever do it
        
           | megalodon wrote:
           | Are you thinking of Tibia?
        
       | keewee7 wrote:
       | That is very impressive! What is your tech stack?
        
         | varun_ch wrote:
         | Thank you! I've got a SvelteKit frontend, powered by a Node.js
         | (using Express) backend, with a MongoDB database. This is all
         | self hosted at home.
         | 
         | I use websockets to do the live communication, and each game
         | room gets a Node.js worker thread assigned to it.
        
           | keewee7 wrote:
           | Do you use raw websockets or Socket.io?
        
             | varun_ch wrote:
             | Raw websockets on the frontend, and express-ws[0] on the
             | backend.
             | 
             | [0] https://www.npmjs.com/package/express-ws
        
       | peterpost2 wrote:
       | This is seriously impressive! Really like the clear layout, maybe
       | a bit too large text everywhere, but I guess that's just a my
       | preferences :).
       | 
       | How did you make sure the application is secure? XSS/SQL
       | Injection?
        
         | varun_ch wrote:
         | Thank you! I have some experience with web security as I
         | participate in a couple bug bounty programs, and I know the
         | common mistakes to avoid.
         | 
         | Nothing is perfect, so if you find anything please let me know
         | at varun@quickz.org :)
        
         | rurcliped wrote:
         | another class of security issues that has been seen in other
         | quiz apps is client-side disclosure of questions/answers, e.g.,
         | https://mentimeter.canny.io/feature-requests/p/make-sure-que...
        
           | varun_ch wrote:
           | I've definitely had some fun in class with websites that do
           | too much client side logic. ;)
           | 
           | I made sure to do all the important calculations server side,
           | and only send the necessary data to clients.
        
       | g105b wrote:
       | This is so fantastic to see. Like many responses here, I'm
       | projecting my own 15 year old self into your position, and all I
       | can say is keep it up - the future will be great for you.
        
       | imwillofficial wrote:
       | Hell yeah! Keep after it kid! You'll go far
        
       | goldcd wrote:
       | That's really nice and clean.
       | 
       | As constructuve feedback, maybe it would be good if there was a
       | quick way from the landing page to see how the quiz works
       | (animation or short video).
       | 
       | Maybe there's a better way I didn't find, but it's a little
       | clunky to have to host a game and then login from another browser
       | to see that the quiz actually looks like (and only then as a 1
       | player quiz, so you don't see the benefit of leaderboard etc).
        
         | varun_ch wrote:
         | Thank you! You're right, a landing page is definitely something
         | that I should spend some time on. Essentially the idea is that
         | the host's screen is projected onto a big screen, and players
         | look back at it to see the leaderboard.
         | 
         | This doesn't work for single player or previewing the deck, so
         | I'm working on a 'practice mode', optimized for practicing the
         | questions alone.
        
         | whoibrar wrote:
         | Totally agree with this one, was expecting some sort of visual
         | demonstration or walkthrough about core features and how to use
         | them.
         | 
         | As said in post this is still under construction, so this is
         | where it can be improved.
        
           | varun_ch wrote:
           | I've just added a small guide on what Quickz is, and how it
           | works.
           | 
           | https://quickz.org/guide
           | 
           | Thanks!
        
       | dimgl wrote:
       | This is actually sick. Good job man. I wish at 15 I had gotten
       | more into coding, so you're excelling right now. Congrats!
        
       | throwawayHN378 wrote:
       | This is basically how I learned to code except I was building a
       | different idea. Keep going!!!
        
       | martneumann wrote:
       | Seriously impressive! Great performance, too, from what I can
       | see, and no `console.log` spam :)
        
       | thebiblelover7 wrote:
       | Hi Varun! This seems like a great project! Have you thought of
       | open sourcing your project? (maybe you already have, I just
       | haven't seen it yet)
       | 
       | I've been looking for an open source alternative to kahoot and
       | this looks like a great option ;).
       | 
       | Keep up the great work!
        
         | varun_ch wrote:
         | Thank you! I'm a bit torn on open source. On one hand, I
         | absolutely love the freedom of open source software and I want
         | to help support that movement too, but I don't want to deal
         | with the burdens of being an open source maintainer (eg. what
         | happened to faker.js). I would much rather code what I want, at
         | my own pace, than deal with feature requests/bug
         | reports/questions/pull requests/etc. while Quickz is still
         | growing.
         | 
         | Perhaps I might consider open source in the future. It's a
         | difficult choice.
        
           | Zababa wrote:
           | You've made a great project, and I can see your concern about
           | open source. However, just to give you the opposing point of
           | view, open source doesn't always mean community-driven
           | development. For example, Rich Hickey, creator of Clojure,
           | has an article about that: https://gist.github.com/richhickey
           | /1563cddea1002958f96e7ba95.... From the article:
           | 
           | > The only people entitled to say how open source 'ought' to
           | work are people who run projects, and the scope of their
           | entitlement extends only to their own projects.
           | 
           | > Just because someone open sources something does not imply
           | they owe the world a change in their status, focus and
           | effort, e.g. from inventor to community manager.
           | 
           | > Open source is a licensing and delivery mechanism, period.
           | It means you get the source for software and the right to use
           | and modify it. All social impositions associated with it,
           | including the idea of 'community-driven-development' are part
           | of a recently-invented mythology with little basis in how
           | things actually work, a mythology that embodies, cult-like,
           | both a lack of support for diversity in the ways things can
           | work and a pervasive sense of communal entitlement.
           | 
           | I can totally understand not choosing to open source it, it's
           | your project and yours alone. But that also means that you're
           | free to put it on the internet under a permissive license,
           | and refuse any contribution. Another example of the "Open
           | source, not open contribution" stance is SQLite:
           | https://www.sqlite.org/copyright.html. There are lots of
           | entitled people asking for free development time from
           | maintainers. You don't owe them anything. This software is
           | your intellectual property. It is yours and yours alone, no
           | one should expect anything from you. With all that said, I
           | understand not open sourcing it to not even take the risk,
           | it's very easy to say "just ignore those people", but it can
           | be very hard to do.
           | 
           | With all that said, congratulations again!
        
           | stickyricky wrote:
           | Do not open source this... You've created a business not a
           | library or a framework.
           | 
           | I have no idea what the intentions of the GP were but you
           | should definitely retain ownership of your code. Try to sell
           | it. Try to get ad money. If nothing else just have fun with
           | it.
        
             | shafyy wrote:
             | There are many successful businesses who have an open-
             | sourced code base.
        
               | ianbutler wrote:
               | No, they most likely have an open core model where
               | advanced and business oriented features are typically
               | kept as a separate code base with distinct licensing.
               | 
               | GitLab as an example keeps them in the same repo but
               | separates the structure so business features are clearly
               | and distinctly licensed under a business license.
               | 
               | I don't know of a serious business that has a
               | _completely_ open source code base.
        
               | shafyy wrote:
               | There is for example Plausible or Gitpod. Sure, they are
               | not billion dollar businesses, but successful businesses
               | nevertheless.
               | 
               | But even if they would open-source it now, it doesn't
               | mean that they can still go for an open core model later.
        
               | ianbutler wrote:
               | Fair point! I had forgotten about Plausible.
        
             | hnlmorg wrote:
             | It's also crowded market with lots of free alternatives out
             | there already. Not everything posted as a Show HN is a
             | business opportunity waiting to be exploited.
             | 
             | I'm not saying this should be open sourced either though.
             | In fact it "shouldn't" be anything. It's something created
             | for fun. All this pressure placed on a 15 year old to
             | either open source or create a business out of it is
             | insane. Just let the kid have fun like we did when we were
             | hacking stuff together at 15.
        
       | analog31 wrote:
       | Congrats! At 15, I had just learned about the existence of
       | coding, from my college age brother. What a world we live in
       | today!
        
       | stevofolife wrote:
       | This is amazing! How did you get into coding? Can you tell us
       | about your journey up to this point? I'm sure many people are
       | interested to hear!
        
         | varun_ch wrote:
         | Thank you! Our school encouraged us to participate in Hour of
         | Code back when I was in the 2nd or 3rd grade.
         | 
         | I was immediately hooked, and spent the afternoon in the public
         | library checking out some activities on code.org. My parents
         | checked out a guide for MIT App Inventor, and I created my
         | first few coding projects there.
         | 
         | Additionally, I discovered MIT's Scratch, and spent many years
         | creating projects on there.
         | 
         | I found that Scratch had Discussion Forums, and a section
         | titled "Advanced Topics". Other kids were sharing websites that
         | they made, and I wanted to fit in and be like them. I then
         | spent a while asking questions and trying to make my own
         | websites. Eventually I must have gotten bored because I didn't
         | do much with websites for a couple years, and instead stuck to
         | Scratch's editor.
         | 
         | I picked back up HTML, et al. when I was bored during
         | quarantine and, for some reason, this time it clicked. I
         | created various JavaScript projects, and I've been working on
         | increasingly more challenging projects. It's fun to set aside a
         | few hours and just code something new.
         | 
         | My goals for the future are to learn some more lower level
         | languages (eg. Rust), and hopefully study hard to get into a
         | nice university.
        
       | jarenmf wrote:
       | That's truly impressive, keep going! I hope your teachers and
       | classmates were interested/supportive.
        
       | dag11 wrote:
       | Hey Varun, this is fantastic and I see a ton of good technical
       | and ux decisions made here, esp. for your age! As someone who was
       | pursuing similar stuff at your age, all I can say is you've got a
       | really fun career just ahead.
       | 
       | It's so valuable working on these kinds of projects, where you're
       | not just building things for yourself but actually building
       | things for your peers to use. It'll create a feedback loop where
       | you're iterating towards actual people's needs. Keep working on
       | projects that people around you can use and you'll go far!
        
       | ykevinator2 wrote:
       | Congratulations this is great!
        
         | varun_ch wrote:
         | Thank you!
        
       | barbarr wrote:
       | Amazing work!
        
       | Kagerjay wrote:
       | this is super impressive! I was actually looking for alternatives
       | to use over kahoot for my local tech meetup for giving free
       | tshirts, I think I like this more than kahoot
       | 
       | I did run into an issue on the scoreboard? at the very end of the
       | session. I love the avatar options for users for unlocking
       | character customizations, they look so simple and fun
       | 
       | the UI for creating decks is much simpler than kahoot for sure as
       | well, and I like the option for creating more than 4 answers too
        
       ___________________________________________________________________
       (page generated 2022-01-07 23:01 UTC)