https://github.com/josedanielcr/aiorchestra
AIOrchestra is a microservice-based application that provides personalized song recommendations. It uses .NET Core, Kafka, and a cosine similarity-based recommendation system to deliver tailored music suggestions.
https://github.com/josedanielcr/aiorchestra
angular apache-kafka docker dot-net-core event-driven-architecture microservices
Last synced: 5 months ago
JSON representation
AIOrchestra is a microservice-based application that provides personalized song recommendations. It uses .NET Core, Kafka, and a cosine similarity-based recommendation system to deliver tailored music suggestions.
- Host: GitHub
- URL: https://github.com/josedanielcr/aiorchestra
- Owner: josedanielcr
- Created: 2024-05-02T22:35:28.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2024-07-25T04:36:57.000Z (almost 2 years ago)
- Last Synced: 2025-02-04T00:20:36.754Z (over 1 year ago)
- Topics: angular, apache-kafka, docker, dot-net-core, event-driven-architecture, microservices
- Language: C#
- Homepage:
- Size: 6.5 MB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# AIOrchestra
AIOrchestra leverages a scalable and efficient event-driven architecture with microservices to deliver personalized song recommendations. It is built using .NET Core, Kafka, Docker, and a recommendation system based on cosine similarity, making it an ideal project for learning and practicing these technologies.
## Table of Contents
- [Features](#features)
- [Technologies](#technologies)
- [Installation and Running Guide](#installation-and-running-guide)
- [Possible Errors](#possible-errors)
## Features
- **Microservice Architecture**: Independent, scalable services for different functionalities.
- **Event-Driven Architecture**: Utilizes Kafka for asynchronous communication between services.
- **Music Recommendation**: Custom recommendation system using cosine similarity to find similar songs based on user preferences.
- **Docker**: Containerized services for consistent deployment and management.
## Technologies
- **.NET Core**: Framework for building microservices.
- **Kafka**: Event streaming platform for managing communication between services.
- **Docker**: Containerization for deployment consistency.
## Installation and Running Guide
Follow these steps to set up and run AIOrchestra:
- Clone the repository:
cd AIOrchestra
- Add a folder named `certificates` at the root of the project.
- Add `dotnet-dev-certs` to the `certificates` folder. Check Microsoft Documentation (https://learn.microsoft.com/en-us/dotnet/core/tools/dotnet-dev-certs) for more information.
- Navigate to the `MusicRecommenderService` directory and add a `certificates` folder.
- Add the server certificates (`server.crt` and `server.key`) to the `certificates` folder. Check this guide (https://helpcenter.gsx.com/hc/en-us/articles/115015960428-How-to-Generate-a-Self-Signed-Certificate-and-Private-Key-using-OpenSSL) for more information.
- Stay in the `MusicRecommenderService` directory and add a `data` folder.
- Download the `Music Info.csv` from this Kaggle dataset (https://www.kaggle.com/datasets/undefinenull/million-song-dataset-spotify-lastfm).
- Add the downloaded CSV file to the `data` folder and rename it to `music_data.csv`.
- In the root folder of the project, run the following command to build and start the services:
docker compose up --build -d
- Go to http://localhost:4200 to enjoy some music recommendations.
## Possible Errors
- If `kafka broker-1` does not start automatically, rerun it from Docker Desktop using the ">" button.
- If the website does not render information, navigate directly to http://localhost:4200/explore.
- If after logging in for the first time nothing happens, reload the page as the services and Kafka broker are warming up.