[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)