A sophisticated recommendation system that suggests personalized video content based on user preferences and engagement patterns using deep neural networks. Ref: to see what kind of motivational content you have to recommend, take reference from our Empowerverse App ANDROID || iOS.
This project implements a video recommendation algorithm that:
- Delivers personalized content recommendations
- Handles cold start problems using mood-based recommendations
- Utilizes Graph/Deep neural networks for content analysis
- Integrates with external APIs for data collection
- Implements efficient data caching and pagination
- Backend Framework: FastAPI
- Documentation: Swagger/OpenAPI
- Virtual environment (recommended)
-
Clone the Repository
git clone https://github.com/Tim-Alpha/video-recommendation-assignment.git
cd video-recommendation-engine -
Set Up Virtual Environment
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
-
Install Dependencies
pip install -r requirements.txt
-
Configure Environment Variables Create a
.envfile in the root directory:FLIC_TOKEN=your_flic_token API_BASE_URL=https://api.socialverseapp.com
-
Run Database Migrations
alembic upgrade head
-
Start the Server
uvicorn app.main:app --reload
-
Get Personalized Feed
GET /feed?username={username}Returns personalized video recommendations for a specific user.
-
Get Category-based Feed
GET /feed?username={username}&project_code={project_code}Returns category-specific video recommendations for a user.
APIs for data collection:
-
Get All Viewed Posts (METHOD: GET):
https://api.socialverseapp.com/posts/view?page=1&page_size=1000&resonance_algorithm=resonance_algorithm_cjsvervb7dbhss8bdrj89s44jfjdbsjd0xnjkbvuire8zcjwerui3njfbvsujc5if -
Get All Liked Posts (METHOD: GET):
https://api.socialverseapp.com/posts/like?page=1&page_size=1000&resonance_algorithm=resonance_algorithm_cjsvervb7dbhss8bdrj89s44jfjdbsjd0xnjkbvuire8zcjwerui3njfbvsujc5if -
Get All Inspired posts (METHOD: GET):
https://api.socialverseapp.com/posts/inspire?page=1&page_size=1000&resonance_algorithm=resonance_algorithm_cjsvervb7dbhss8bdrj89s44jfjdbsjd0xnjkbvuire8zcjwerui3njfbvsujc5if -
Get All Rated posts (METHOD: GET):
https://api.socialverseapp.com/posts/rating?page=1&page_size=1000&resonance_algorithm=resonance_algorithm_cjsvervb7dbhss8bdrj89s44jfjdbsjd0xnjkbvuire8zcjwerui3njfbvsujc5if -
Get All Posts (Header required*) (METHOD: GET):
https://api.socialverseapp.com/posts/summary/get?page=1&page_size=1000 -
Get All Users (Header required*) (METHOD: GET):
https://api.socialverseapp.com/users/get_all?page=1&page_size=1000
For autherization pass Flic-Token as header in the API request:
Header:
"Flic-Token": "flic_e657dc77ce71262a4f5dc78e0c9e1bf02a7f0e186b664708c39369f182ad2518"Note: All external API calls require the Flic-Token header:
-
GitHub Repository
- Submit a merge request from your fork or cloned repository.
- Include a complete Postman collection demonstrating your API endpoints.
- Add a docs folder explaining how your recommendation system works.
-
Video Submission
- Introduction Video (30β40 seconds)
- A short personal introduction (with face-cam).
- Technical Demo (3β5 minutes)
- Live demonstration of the APIs using Postman.
- Brief overview of the project. Video Submission
- Introduction Video (30β40 seconds)
-
Notification
- Join the Telegram group: Video Recommendation
- Notify upon completion
- All APIs are functional
- Database migrations work correctly
- README is complete and clear
- Postman collection is included
- Videos are submitted
- Code is well-documented
- Implementation handles edge cases
- Proper error handling is implemented