Learnify is a comprehensive course recommendation platform designed to help users achieve their learning goals efficiently. The platform, built with Angular and Node.js, incorporates AI and data science functionalities using Python and Flask. PostgreSQL is employed as the database, and the entire application is containerized using Docker. For those interested in container orchestration, Kubernetes manifests are also provided.
Learnify is a course recommendation platform that enables users to input learning preferences, budget constraints, and weekly time commitments. Leveraging AI and data science, the platform generates a master course—a curated set of courses tailored to the user's objectives. The technology stack includes Angular for the frontend, Node.js for the backend, Python and Flask for AI/data science, and PostgreSQL as the database. Docker is employed for seamless deployment and scaling, with optional Kubernetes support.
Before starting, ensure you have the following installed:
- Node.js
- Angular CLI
- Python
- Flask
- PostgreSQL
- Docker (optional)
- Kubernetes (optional)
-
Clone the Learnify repository:
git clone https://github.com/sanchi-t/Learnify.git cd learnify
-
Install frontend and backend dependencies:
# Install frontend dependencies cd client npm install # Install backend dependencies cd ../server npm install
-
Install Python Dependencies: Ensure you have the required Python dependencies installed for the AI/model component:
# Install Python dependencies cd ../model pip install -r requirements.txt
-
Create a .env file in the server folder with the following content:
NODE_ENV=development PORT=<port> MODEL_API=<model api> POSTGRESQL_DB_HOST = <host> POSTGRESQL_DB_USER = <username> POSTGRESQL_DB_PASSWORD = <password> POSTGRESQL_DB = <database name>
-
Create an environment.ts file in the client/src/environments folder with the following content:
export const environment = { production: false, apiUrl: 'http://localhost:3000', // Adjust if necessary };
-
Start the backend server:
cd server node index
-
In a separate terminal, start the Angular frontend:
cd client ng serve
-
Open your browser and navigate to http://localhost:4200 to access Learnify
Docker images can be built using the provided Dockerfiles. Make sure Docker is installed.
-
Build the backend Docker image:
docker build -t learnify-backend -f server/Dockerfile .
-
Build the frontend Docker image:
docker build -t learnify-frontend -f client/Dockerfile .
-
Build the flask Docker image:
docker build -t learnify-model -f model/Dockerfile .
-
Run Docker containers:
docker run -d -p 3000:3000 learnify-backend docker run -d -p 8080:80 learnify-frontend docker run -d -p 5000:5000 learnify-frontend
Kubernetes manifests are available in the kubernetes
folder.
-
Install
kubectl
: Follow the instructions here to installkubectl
for your specific operating system. -
Install
minikube
: Follow the instructions here to installminikube
for your specific operating system. -
Start
minikube
cluster:minikube start
-
Apply the manifests:
kubectl apply -f kubernetes/
-
Access the Learnify application through the exposed services:
minikube service learnify-frontend