This is a simple News Aggregator which is built to crawl news from RSS Feeds of CNN, YAHOO, BBC, INFOWORLD. This aggregator gets latest news from mentioned sites and show you the title, summary, date and link to the original article.
Apart from the main functionality that is crawling and getting news, it also have a live search feature (can be seen in video linked below). The complete list of features is given below.
Link: https://youtu.be/91s_3lOZfVQ
- Home Page
- News Page
- Login Page
- Register Page
- Contact Page
- About Page
- Simple Admin Dashboard
- Add Users Page (For admins)
- Login & Register
- Admin and user login partition
- Working contact page (Built using phpmailer)
- News (RSS Feed) Crawler
- Live search on the crawled news
- Addition and deletion of users (Accessible for admins only)
Visitors can see home, contact, about, login and register pages only
Users can visit all the visitor pages and also the news page where they can read all news at one place and even do a live search on it.
Admins can visit all the user pages and additionally they have access to dashboard and add users page, wherein they can add and delete users.
- Clone the repository
git clone https://github.com/saiteja13427/News-Aggregator.git
- Edit env.php and add your db password (for database connection), sender email, sender email password, admin email(reciever email), admin name.
- Start a php server using
php -S localhost:8000
and visit http://localhost:8000/views/index.php - The program will automatically create required database and tables.
- The program will by default create 1 admin and 1 user account
Admin Credentials: Username: admin Password: admin User Credentials: Username: user Password: user
- If you want to add more RSS Feeds to the project, edit php/getnews.php and add source name and urls in rss_urls
- The project will be ready for use.
- Run it on a server and navigate to views/home.php to start
- Once you login and go to views/news.php, it will automatically fetch news from rss feed and store it in one of the created table and will display the same as well.