Skip to content

A positive news website designed to show you what sentiment of news you like!

License

Notifications You must be signed in to change notification settings

AdwaitKulkarni58/UpbeatUpdates

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

46 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Upbeat Updates:

Welcome to Upbeat Updates! This project aims to provide users with a platform where they can read, save, and share positive news articles. The website categorizes news into various topics such as Business, Entertainment, General, Health, Science, Sports, and Technology. It also provides a positiveness analysis of the current news and how your preferences compare to the average news sentiment.


Table of Contents:

Features
Tech Stack
Prerequisites
Installation
Running the application
Environment Variables
Routes
Screenshots
Contributions
License


Features:

  • User authentication.
  • Categorization of news articles.
  • Fetch the latest news as per categories.
  • Save news articles.
  • Delete saved news articles.
  • Share news articles on social media.
  • Positivity score for each article.
  • Real-time K-Means clustering of articles as per positivity scores.
  • Charts depicting real-time sentiment analysis of all articles, including saved articles.

Tech Stack:

Front-End:

  • React.js
  • Material-UI
  • Redux Toolkit
  • Axios
  • NewsAPI

Back-End:

  • Express.js
  • Node.js
  • MongoDB
  • Mongoose
  • BCrypt
  • Sentiment
  • K-Means

Prerequisites:

Make sure you have the following installed on your local machine:

  • Node.js (v12.x or later)
  • MongoDB

Installation:

  1. Clone the repository:
git clone https://github.com/AdwaitKulkarni58/UpbeatUpdates
cd UpbeatUpdates
  1. Install the dependencies for the front-end:
cd client
npm install
  1. Install the dependencies for the back-end:
cd server
npm install

Run:

  1. Set up MongoDB:
  • Make sure MongoDB is running on your local machine. By default, the application expects MongoDB to be running at mongodb://localhost:27017.
  1. Run the client:
  • Navigate to the client folder and run the following:
cd client
npm run dev

The front-end client will run on port 3000 (http://localhost:3000)

  1. Run the server:
  • Navigate to the server folder and run the following:
cd server
npm start

The back-end server will run on port 5000 (http://localhost:5000)


Environment-Variables:

Create .env files in both the client and server root folders and add the following environment variables:

VITE_API_KEY=<your-news-api-key>
DATABASE_URL=<your-mongodb-connection-string>

Routes:

User Routes:

  • POST /users/login: Login with an email address and password, if the user doesn't exist, create a new user.
  • PUT /users/:email: Edit account details of an existing user.
  • DELETE /users/:email: Delete the account of an existing user.

Article Routes:

  • GET /users/:email/articles: Get the user's saved articles.
  • POST /users/:email/articles: Save an article to the user account's favorites list.
  • DELETE /users/:email/articles: Delete all saved articles from the user's account.
  • DELETE /users/:email/articles/:id: Delete a particular saved article from the user's account.

Screenshots:

Landing Page:

image

About Page:

image

Main Page:

image

Individual News Category Page:

image

Profile Page:

image

Personal Favorites Page:

image

Analysis Pages:

image

image

image

image


Contributions:

Contributions are welcome! Please open an issue or submit a pull request if you want to add a new feature or encounter a bug.


License:

This project is licensed under the GNU General Public License v3.0.