Building a Tech Course Curriculums Platform with MindsDB Models and Django
Published: 2023-05-05 07:31:17

---
title: Building a Tech Course Curriculums Platform with MindsDB Models and Django
published: true
date: 2023-04-30 22:59:14 UTC
tags: 
canonical_url: https://thecodeway.hashnode.dev/building-a-tech-course-curriculums-platform-with-mindsdb-models-and-django
---

Introduction: As a developer, I often find myself overwhelmed by the abundance of free and paid online tech courses and resources. That's why I decided to build a platform that curates the best tech course curriculums and organizes them based on skill level, topic, and user feedback. To improve the user experience and accelerate app growth, I integrated MindsDB models for sentiment and text classification into the platform. In this tutorial, I'll walk you through how I used MindsDB models and Django for the backend and Next.js for the frontend to build this platform.

## Background

I built this project for a hackathon with the goal of helping new programmers find quality tech courses and resources. The platform curates the best resources and organizes them into curriculums based on user feedback. I wanted to improve the user experience and accelerate app growth by implementing MindsDB models for sentiment and text classification.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1682895270482/477b644d-37d2-4d91-846c-ac34d1fc9da5.png)

## How I used MindsDB Models

I used MindsDB models for sentiment and text classification to classify user curriculum reviews. The sentiment model determines if the review is positive, negative, or neutral, while the text classification model determines the topic or subject of the review, such as the quality of the resources, the user experience, or the difficulty level of the curriculum. The models are trained on a dataset of user reviews and are able to accurately classify new reviews with high accuracy.

To use MindsDB, I used some AI models from the Huggingface repository. I was able to utilize the models by using some SQL queries. I labeled the reviews based on their sentiment and topic and then used MindsDB to train the sentiment and text classification models on this labeled dataset. Once the models were trained, I integrated them into the backend API, which allows me to classify new user reviews in real-time.

## Backend and Frontend Technologies

I used Django for the backend of my platform. Django is a powerful and popular Python-based web framework that allowed me to rapidly build a scalable and secure web application. I used Django to handle user authentication, curriculum enrollment, and progress tracking. I also added quizzes to the curriculums, which allow users to test their knowledge and track their progress.

For the frontend, I used Next.js, a React-based framework that allowed me to build high-performance and SEO-friendly web applications. I used Next.js to create a responsive and intuitive user interface that makes it easy for users to discover and enroll in the curated curriculums. I also used Next.js to integrate the MindsDB models into the platform, allowing me to classify user reviews in real-time.

## Building The Project

I will cover the project build-up from the DB design to the product mvp completion. The repository for the completed project is listed below;

- [Backend Repository](https://github.com/devvspaces/roadflow-api)

- [Frontend Repository](https://github.com/devvspaces/roadflow-web)

### Database Design

By using [diagram software](https://dbdiagram.io/), I designed a database diagram that I can follow.

![](https://github.com/devvspaces/roadflow-api/raw/dev/Roadflow%20DB.png)

This helped me get clarity on how I am going to structure the complex project. I could get tables that are related to each other and how to categorize the apps in Django. It saved me a lot of time instead of just jumping on the project without direction.

### Application Design

I designed the frontend application using NextJs, Redux, Formik, and Chakra. I mustn't try to rebuild the wheel for form validation or basic components. Chakra helped to move faster with design, I won't say the app design is perfect but it was amazing to build.

I used redux to manage some of my states when working on the curriculum learning navigation. It was needed to send state changes to a parent component. I used redux for this purpose made it very easy to update the navigation based on the current tab being viewed by the learner.

## Impact

By using MindsDB models, I'm able to quickly and accurately classify user curriculum reviews, allowing me to identify and address areas for improvement. Using the MindsDb cloud made it easier to integrate AI into the application. Doing this the manual way is not easy to manage.

This helps me to continually improve the platform and curate the best possible curriculums for users. Additionally, by using Django and Next.js, I'm able to build a scalable and secure platform that can handle a large number of users and provide a seamless user experience.

## Conclusion

In this tutorial, I showed you how to use MindsDB models and Django for the backend and Next.js for the frontend to build a tech course curriculums platform. By implementing MindsDB models for sentiment and text classification, you can quickly and accurately classify user curriculum reviews and improve the user experience of your platform. With the power of Django and Next.js, you can build a scalable and secure platform that provides a seamless user experience.