📘 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.
Log in or sign up for Devpost to join the conversation.