A personalized content aggregator that fetches and curates content from various online sources based on user preferences.
- Content aggregation from RSS feeds, X/Twitter, and social media
- Personalized content recommendations using machine learning (LightGBM)
- User interaction tracking for improved recommendations
- Privacy controls for user data
- Clean, responsive user interface
- Backend: Node.js, Express
- Frontend: React.js
- Databases: MongoDB (content storage), PostgreSQL (user data)
- Recommendation Engine: Python with LightGBM (Machine Learning)
- Node.js (v14+)
- Python 3.7+
- MongoDB
- PostgreSQL
- Clone the repository
git clone <repository-url>
cd GlovePost- Set up the backend
cd backend
npm install- Set up the frontend
cd frontend/glovepost-ui
npm install- Configure environment variables
Edit the .env file in the backend directory to match your database settings:
PORT=3000
MONGO_URI=mongodb://localhost:27017/glovepost
PG_URI=postgres://user:password@localhost:5432/glovepost
- Run the setup scripts
# General setup
cd scripts
chmod +x run_setup.sh
./run_setup.sh
# Set up ML environment (optional)
chmod +x setup_ml_env.sh
./setup_ml_env.shThese scripts will:
- Create necessary database tables
- Set up Python environment
- Fetch initial content
- Set up the machine learning environment (if running setup_ml_env.sh)
- Start the backend server
cd backend
npm run dev- Start the frontend development server
cd frontend/glovepost-ui
npm start- Access the application
Open your browser and navigate to http://localhost:3001
backend/server.js- Main Express applicationbackend/routes/- API routesbackend/models/- Database models
frontend/glovepost-ui/src/components/- React componentsfrontend/glovepost-ui/src/services/- API communication
scripts/content_aggregator.py- Fetches content from sourcesscripts/refresh_content.py- Multithreaded content scraping systemscripts/recommendation_engine.py- Generates basic personalized recommendationsscripts/ml_recommendation_engine.py- Machine learning-based recommendation systemscripts/test_ml_recommendation.py- Unit tests for the ML recommendation engine
For more details on the ML recommendation system, see ML_RECOMMENDATIONS.md
For more details on the multithreaded scraper, see SCRAPER_README.md
GET /content/latest- Get latest content
GET /user/:id- Get user informationPOST /user/preferences- Update user preferencesPOST /user/consent- Update tracking consent
GET /recommendations/:userId- Get personalized recommendations- Add
?ml=truequery parameter to use the ML-based engine
- Add
POST /recommendations/train- Train the ML recommendation model
POST /interaction/track- Track user interaction with contentGET /interaction/:userId- Get user interaction historyDELETE /interaction/:userId- Clear user interaction history
MIT