📘 CourseHub AI — My Full-Stack AI-Powered Learning Companion

🌱 Inspiration

As a student constantly navigating countless online learning platforms, I often found it overwhelming to choose the right course. Sometimes I’d spend more time searching than learning. The idea behind CourseHub AI was born from a simple frustration: "Why can’t a platform understand what I want and just recommend the best course for me?"

I wanted to build a platform that wasn't just another course aggregator, but one that understood the user. One that could chat, recommend, and adapt — just like a tutor or friend might. That’s how CourseHub AI came to life.


🛠️ How I Built It

I structured the project as a full-stack web application, integrating several technologies and languages:

⚙️ Backend — Java Spring Boot

  • Served as the core API server.
  • Handled user input and routed requests to various services.
  • Performed server-side logic and controlled data flow.

🎨 Frontend — React

  • Clean and responsive UI for user interaction.
  • Collected course-related queries and sent them to the backend.
  • Displayed personalized recommendations and chatbot responses.

🧠 AI Services — Python + FastAPI

There were two AI-powered Python services:

  • A course recommender that uses TF-IDF vectorization and cosine similarity to match user interests with relevant courses.
  • A chatbot API that simulates a conversation with an educational assistant, helping users describe what they want.

These services work independently and return JSON responses to the backend, which then sends the data to the frontend.

🗄️ Database — Microsoft SQL Server

  • Stored course data like titles, descriptions, ratings, and URLs.
  • Handled queries from the backend to provide fast, accurate course information.

📚 What I Learned

This project stretched me across multiple domains:

  • Backend design using Spring Boot taught me how to structure RESTful APIs, manage services, and handle JSON data effectively.
  • Frontend development helped me understand how to use React components, hooks, and form state.
  • Natural Language Processing (NLP) taught me how to vectorize text and build intelligent, similarity-based models.

The recommendation engine uses TF-IDF (Term Frequency–Inverse Document Frequency) to convert course descriptions into vector space. The formula for each word ( t ) in a document ( d ) is:

[ \text{TF-IDF}(t, d) = \text{TF}(t, d) \times \log\left(\frac{N}{\text{DF}(t)}\right) ]

Where:

  • ( \text{TF}(t, d) ) is the frequency of term ( t ) in document ( d ),
  • ( N ) is the total number of documents,
  • ( \text{DF}(t) ) is the number of documents that contain term ( t ).

Once vectorized, I used cosine similarity to compare the user's input with every course:

[ \text{similarity}(\vec{A}, \vec{B}) = \frac{\vec{A} \cdot \vec{B}}{|\vec{A}| |\vec{B}|} ]

This technique allowed the system to recommend courses that were semantically close to the user’s query.


🧗 Challenges I Faced

🧩 Multi-Language Integration

Since I used both Java and Python, coordinating APIs, handling CORS issues, and maintaining data flow between the backend and AI services was challenging.

🧠 Making AI Feel “Smart”

Simple NLP techniques often return irrelevant results unless fine-tuned. I had to clean the data, remove stop words, and combine course titles and descriptions to make the vector representation more meaningful.

🔄 State Management

Keeping the frontend reactive and clean was difficult. Handling API states, user input, and conditional rendering (especially with async calls) required careful design and React experience.


🌟 Final Thoughts

Building CourseHub AI was more than just a coding exercise — it was a full-stack, multi-disciplinary learning journey. From REST APIs to AI-driven recommendations, from UI/UX design to NLP integration, I encountered the very same problems that real-world engineers face — and solved them.

This project made me a better:

  • Engineer — by writing scalable, modular code
  • Communicator — through UI design and chatbot interaction
  • Thinker — by applying mathematical concepts to real applications

I hope that CourseHub AI can grow into something that helps others discover their learning path — faster, smarter, and more meaningfully.

Built With

Share this project:

Updates

Submission history