Social is a modern social media platform designed to provide personalized content recommendations and seamless user interactions.
- Personalized Recommendations: AI-powered recommendations for timeline, explore, and follow suggestions.
- Post View Tracking: Tracks posts users have seen to avoid showing duplicate content.
- Infinite Scroll: Smooth infinite scrolling for timeline and explore pages.
- User Profiles: View and manage user profiles with posts and follower details.
- Content Categorization: Posts categorized by user interests for better discovery.
- Authentication: Secure login and user management.
- Dockerized Environment: Simplifies development and deployment with Docker.
- TypeScript Support: Ensures type safety and modern JavaScript features.
├── app.ts
├── dev.sh
├── docker-compose.override.yml
├── docker-compose.yml
├── Dockerfile
├── Dockerfile.dev
├── package.json
├── pnpm-lock.yaml
├── prod.sh
├── README.md
├── tsconfig.json
├── algorithm/
│ ├── app/
│ │ ├── main.py
│ │ ├── model.py
│ │ ├── utils.py
├── app/
│ ├── controllers/
│ ├── lib/
│ ├── middleware/
│ ├── models/
│ ├── public/
│ ├── router/
│ ├── services/
│ ├── scripts/
- Node.js
- Docker
- Python 3.11+
-
Clone the repository:
git clone https://github.com/your-repo/social-recommender.git
-
Install dependencies:
pnpm install
-
Set up environment variables:
- Create a
.envfile in the root directory. - Add necessary configurations for MongoDB, Python service, and other dependencies.
- Create a
-
Start the services:
docker-compose up --build
/timeline: Fetches the user's timeline with personalized recommendations./ai/explore: Provides AI-powered explore page recommendations./ai/users/recommended: Suggests users to follow based on interests and connections./user/seen-posts: Tracks and manages posts seen by the user.
/recommend/timeline/{user_id}: AI recommendations for the timeline./recommend/explore/{user_id}: AI recommendations for the explore page./recommend/users/{user_id}: AI-powered follow suggestions.
Contributions are welcome! Please follow these steps:
- Fork the repository.
- Create a new branch for your feature or bug fix.
- Submit a pull request.
This project is licensed under the MIT License. See the LICENSE file for details.