This project is a web application designed to recommend courses based on a user's programming background and preferences. The application uses a machine learning model to predict the best courses for users, which are then displayed in a user-friendly interface. The project includes a backend server, a frontend application, and a Python-based prediction service.
- User Authetication
- User can input their programming background and preferences.
- Machine learning model predicts a score based on user input.
- Courses are recommended based on the predicted score.
- User gives a quiz prior to enrolling in a course.
- Quiz generates a score which categorizes user in different levels.
- Based on levels user are suggested to start course from specific Lecture number.
- User-friendly interface to display recommended courses.
- Easy Navigation
- Frontend: React.js, CSS
- Backend: Node.js, Express
- Machine Learning: Python (pandas, joblib)
- Database: MongoDB (Atlas)
- Node.js and npm installed
- Python installed
- MongoDB database set up
- Clone the repository:
git clone https://github.com/your-username/adapted-course-recommendation.git
cd adapted-course-recommendation
- Set up the backend:
cd backend
npm install
- Set up the frontend:
cd ../frontend
npm install
- Set up the Python environment:
cd ../Prediction
pip install -r requirements.txt
- Load the machine learning model:
Place the prediction_model.pkl
file in the Prediction
directory.
- Set up environment variables:
Create a .env
file in the backend
directory with the following content:
MONGODB_URI=your_mongodb_connection_string
cd backend
nodemon index.js
cd frontend
npm start
cd Prediction
streamlit run predict.py
adapted-course-recommendation/
│
├── backend/
│ ├── routes/
│ ├── models/
│ ├── controllers/
│ ├── index.js
│ └── .env
│
├── frontend/
│ ├── src/
│ │ ├── components/
| | | |── screens/
│ │ ├── contexts/
│ │ ├── hooks/
│ │ ├── styles/
│ │ ├── App.js
│ │ └── index.js
│ ├── public/
│ └── package.json
│
├── Prediction/
│ ├── predict.py
│ └── prediction_model.pkl
│
├── README.md
└── .gitignore
Happy coding! 😊