ArticlesPlus is a full-stack web application designed to aggregate, display, and rank news article titles. Built with Django, Next.js, and React.js, and utilizing technologies like uWSGI, Nginx, PostgreSQL, Celery, RabbitMQ, OpenAI API, and SSL, ArticlesPlus offers a robust and scalable platform for news curation. The application showcases article titles in a responsive, masonry-style layout and supports customizable color themes including light mode, dark mode, yellow, green, and pink, catering to user preferences for a more personalized browsing experience.
- News Article Aggregation: Dynamically fetches and updates news articles using RSS feeds.
- Intelligent Ranking: Leverages the OpenAI API to analyze and rank articles based on relevance and quality.
- Customizable Themes: Users can choose between various color themes for a personalized browsing experience.
- Responsive Layout: Employs React.js and Masonry layout for a fluid, responsive design across different screen sizes.
- Secure Communication: Uses self-signed SSL certificates for localhost to ensure encrypted data transmission.
- Efficient Background Tasks: Utilizes Celery workers with RabbitMQ for asynchronous task processing, enhancing the application's performance and scalability.
- Professional Deployment: Leverages uWSGI and Nginx for a robust, production-ready deployment, avoiding the need for development servers.
This project is developed and tested in the following environment:
- Ubuntu Linux 22.04.4 LTS
- Python 3.10.12
- Node.js 10.2.5
-
Clone the repository
git clone https://github.com/pkimani/ArticlesPlus.git cd ArticlesPlus
-
Backend Setup (Django)
- Ensure you have Python 3.10 and virtualenv installed.
- Create and activate a virtual environment:
python3 -m venv env source env/bin/activate
- Install dependencies:
pip install -r requirements.txt
- Migrate the database:
python manage.py migrate
-
Frontend Setup (Next.js)
- Navigate to the Next.js project directory:
cd djrssproj-next
- Install Node.js dependencies:
npm install
- Build and start the Next.js production server:
npm run build npm start
- Navigate to the Next.js project directory:
-
uWSGI and Nginx Configuration
- Follow the guides provided in
/Configuration/Nginx
and/Configuration/uWSGI
to configure uWSGI and Nginx for serving the Django application.
- Follow the guides provided in
-
Environment Variables
- Set up the necessary environment variables in
Configuration/environment_variables
:DJANGO_SECRET_KEY=your_secret_key OPENAI_API_KEY=your_openai_api_key POSTGRES_PASSWORD=your_postgres_password
- Set up the necessary environment variables in
-
Generate SSL Certificates
- Follow steps to generate self-signed SSL certificates for localhost, ensuring secure communication during development.
Access the web application by navigating to the configured domain/URL in your web browser.
To change the theme, navigate to the settings within the web interface and select your preferred theme from the available options.
Contributions are welcome! Please see CONTRIBUTING.md for how you can contribute to ArticlesPlus.
This project is licensed under the GPL License - see the LICENSE file for details.
- OpenAI API for the AI-driven analysis capabilities.
- The Django and Next.js communities for the foundational frameworks.
- Celery and RabbitMQ for background task processing solutions.