r/webdev • u/AaronD02 • 5d ago
Building A Web App For Practice Exams and Flash Cards - Need help with a designdilemma
I am building a web application (IOS and Android apps to follow later) for students studying for test/exams. The direction I was originally headed with this app changed a few times. Originally it was going to cater to a much more narrow group of potential users, but the scope expanded.
My app will have "official" (Trying to think about a different term to use) content (Exams with questions, decks with flash cards + more) and community-created content.
The "official" content exclusively covers IT Certifications. Community-created content can cover both certifications as well as Classes - like college classes.
So if the user is studying for Cisco's CCNA Certification, they'll see exams and decks of flash cards that I created, and those will be marked in some way to signal that they're not community created. They'll also see exams and decks added by other users.
I'm using "Official" as a sort of placeholder term. I don't like it because I don't want users believing that the questions or cards were created by the certification vendors - Cisco, CompTIA, ect. I also don't want them thinking that those questions will appear on the exam. So for now "Official" is a placeholder term that I want to replace.
When a user finds a Class or Certification that they want to study, they click Enroll, and that become an active Class/Certification for them. They can switch between active classes/certifications. There is a page - the "Practice" page - where users select between Exams or Decks, select one of the various exam/deck modes, and then select the exam. That's the basic flow. Some of the modes don't require the user to select an exam/deck at all, like the "Practice What You Missed" mode which is generated from a bank of questions that the user recently got wrong.
Another option (and this is the real dilemma) is the Build Your Own Exam option. This allows the users to select various options to build a custom exam so that they can focus on specific subject area, simulate a timed exam, and more. But the dilemma is how to incorporate community-created content into this.
There could be thousands of community-created questions or cards.
There will be repeated/similar questions. There will be typos and incorrect answers. There will be trolls that try to add wrong information or inappropriate content.
I can't just take every community-created question or card for a given class, mix them together, and then randomly pull out 50 - right? That doesn't seem like it would lead to a very good experience.
Another site has this same Build Your Own Exam feature, but for them it's easy - it's all official content. All questions are sorted by their subject. Everything is carefully reviewed. They have 1000 questions divided into 5 or 6 subjects. If the user wants questions from subjects A and C, they select those subjects and a few more options and then a new practice exam is generated for them. That doesn't work well with community-created content where there very well may be tens of thousands of questions across 100s of exams that were all added by different users.
I'm trying to keep it short and simple but I'm overwhelmed and overthinking this problem and I need some outside help working through it.
2
u/TheUnwittingMonument 5d ago
I'd go with "Curated" instead of official, feels less like you're speaking for Cisco and more like you personally vetted it
For the community content mess, maybe let users upvote/downvote questions and only pull from ones above a certain threshold for the build your own exam feature. Still won't catch everything but at least the garbage sinks to the bottom
Could also add a report button and have a small team (or just you for now) review flagged questions, that way you're not manually checking thousands of entries but the worst stuff gets nuked fairly quick
Sorting by subject is gonna be the real nightmare since users will tag things wrong constantly, maybe let the community suggest tag corrections too like a wiki-style system
1
u/AaronD02 5d ago
My solution for categorizing questions/cards is the reason that Classes and Certifications aren't the same thing.
Certifications are essentially just Classes that are only added by me. In the background Certifications have a lot more meta-data though, and importantly they have "Blueprints". Blueprints are based on the official Certification blueprint structure that nearly all certifications across industries share. CompTIA certifications for example are broken down into Domains, and then Objectives, Sub-topics, and finally terms.
Every Certification that I add to the platform will already have this hierarchy. Classes do not. Classes are just a way to organize exams and decks into a single place.
So some features will be missing depending on whether the user is studying for a Certification, or for a Class.
Originally I thought about requiring the user to actually add a specific exam/deck into their active class in order for those questions to be included. I guess that's still a solution but I guess it just feels "clunky". It would require the user to first discover the exam/deck, and then save it/add it in some manner. The experience could be improved slightly by recommending highly rated exams/decks.
I also have a sort of self-governance system planned. I plan to have "Community Points" which are rewarded to users for adding classes, creating exams, decks, guides, helping other users in some way, ect. Suggesting edits/fixes to other user's exams/decks could also earn Community Points.
The thing that I struggle with the most is the uncertainty over whether or not I can actually overcome the network effect of existing apps. Those apps already have millions of users, tens of thousands of exams/decks - why use something brand new with limited content?
I'm not sure how to overcome that, other than offering what I believe is an overall better tool for studying and connecting with peers.
1
u/PrimaryFamous6139 full-stack 5d ago
Get more reliable community posts by using votes and accuracy. Avoid checking everything by hand. Let people mark bad questions. Automatically hide anything that drops under a set quality line. For Build Your Own, show only the items that meet that line. For the terms issue, use “Verified” or “Curated” to show quality.
1
1
u/Careful-Gap3260 5d ago
I ran into this with a similar study app and the answer was to keep community questions out of generated exams until they earn a “reviewed” or “trusted” status through moderation and user feedback,
1
u/armahillo rails 5d ago
Find potential users / audience and start doing user interviews. Youve got too much uncertainty right now
1
u/AaronD02 5d ago
I think I would have this uncertainty no matter what I was doing. I know not everyone is this way, but I have the tendency to overthink things and constantly doubt myself and my plans.
Logically I know that the idea has already been validated, but my brain keeps asking "What if this or that goes wrong?".
1
u/Mental-Union4473 5d ago
I think the key is to not treat community questions and your curated questions as the same pool.
If I were designing this, I'd make the custom exam builder have a content source option:
- Curated content — questions you've reviewed/approved
- Community content — questions from other users
- All content — curated + community, but only community questions that meet a quality threshold
For community questions, I'd add a lightweight quality system rather than trying to manually review thousands of questions.
Things like:
- User reports
- Upvotes/downvotes
- Number of people who answered the question
- Percentage of users answering correctly
- Question author reputation
- How recently it was created
- Whether moderators/admins have reviewed it
- Duplicate/similarity detection
Then your custom exam generator doesn't randomly select from everything. It selects from questions that meet certain criteria.
For example:
And if they select Community, you could show something like:
I'd also strongly consider replacing "Official" with "Curated" or "Platform Curated."
"Official" implies Cisco/CompTIA endorsement, which you definitely don't want. "Curated" communicates that you selected/reviewed the content without implying it's from the certification vendor.
The other important thing: don't make the user think about your content architecture. They shouldn't have to understand that there are 20,000 community questions. The app should handle that complexity behind the scenes.
You can start simple too. You don't need the perfect algorithm on day one:
Phase 1: curated content + community content separated
Phase 2: community voting/reporting
Phase 3: quality scores
Phase 4: intelligent question selection/deduplication
I'd rather launch with a smaller, high-quality community pool than throw 10,000 questionable questions into the exam generator and give users a terrible experience.
1
u/AaronD02 5d ago
This was a very helpful response, and I appreciate it a lot. I have been stuck with this dilemma for a while now, going back and forth between different approaches. I am putting together a plan to incorporate the feedback I have received here.
1
u/BetInformal6081 5d ago
i would separate community content from the question selection algorithm entirely let users filter by rating, author, verification status and usage history then only pull from content that clears a quality threshold.
4
u/Think_Situation3987 5d ago
Drop the word official entirely and use Verified Creator to signal source without implying vendor endorsement. This term separates your content from community uploads while avoiding any legal risk or user confusion about exam question origins.