Horizon News Hub is a modern and responsive news aggregator web application built with React.js. It pulls news articles from multiple trusted sources, providing a seamless experience for users to explore, search, and personalize their news feed. With robust filtering options and a clean interface, the application focuses on delivering news efficiently and intuitively. The project is containerized using Docker and deployable on various platforms.
- Features
- Technologies Used
- Setup and Installation
- Usage and Examples
- Code Organization and Structure
- Contributions and Feedback
- Acknowledgements and Credits
- License
- Article Search and Filtering:
- Search for articles using keywords.
- Filter results by date, category, and source.
- Personalized News Feed:
- Create a custom feed by selecting preferred news sources, categories, and authors.
- Mobile-Responsive Design:
- Fully optimized for desktop and mobile viewing.
- API Integration:
- Leverages multiple APIs (NewsAPI, The Guardian API, New York Times API) to gather diverse and up-to-date articles.
- Frontend:
- React.js: Library for building user interfaces.
- React Bootstrap: Pre-styled UI components.
- State Management:
- Redux Toolkit: Simplified state management.
- HTTP Requests:
- Axios: For fetching data from APIs.
- Backend Deployment:
- Docker: For containerization and deployment.
- APIs for News Data:
To run the application locally or in a Dockerized environment, follow these steps:
- Clone the Repository:
git clone https://github.com/yourusername/horizon-news-hub.git cd horizon-news-hub - Install Dependencies: Ensure you have Node.js installed. Run:
npm install
- Install Dependencies: Ensure you have Node.jsinstalled. Run:
REACT_APP_NEWS_API_KEY=your_newsapi_key REACT_APP_GUARDIAN_API_KEY=your_guardian_key REACT_APP_NYT_API_KEY=your_nyt_key
- Run the Application: Start the development server with:
The application will be available at http://localhost:3000.
npm start - Docker Deployment (Optional): Build and run the Docker container:
Or, using Docker Compose:
docker build -t horizon-news-hub . docker run -p 80:80 horizon-news-hubdocker-compose up --build
horizon-news-hub/
│
├── public/
│ ├── index.html
│ └── ...
│
├── src/
│ ├── components/ # Reusable components
│ │ ├── Error/
│ │ ├── Loading/
│ │ ├── NavBar/
│ │ ├── News/
│ │ ├── NewsCard/
│ │ ├── NoDataFound/
│ │ ├── NoRouteFound/
│ │ ├── ScrollToTop/
│ │ └── ...
│ │
│ ├── config/ # API configurations and constants
│ ├── images/ # Static assets
│ ├── pages/ # Page-level components
│ │ ├── HomePage/
│ │ ├── PersonalizedPage/
│ │ └── ...
│ │
│ ├── router/ # Routing configuration
│ ├── store/ # Redux state management
│ ├── App.css # Global styles
│ ├── App.js # Main component
│ ├── index.css # Index styles
│ ├── index.js # Entry point
│ └── ...
│
├── .dockerignore
├── .env
├── .gitignore
├── docker-compose.yml
├── Dockerfile
├── package.json
└── ...
This project is no longer accepting contributions. However, I would love to hear your feedback to improve my future projects. Feel free to reach out through GitHub Issues.
This project is licensed under the MIT License. For more details, see the LICENSE file.