An AI-powered tool for generating and scheduling social media posts from news sources.
- 🤖 AI-powered post generation from RSS feeds
- 📅 Automated post scheduling
- 📱 Multi-platform support (LinkedIn, Twitter)
- 📊 Post history tracking and analytics
- 📧 Email notifications
- 🔐 User authentication and management
- Python 3.8+
- Node.js 14+
- SQLite (or another supported database)
- OpenAI API key
# Create venv
python -m venv venv
# Activate venv
# On Windows:
venv\Scripts\activate
# On Unix/MacOS:
source venv/bin/activatepip install -r requirements.txt# Copy template
cp .env.template .env
# Edit .env with your values, especially:
# - SECRET_KEY (generate a secure random string)
# - OPENAI_API_KEY (get from OpenAI dashboard)
# - SMTP settings (if you want email notifications)# Run initialization script
python scripts/init_db.py admin@example.com your_password# Start with hot reload
uvicorn src.main:app --reload --port 8000# Navigate to frontend directory
cd frontend
# Install dependencies
npm install# Create .env file
echo "REACT_APP_API_BASE_URL=http://localhost:8000/api/v1" > .envnpm start- Open your browser and navigate to
http://localhost:3000 - You should see the login page
- Use the superuser credentials you created:
- Email: admin@example.com
- Password: your_password
- Click "Create Post" in the sidebar
- Add a news source (example RSS feeds):
- TechCrunch:
https://techcrunch.com/feed/ - The Verge:
https://www.theverge.com/rss/index.xml
- TechCrunch:
- Select platforms (LinkedIn/Twitter)
- Click "Generate Posts"
- Check the generated post content
- Verify it's saved in Post History
- Check the database entries:
# Using SQLite CLI
sqlite3 linkedpost.db
# View posts
SELECT * FROM post_history;
# View users
SELECT * FROM users;- Check logs in the terminal running uvicorn
- Verify database connection:
sqlite3 linkedpost.db .tables- Check API endpoints at
http://localhost:8000/docs
- Check browser console for errors
- Verify API connection:
curl http://localhost:8000/api/v1/health- CORS errors: Verify ALLOWED_ORIGINS in .env
- Database errors: Delete linkedpost.db and rerun init_db.py
- Authentication issues: Clear browser localStorage and login again
- API documentation:
http://localhost:8000/docs - Health check:
http://localhost:8000/api/v1/health
# Check database size
ls -lh linkedpost.db
# Check table structure
sqlite3 linkedpost.db ".schema"- Check scheduled jobs in the backend logs
- View scheduled tasks in the frontend Scheduler panel
After verifying basic functionality:
- Set up proper email notifications
- Configure social media platform API keys
- Add more news sources
- Customize post generation prompts
Need help? Check the error logs or create an issue in the repository.
├── src/ # Backend source code
│ ├── api/ # API endpoints
│ │ ├── api/ # API endpoints
│ │ ├── core/ # Business logic
│ │ ├── models/ # Database models
│ │ └── utils/ # Utility functions
│ ├── frontend/ # React frontend
│ │ ├── src/
│ │ │ ├── components/ # Reusable components
│ │ │ ├── pages/ # Page components
│ │ │ └── services/ # API services
│ │ └── public/
│ ├── scripts/ # Utility scripts
│ ├── migrations/ # Database migrations
│ └── tests/ # Test suites
└──
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'feat: add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
Project Link: https://github.com/jxwalker/linked-post-generator