Navigate to backend directory:
cd backend
Create and activate virtual environment:
python3 -m venv venv
source venv/bin/activate
Install dependencies:
pip install -r requirements.txt
Run the backend server:
uvicorn app.main:app --reload --port 8000
Backend API will be available at http://localhost:8000
Navigate to frontend directory:
cd frontend
Install dependencies:
npm install
Run the development server:
npm run dev
Frontend will be available at http://localhost:5173
The datasets are located in backend/data/:
movies_example/ - Small example dataset for testingmovies_large/ - Larger dataset for production useEach dataset contains:
users.csv - User IDs and namesmovies.csv - Movie IDs, titles, and yearsratings.csv - User ratings for moviesbackend/app/data_loader.py) - Loads and parses CSV filesbackend/app/similarity.py) - Euclidean distance and Pearson correlationbackend/app/recommender.py) - Generates recommendations using collaborative filteringbackend/app/main.py) - REST endpoints for frontend communicationfrontend/src/lib/api.js) - Communicates with backendfrontend/src/App.svelte) - Main application componentfrontend/src/lib/Controls.svelte) - User and algorithm selectionfrontend/src/lib/SimilarUsers.svelte) - Displays similar usersfrontend/src/lib/MovieRecommendations.svelte) - Displays movie recommendationsGET /api/users?dataset=movies_example - List all usersGET /api/recommendations?user=Mike&algorithm=euclidean&dataset=movies_example - Get movie recommendationsGET /api/similar-users?user=Mike&algorithm=euclidean&dataset=movies_example - Get similar users