Skip to content

Add an educational section with lessons, flashcards, and quizzes to boost financial literacy #13

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
Community-Programmer opened this issue May 11, 2025 · 14 comments · May be fixed by #32
Assignees
Labels
backend enhancement New feature or request frontend Affects the frontend layer Hard help wanted Extra attention is needed #IEEESOC

Comments

@Community-Programmer
Copy link
Owner

Is your feature request related to a problem? Please describe.

Currently, the app focuses on tools and insights but lacks an educational component. New users, especially those unfamiliar with finance, might struggle to make the most of the platform without foundational knowledge.

Describe the solution you’d like

Introduce a Financial Education section that includes:

  • Micro-lessons or Flashcards on key topics such as:

  • Budgeting basics

  • How investments work

  • Compound interest

  • Saving strategies
    These should be simple, swipeable or collapsible content blocks (ideal for mobile).

  • Quizzes or Challenges with gamified elements:

  • Earn XP points, badges, or ranks for completing modules.

  • Use question sets in multiple-choice or true/false formats.

  • Content managed via Markdown files or a CMS :

  • Allows for community contributions via pull requests or a lightweight CMS interface.

  • Keeps content modular, readable, and version-controlled.

Implementation Plan (Must Be Approved Before Starting)

Before beginning development, contributors must:

  1. Prepare a Proposal including:

    • Overall structure and navigation (e.g., tabs or page layout)
    • Content format: Markdown or CMS
    • Tools/libraries to use (e.g., shadcn/ui components, quiz logic, animation)
    • Approach for gamification: how XP, badges, and progress will be tracked (local storage or backend schema)
  2. Get Proposal Reviewed & Approved by maintainers.

  3. Once approved, implementation can proceed as follows:

    • Build UI components (lesson cards, flashcards, quiz interface)
    • Load and display content
    • Add gamification logic (XP/badges)
    • Optional: sync user progress with backend

Describe alternatives you’ve considered

  • Linking to third-party educational platforms (less interactive, harder to customize).
  • Embedding YouTube playlists instead of custom lessons (not gamified or trackable).

Additional context

  • Use Tailwind CSS and shadcn/ui components for styling.
  • Ensure responsive behavior for mobile and tablet users.
  • Consider accessibility (keyboard navigation, alt text, color contrast).
  • This feature can greatly boost engagement while improving financial literacy among users.

Note: This issue requires planning, architectural clarity, and approval before actual development begins.

@Community-Programmer Community-Programmer added enhancement New feature or request help wanted Extra attention is needed #IEEESOC Hard frontend Affects the frontend layer backend labels May 11, 2025
@biswajit-sarkar-007
Copy link

i have plan to solve this issue in this way in future to solve this issue any problems occurs i will apply different approach.

Introduce an engaging and mobile-friendly Financial Education section to improve user understanding of core finance topics through interactive lessons, flashcards, and quizzes, supported by gamification (XP & badges) and community-contributed content.

  1. Structure & Navigation
    Create a new route: /education
    Within this route, implement tab-based navigation using shadcn/ui Tabs:

Lessons Tab – Short, collapsible cards on topics like Budgeting, Compound Interest, etc.

Flashcards Tab – Swipeable or flip-style cards (Q/A format)

Quizzes Tab – Interactive multiple-choice or true/false quizzes

Each tab will be a separate component under pages/education/.

  1. Content Format and Storage
    To ensure modularity, version control, and easy community contributions:

i. Lessons & Flashcards
Stored in Markdown (.md) files under /content/lessons/

Frontmatter metadata (title, XP, topic, difficulty)

Example:


title: Compound Interest
xp: 20
topic: Saving & Investment


Compound interest is the process where interest is earned on both the initial principal and the accumulated interest...

ii. Quizzes
Stored in JSON files under /content/quizzes/

Each quiz includes a set of questions with options and correct answers

Example:

[
  {
    "question": "What is compound interest?",
    "options": [
      "Interest on original amount",
      "Interest on interest earned",
      "Loan interest",
      "Flat interest"
    ],
    "answer": "Interest on interest earned"
  }
]

  1. Gamification Mechanics
    To motivate users and track learning:

Each lesson/quiz awards XP

Track XP and badge progress via localStorage (no backend needed initially)

Optional future backend sync (schema-ready)

4. Badge Milestones:

Badge | XP Required -- | -- Budget Beginner | 100 XP Saving Starter | 250 XP Investment Prodigy | 500 XP Finance Master | 1000 XP

5. Tools & Libraries Tailwind CSS – Responsive styling

shadcn/ui – Tabs, Cards, Badge, Progress UI

React Markdown – Render .md content

LocalStorage API – Store XP and badge data

Optional CMS – Support Markdown editing via Contentlayer or TinaCMS (future-ready)

@adithya-adee
Copy link

#ieeesoc @Community-Programmer

I took a day to set up everything and reviewed your codebase. So here is my proposal for a Financial Education Part in the FinanceAI Dashboard that aligns with your system and enhances user experience while maintaining compatibility:

Proposal: Financial Education for FinanceAI Dashboard

My Goals

To enhance user engagement and have financial literacy through interactive micro-lessons, flashcards, quizzes, and gamification—fully integrated into the FinanceAI dashboard. And all of this features will be compatible with your coding style and design.

Solution Plan

1. Navigation & Structure

  • A new tab will be introduced in the dashboard at route: dashboard/learn.

  • This section will feature:

    • Mini-courses with expandable dropdowns.
    • Flashcards organised by topic.
    • Quizzes at the end of each module.
  • Horizontal card layout for micro-lessons, inspired by platforms like Next.js docs.

  • Flashcards will appear in a swipeable/collapsible format, especially optimized for mobile users.

  • Dynamic routing for every lesson using its name or ID.

  • Users can bookmark subtopic-level content (like NestJS docs (Ex: https://docs.nestjs.com/#installation), the # part is for quick access) for quick access.

2. Content & Features

Micro-lessons & Flashcards

  • Key Topics Covered:

    • Budgeting Basics
    • How Investments Work
    • Compound Interest
    • Saving Strategies
  • Content Format:

    • Markdown (MD) for lessons and flashcards
    • Horizontal card layout for desktop; swipeable/collapsible on mobile
    • Interactive flashcards to reinforce key concepts

Quizzes

  • Support for:

    • Multiple Choice
    • True/False
  • Stored in JSON for easy dynamic rendering

  • Quizzes at the end of each mini-course

  • Once the answer is given, it will show weather the answer is right / wrong. And give the detailed solution for each question.

Gamification

  • Earn XP, badges, and ranks for completing lessons/quizzes ( I am thinking of ranks to be implemented later, I want you to tell me weather this thing is good to implement it now in database or in the whole application or better not to do it now)

  • Add daily streaks to reward consistent engagement ( for now since we have limited thing , I am thinking to implement this later)

  • Store user progress using backend prisma schema, optionally synced with local storage/cache for offline continuity

  • Backend support for:

    • Progress sync across devices
    • Personalized experience
    • Badge/XP history

3. Tools & Libraries

  • UI & Styling:

  • Rendering:

    • react-markdown for lesson & flashcard rendering
  • Database & Schema:

    • Using Prisma ORM
    • Store lessons, flashcards, quizzes, user XP, badges, and streaks

Implementation Plan

Phase 1: Approval & Setup

Before development, a detailed architecture breakdown will be presented for review. It includes:

  • Tab structure: dashboard/learn
  • Folder & route setup for dynamic rendering
  • Content strategy using Markdown & JSON
  • Schema design for gamification & user data

Phase 2: Development

  1. UI Development

    • Create responsive components for cards, flashcards, and quiz interface
  2. Content Integration

    • Fetch Markdown & JSON content dynamically
  3. Gamification Engine

    • Backend schema for XP, streaks, and badges
    • Caching layer for optimized updates
  4. Community Contribution Support

    • Pull request-based updates
    • (Optional) lightweight CMS integration

Some Alternatives Thoughts ( just any idea of why my proposal is robust than others)

Option: Linking to External Platforms (like Khan Academy, Investopedia)

Cons:

  • Less control
  • No XP or badge tracking
  • Users leave the site

Why We’re Better:

  • Fully integrated, consistent design
  • Gamification is native to the app
  • Easier to evolve & scale content

Option: Embedding YouTube Playlists

Cons:

  • No interactive features
  • Not accessible for all users (e.g., hearing impairments)
  • No XP/streak system

Why this Idea is Better:

  • Custom Markdown content = better accessibility & adaptability
  • Real quizzes, flashcards, progress tracking
  • Modular, scalable, and offline-capable

📱 Accessibility & Performance

  • Keyboard navigation, alt-text, color contrast, and more for inclusive design
  • Normalized database structure for better performance
  • Caching strategies to reduce redundant API calls
  • Mobile-first approach to ensure smooth access across devices

🔁 Sync & Progress

  • Full backend support for progress syncing, ensuring cross-device consistency.
  • Normalised database schema on Prisma.
  • Streak logic tracked per user to motivate daily learning.

💬 Final Note

This proposal is designed to offer a feature-rich, modular, and scalable educational experience that aligns with FinanceAI’s mission.
Let me know if you’d like a demo UI or wireframe before we begin implementation!

Looking forward to contributing to this awesome project!

@biswas2200
Copy link
Contributor

Proposed Solution for Financial Education Section

Hello! I'd like to propose a comprehensive solution for implementing the requested Financial Education section. I've analyzed the requirements and created a detailed implementation plan that focuses on delivering an engaging, educational experience with robust gamification elements.

Architecture & Content Structure

FinancialEducation/
├── components/
│   ├── LessonCard.tsx
│   ├── FlashcardDeck.tsx
│   ├── QuizContainer.tsx
│   ├── ProgressTracker.tsx
│   └── AchievementBadge.tsx
├── data/
│   ├── lessons/ (MDX files)
│   ├── flashcards/ (JSON files)
│   └── quizzes/ (JSON files)
├── hooks/
│   ├── useProgress.ts
│   ├── useAchievements.ts
│   └── useQuizState.ts
├── lib/
│   ├── content-loader.ts
│   └── gamification.ts
└── pages/
    ├── EducationHub.tsx
    ├── LessonView.tsx
    ├── FlashcardView.tsx
    └── QuizView.tsx

Technical Implementation

  • Content Management: MDX for lessons (combining Markdown with React components) and JSON for structured quiz/flashcard data
  • Data Storage: localStorage for progress with optional backend sync
  • UI Framework: Tailwind CSS and shadcn/ui components as specified
  • Responsive Design: Mobile-first approach with swipeable cards for lessons and flashcards

Gamification System

I've designed a multi-dimensional gamification system that goes beyond basic points and badges:

1. Tiered Progression System

Users advance through meaningful financial tiers that reflect their growing expertise:

export const PROGRESSION_TIERS = {
  NOVICE: { name: "Financial Novice", threshold: 0, color: "#94A3B8" },
  SAVER: { name: "Smart Saver", threshold: 500, color: "#60A5FA" },
  PLANNER: { name: "Budget Planner", threshold: 1200, color: "#34D399" },
  INVESTOR: { name: "Wise Investor", threshold: 2500, color: "#A78BFA" },
  STRATEGIST: { name: "Financial Strategist", threshold: 4000, color: "#F59E0B" },
  EXPERT: { name: "Wealth Expert", threshold: 6000, color: "#EC4899" },
  GURU: { name: "Finance Guru", threshold: 8500, color: "#8B5CF6" }
};

2. Compound Interest XP System

Rather than a flat points system, we implement a "compound interest" XP approach where consistent engagement yields exponentially better rewards:

export function calculateXpGain(baseXp, streak, completedModules) {
  const streakMultiplier = Math.min(1.5, 1 + (streak * 0.05));
  const knowledgeMultiplier = Math.min(1.3, 1 + (completedModules * 0.01));
  
  return Math.round(baseXp * streakMultiplier * knowledgeMultiplier);
}

3. Skill Trees & Learning Paths

Content is organized into branching skill trees that visually represent the user's learning journey:

export interface SkillTree {
  id: string;
  title: string;
  description: string;
  theme: string;
  nodes: SkillNode[];
}

4. Daily Challenges & Financial Habits

To encourage consistent engagement and practical application of financial concepts:

  • Daily financial challenges that reinforce learning
  • Financial habit tracking system to build real-world behaviors
  • Streak-based rewards that encourage regular interaction

Phased Implementation Plan

I propose a phased approach to ensure manageable development:

Phase 1: Core Educational Foundation

  • Basic lesson viewer and content structure
  • Simple quiz system
  • User progress tracking (localStorage only)
  • Basic achievement system

Phase 2: Gamification Enhancement

  • Skill trees and learning paths
  • XP and leveling system
  • Daily challenges
  • Enhanced achievements

Phase 3: Community and Advanced Features

  • Leaderboards and social sharing
  • Backend synchronization
  • Advanced analytics dashboard
  • Content contribution system

Technical Differentiators

  1. Progressive Data Loading

    • Load only needed content chunks to improve performance
    • Implement virtualized lists for flashcards and achievement collections
  2. Offline Support

    • Implement service workers to allow offline learning
    • Sync progress when connection is restored
  3. Accessibility Focus

    • Ensure all gamification elements have proper ARIA roles
    • Support keyboard navigation through skill trees and challenges
    • Include high-contrast mode for visual elements

Visual Demo

I've created a visual prototype to demonstrate how this would look and function:
[FinTechForge Education Hub Demo](https://claude.ai/public/artifacts/2c3e7a2f-0ebc-47b4-be7f-142cbc927460)

The demo showcases:

  • The overall UI design and information architecture
  • How the three main tabs (Learn, Practice, Achievements) would function
  • The visual treatment of gamification elements
  • The mobile-responsive layout

Key Metrics for Success

To measure the effectiveness of this implementation, we'll track:

  • Engagement Rate: Average time spent in the education section
  • Completion Rate: Percentage of started lessons that are finished
  • Knowledge Retention: Quiz scores after completing lessons
  • Return Rate: How often users come back to continue learning

Next Steps

If this approach aligns with your vision for the education section, I'd be happy to:

  1. Develop a more detailed technical specification
  2. Create a functioning prototype of key components
  3. Define the content structure for the initial educational modules

Looking forward to your feedback!

@Community-Programmer
Copy link
Owner Author

@biswajit-sarkar-007 @biswas2200
Thank you for your contribution. According to our guidelines for equal contribution, contributors can only have one PR opened or merged within a 3-day window. Since you've recently opened or merged a PR, we won't be able to assign or accept another from you just yet.

Feel free to explore other issues or repositories in the meantime—we’d love to see more contributions from you after the window has passed!

@Community-Programmer
Copy link
Owner Author

@biswas2200 I liked your proposal though Good Job👍

@Community-Programmer
Copy link
Owner Author

@adithya-adee I can assign you this task. Please go through @biswas2200 proposal—if you understand it, you can start working accordingly
works?

@biswas2200
Copy link
Contributor

Hi @Community-Programmer ,

Thank you for your message and for all the efforts in organizing this amazing event. I really appreciate the opportunity to contribute and be part of the IEEE Summer of Code.

I went through the Contribution Guidelines document carefully, and I couldn’t find any mention of a 3-day window restriction between contributions or PRs. I completely understand the intent behind encouraging meaningful contributions one at a time, and I respect that. However, I wanted to kindly share my perspective.

The 3-day window feels a bit long, especially considering that there is a leaderboard and point system, which introduces a gamified, competitive aspect to the event. Many of the general repositories have limited open issues, and the local ones that are more responsive and active tend to get assigned quickly, leaving less room for contributors like me to participate during the cooldown period.

I've also noticed that some contributors have managed to make 4–5 contributions or receive multiple assignments on the same repo, which has helped them significantly climb the leaderboard. I understand and fully support the quality-over-quantity mindset, but I feel that the current 3-day window could unintentionally hinder contributors who are eager and capable of handling more, especially during a time-limited event.

With full respect to your policies, I humbly request you to consider either reducing the cooldown period or allowing contributors to contribute more frequently where appropriate. I genuinely enjoy contributing and want to make the most of this opportunity while adhering to the spirit of the program.

Thank you again for your time, and I look forward to contributing further in any way I can.

Warm regards,
Amitosh Biswas

@adithya-adee
Copy link

adithya-adee commented May 16, 2025

@Community-Programmer I would definitely take this opportunity and make this happen. I would love to make the best out of this.

Could you assign me this issue?

@Community-Programmer
Copy link
Owner Author

@biswas2200

Thanks for actively contributing to the IEEE Summer of Code. The 3-day window is part of our Maintainer Guidelines, intended to promote fairness and ensure quality across all contributions. We understand your concerns, and for any suggestions or policy-related queries, we recommend reaching out to the IEEE SoC Core Team on Discord. They’ll be happy to hear your feedback and provide further clarity.

@Community-Programmer
Copy link
Owner Author

@adithya-adee Go Ahead!

@adithya-adee
Copy link

adithya-adee commented May 19, 2025

@Community-Programmer I have made the frontend. Should I also make the backend part?
To implement this, I will have to change the Prisma schema to include gamification.

I will implement all the routes and types.....
The following screenshots show only the sample data taken in JSON format to show a frontend demonstration.

Screenshots

Image
Image
Image

@adithya-adee
Copy link

@Community-Programmer I have started making the backend as well

@Community-Programmer
Copy link
Owner Author

@adithya-adee Yes, you can proceed. The reason this issue falls under the 'hard' category is that these features need to be fully implemented, including both the frontend and backend.

@adithya-adee
Copy link

Thank you for your response, @Community-Programmer. I will develop both the frontend and backend, ensuring it is compatible with Prisma and efficient.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backend enhancement New feature or request frontend Affects the frontend layer Hard help wanted Extra attention is needed #IEEESOC
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants