Inspiration

Online learning platforms provide thousands of courses and learning resources, but having too many choices can make learning difficult rather than easier. A learner may know that they want to become a Full-Stack Developer, for example, but still struggle to decide what to learn first, which skills they are missing, and when they are actually ready to move to the next topic.

We wanted to build a system that does more than simply recommend courses.

Our goal was to create an AI-powered learning platform that understands a learner's goals, experience, skills, learning preferences, and actual learning behavior, and then converts that information into a personalized and adaptive learning journey.

The idea behind AI-Powered Personalized Learning is simple:

Instead of asking learners to find their own path through a huge catalog, let AI build the path around the learner.


What it does

AI-Powered Personalized Learning is an intelligent learning platform that creates personalized learning paths based on an individual's goals, skills, experience, and learning behavior.

The platform provides several connected capabilities:

  • Personalized Learning Path

    • Creates a structured learning journey based on the learner's career goal and current abilities.
    • Organizes learning into meaningful milestones rather than presenting an overwhelming list of resources.
    • Recommends resources appropriate to the learner's current level.
  • Course & Resource Catalog

    • Provides a centralized catalog of courses and YouTube learning resources.
    • Resources contain information such as title, description, skills, difficulty level, duration, platform, and external link.
    • Learners can search and filter resources according to their requirements.
  • AI-Powered Assessments

    • Generates technical assessments to evaluate the learner's knowledge.
    • Helps identify knowledge gaps and understand whether the learner is ready for the next stage.
    • Assessment results can be used as an additional signal for personalization.
  • Learning Progress Tracking

    • Tracks meaningful learning activity instead of displaying arbitrary progress percentages.
    • Progress is intended to reflect what the learner has actually completed and achieved.
    • This helps prevent misleading progress information before the learner has performed any learning activity.
  • AI Mentor

    • Provides an interactive conversational assistant for learning-related questions.
    • Learners can ask questions about concepts, technologies, or difficulties they encounter.
    • The mentor is designed to understand the learner's question before providing an answer and can act as a learning companion throughout the journey.
  • Adaptive Learning

    • The platform is designed around the idea that every learner should not receive exactly the same learning path.
    • Learner goals, skill levels, assessments, and learning behavior can influence recommendations and progression.

How we built it

We built the project as a full-stack web application with a separate frontend, backend, AI services, and database layer.

Frontend

The frontend provides the learner-facing experience, including:

  • Dashboard
  • Curriculum Catalog
  • Assessments
  • Learning Path
  • AI Mentor
  • Authentication
  • Learner profile and onboarding

The interface was designed to keep the learning journey simple and focused instead of overwhelming the learner with too much information.

Backend

The backend is built using Java and Spring Boot.

It provides APIs for:

  • Authentication
  • Learner profiles
  • Courses and learning resources
  • Skills
  • Learning paths
  • Assessments
  • Progress tracking
  • AI mentor interactions
  • Health and database monitoring

The backend uses JWT-based authentication to secure protected APIs.

Database

We use PostgreSQL with Supabase as the production database.

The database stores the core learning data, including:

  • Users
  • Learner profiles
  • Courses
  • YouTube resources
  • Skills
  • Course-skill relationships
  • Learning paths
  • Assessment information
  • Learning activity

We also use PostgreSQL's vector capabilities for storing embeddings used by the AI/recommendation components.

AI Layer

The AI functionality uses NVIDIA NIM.

We use an LLM for intelligent learning interactions and generation tasks, while an embedding model is used to convert learning content and learner goals into vector representations.

The current AI configuration includes:

  • LLM: nvidia/nemotron-3-super-120b-a12b
  • Embedding Model: nvidia/llama-nemotron-embed-vl-1b-v2
  • Embedding Dimension: 2048

The embedding layer allows the system to represent learner goals and learning resources in a form that can be used for semantic matching and recommendation.

Resource Import Pipeline

We created a CSV-based resource ingestion pipeline to populate the learning catalog.

The dataset contains learning resources covering areas such as:

  • Full Stack Development
  • Frontend Development
  • Backend Development
  • Data Structures & Algorithms
  • System Design
  • Java
  • Python
  • C++
  • HTML
  • CSS
  • JavaScript
  • YouTube learning resources

The importer was designed to be idempotent, meaning that running the import multiple times should not create duplicate resources.

It uses two levels of duplicate protection:

  1. External ID matching
  2. Title + resource type matching

This makes the production import process safer and easier to repeat.


Challenges we ran into

Building the project required solving several practical engineering challenges.

1. Designing meaningful personalization

A major challenge was deciding what information should influence a learner's path.

A recommendation system cannot simply recommend popular courses. It needs to consider factors such as:

  • Career goal
  • Existing skills
  • Experience level
  • Learning preferences
  • Knowledge gaps
  • Assessment results
  • Actual learning behavior

We therefore designed the platform around multiple learner signals rather than relying on a single recommendation rule.

2. Connecting AI with structured learning data

Another challenge was connecting generative AI with a structured course catalog.

Instead of allowing the AI to invent arbitrary learning resources, the system maintains a structured catalog containing course metadata and skill relationships.

Embeddings provide another layer of semantic understanding for matching learner goals and learning resources.

3. Preventing misleading progress

During development, we identified an important product issue: progress should not appear high simply because a learner has created an account or received a recommended path.

A learner who has completed no learning activity should not suddenly see something like 95% progress.

We therefore focused on making progress represent actual learning behavior and completion rather than fabricated values.

4. Production database migration

Moving the application from a development database to a production PostgreSQL/Supabase environment introduced additional challenges.

We had to verify:

  • Database connectivity
  • Environment variables
  • Resource imports
  • Vector embeddings
  • Duplicate protection
  • Production authentication
  • Backend health

We also added database health monitoring so that production connectivity can be checked independently.

5. Large-scale resource importing

The learning catalog contains hundreds of course and video resources.

Importing resources also requires generating embeddings, which introduces API rate limits and processing time.

To make the process safer, we added configurable embedding delays, improved logging, duplicate protection, and post-import verification.

6. Authentication and expired sessions

Because the application uses JWT authentication, expired tokens can cause protected API requests to fail.

During production testing, we identified expired-token requests in the backend logs and used those logs to diagnose authentication/session issues.

This highlighted the importance of handling token expiration cleanly on both the frontend and backend.


Accomplishments that we're proud of

We are proud that the project evolved beyond a simple course recommendation interface into a complete learning ecosystem.

Some of the major accomplishments include:

  • Built a complete full-stack personalized learning platform.
  • Implemented JWT-based authentication.
  • Created a structured learning resource catalog.
  • Integrated PostgreSQL/Supabase for production data storage.
  • Integrated NVIDIA NIM for LLM and embedding capabilities.
  • Added semantic embeddings for learning resources and learner goals.
  • Built an AI Mentor for interactive learning assistance.
  • Added AI-generated technical assessments.
  • Designed personalized learning-path generation.
  • Implemented learning progress tracking.
  • Built a CSV resource import pipeline.
  • Added duplicate protection to make imports idempotent.
  • Added production database health monitoring.
  • Tested the backend extensively with automated tests.
  • Deployed the frontend and backend as a production web application.

What we learned

One of our biggest lessons was that personalization is much more than simply asking an LLM to recommend courses.

A useful personalized learning system requires a combination of:

Learner Data + Structured Content + AI + Behavioral Signals + Assessment

We also learned that production engineering is very different from building a prototype.

Features such as authentication, database migrations, environment configuration, duplicate prevention, API failures, token expiration, health monitoring, rate limits, and deployment reliability become just as important as the AI itself.

Another important lesson was that AI-generated recommendations need to be grounded in reliable data. A model can generate an impressive answer, but the learning experience becomes much more useful when AI works together with a structured and verified resource catalog.


What's next for AI-Powered Personalized Learning

Our future goal is to make the learning path increasingly adaptive.

Potential improvements include:

  • More advanced learner behavior analysis.
  • Real-time learning-path adaptation.
  • Better knowledge-gap detection.
  • More personalized assessment difficulty.
  • Spaced-repetition recommendations.
  • Skill mastery prediction.
  • Improved semantic recommendation algorithms.
  • More learning resources and domains.
  • Deeper integration between assessment results and learning paths.
  • Personalized daily learning plans.
  • Stronger AI Mentor context awareness.
  • Learning analytics for identifying strengths and weaknesses.
  • More advanced recommendation models using historical learner behavior.

Ultimately, we want the platform to evolve from a system that recommends what to learn into a system that continuously understands how a learner learns and adapts the entire journey around them.

Built With

Share this project:

Updates

Submission history