Built with React and Django, this app uses APScheduler and BeautifulSoup4 to schedule web scraping from blog sites like LiveScience. It then curates blogs based on user-selected topics to deliver a seamless, personalized reading experience.
The web scraping process incorporates throttling to ensure ethical data extraction. Throttling minimizes the load on target websites, preventing performance issues and reducing the risk of being blocked.
- Prerequisites.
- Installation.
- Environment Setup.
- Frontend Setup.
- Running the Application.
- License.
Before you begin, ensure you have the following installed:
- Git
- Python (3.x)
- Node.js
- virtualenv
Clone the repository and set up your virtual environment:
- Clone the repository:
git clone https://github.com/Koech01/savvy-blog.git
python3 -m venv savvy-blog/
cd savvy-blog- Install dependencies:
source bin/activate
pip install -r requirements.txtConfigure the environment:
- Create an .env file:
touch .env - Generate a Django secret key:
python -c 'from django.core.management.utils import get_random_secret_key; print(get_random_secret_key())'- Open the
.envfile and add the following lines, with your newly generated secret key forSECRET_KEY. Make sure to keep DEBUG=True for local development:
SECRET_KEY=your_generated_secret_key_here
DEBUG=True- Set up the frontend by navigating to the frontend directory and installing dependencies:
cd frontend
npm install
npm run build
cd ..- Start the Django development server:
python manage.py runserver You can now access the application at http://127.0.0.1:8000/.
This project is licensed under the MIT License.