NewsLy is a modern news aggregation web application that allows users to discover, filter, and save articles from various news sources around the world. With a sleek dark-themed interface and powerful filtering capabilities, NewsLy makes it easy to stay informed about topics that matter to you.
- User Authentication - Create an account and securely log in
- Multi-Source Aggregation - Browse news from numerous sources in one place
- Advanced Filtering - Filter by keyword, source, domain, language, and date
- Article Saving - Save interesting articles to your personal collection
- Responsive Design - Seamless experience across desktop and mobile devices
- Dark Theme - Easy on the eyes for extended reading sessions
- Django - Robust Python web framework
- SQLite - Lightweight database for user data and preferences
- News API - Real-time access to headlines and articles
- CORS Headers - Secure cross-origin requests
- React - Modern, component-based UI library
- Material UI - Polished UI components
- Tailwind CSS - Utility-first CSS framework
- React Icons - Beautiful icon set
- Vite - Fast build tooling
- Node.js (v18 or higher)
- Python (v3.8 or higher)
- pip (Python package manager)
-
Clone the repository
git clone https://github.com/yourusername/newsly.git cd newsly -
Create and activate a virtual environment
python -m venv env # On Windows env\Scripts\activate # On macOS/Linux source env/bin/activate
-
Install dependencies
pip install -r requirements.txt
-
Run migrations
cd platform_app python manage.py migrate -
Start the Django server
python manage.py runserver
-
Navigate to the frontend directory
cd news_frontend -
Install NPM packages
npm install
-
Start the development server
npm run dev
-
Open your browser and navigate to:
http://localhost:5173
- Create a new account by clicking "Sign Up" on the login screen
- Enter your username, email, and password to register
- Use your credentials to log in to the application
- Use the filter form to search by keyword, source, or domain
- Apply additional filters such as language, date range, and content type
- Click "Search" to retrieve matching articles
- Click the "Save" button next to any article to add it to your collection
- View your saved articles in the "Saved Collection" sidebar
- Click "View" to open the original article in a new tab
- Click on any article row to view additional details
- See the full description, content preview, and article image
- Access the original source via the "Read more" link
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some 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.
- News API for providing access to news sources
- Material UI for the beautiful React components
- Tailwind CSS for the utility-first CSS framework
- React Icons for the icon set
