RightsQuest-APP-Code: The Flutter App That Turns Human Rights Into a Live Curriculum

A small prototype hides a big idea: let users add any right, generate a scenario around it, and grade the answer on shades of moral judgment instead of right or wrong.

5 to 6 min read • View on GitHub • More from tejasgadge2504

A student sits at a desk with a notebook that branches into multiple human rights topics while a small machine on the right generates scenario cards and response choices. The scene explains how the app turns a user-entered right into a live lesson and then evaluates the response with weighted feedback.
RightsQuest does not rely on a fixed question bank. It expands the lesson when the user names a right, then turns that input into a scenario.
Key Takeaways

RightsQuest-APP-Code is interesting because it behaves like a small classroom engine, not a static study app. A user names a right, the app can absorb it into the curriculum, then a backend generates a scenario and the quiz grades the answer across shades of judgment.

A syllabus that grows when the user asks for it

Most educational apps start with a closed set of lessons. RightsQuest starts with a prompt. In levels.dart, the app keeps a hardcoded map of rights categories, but it also lets a user search for something new and add it into Custom Rights when it does not match the preset list.

The core loop is not search, then answer. It is search, expand the syllabus, generate a scenario, then score the response by degree of helpfulness.

Developed an application by integrating the Llama 3 model to teach human rights values using gamified scenarios.

Tejas Gadge, Developer and Maintainer · Tejas Gadge Portfolio

The app can turn a new right into new content

That matters because it changes the shape of the curriculum. Instead of asking whether the learner knows the exact item in a predetermined syllabus, RightsQuest lets the learner extend the syllabus itself. The app then asks the backend for a scenario tied to that right, which makes the lesson feel responsive rather than canned.

Four response cards move through a scoring gate labeled with graded tiers rather than pass or fail. The cards show how the app sorts answers by usefulness and nuance, which explains its spectrum-based feedback model.
The quiz is built to reward better judgment, not just correctness. The scoring model is a ladder, not a binary switch.

Why the quiz is built like a moral spectrum

The strongest idea in the repo lives in quiz.dart: a response is not merely right or wrong. The app uses a _pointsMapping with tiers like most_positive, positive, neutral, and negative. That is a teaching choice as much as a scoring choice.

A binary quiz trains recall. This one trains calibration. It asks the user to move toward a more responsible judgment, which fits a domain where context, dignity, and proportionality matter more than trivia.

Binary quizRightsQuest
One correct answerGraded by moral strength
Tests recallTrains judgment
Closed question bankExpandable curriculum
Pass or failUseful, better, best

Inside the core loop: levels, API, quiz

The interaction model is straightforward, and that is part of the charm. levels.dart manages the rights list and progress state, ApiService.dart sends the selected right to a backend endpoint, and quiz.dart uses a FutureBuilder to render the generated scenario once it arrives.

The code also shuffles options with Random().shuffle(), which keeps the answer order from becoming a memory game. The result is a small but complete loop: choose a right, fetch a scenario, randomize the choices, then score the response with weighted feedback.

final response = await http.post(
  Uri.parse(apiUrl),
  body: {'right': rightName},
);

final options = [...generatedOptions]..shuffle(Random());
final score = _pointsMapping[selectedTier] ?? 0;

The endpoint itself is telling. The app uses a hardcoded Ngrok URL, which makes the whole thing feel like a live demo wired to a temporary backend. That is a prototype smell, but it also confirms the product thesis: the important part is the loop, not the deployment polish.

A prototype that still reveals a product thesis

The repo’s rough edges are useful evidence. The login screen is bypassed in main.dart, the version number is default, and the network bridge depends on a tunnel that may not survive outside the developer’s setup. None of that weakens the core idea. It suggests the team was spending energy where it mattered most, on proving the learning mechanic.

SignalWhat it suggests
Login bypassedCore flow was prioritized over onboarding
Hardcoded Ngrok endpointBackend was still under active experimentation
Default app versionEarly prototype stage
Custom rights supportThe lesson model was built to expand

What it is competing with, and why those tools miss the point

CategoryWhat it optimizes forWhere RightsQuest differs
Static legal reference appsLookup and studyRightsQuest generates scenarios from a user-entered right
AI legal assistantsRetrieval, drafting, summarizationRightsQuest teaches through interactive judgment
Constitution education toolsBroad awarenessRightsQuest focuses on scenario-based moral calibration
Traditional quizzesRecall and scoringRightsQuest scores nuance instead of correctness

That distinction matters. RightsQuest is not trying to be a better law library. It is trying to be a better learning loop. The app’s value comes from making the learner participate in the construction of the lesson.

That is also why the generative backend matters. When an app can synthesize a scenario around a newly entered right, it stops being a catalogue and starts acting like a simulation. For legal literacy, that is a meaningful shift.

Why this model matters beyond one app

RightsQuest shows how Flutter and a generative backend can make an educational domain feel expandable rather than bounded. The subject is narrow, but the pattern is broad. Any field that depends on judgment, not just recall, can benefit from a curriculum that reacts to the learner.

That is the real takeaway here. The repo is small, but its ambition is larger than its file count. It treats legal literacy as a living system, and that makes the project feel less like a demo and more like a prototype for a new kind of classroom.