A modern news aggregation application built with React, TypeScript, and Vite that delivers personalized news content based on user interests and search preferences.
- Real-time News Access: Browse the latest news from various sources using the NewsAPI
- Personalized Content: Automatically tracks your interests based on browsing history
- User Authentication: Create an account to save your preferences
- Keyword Analysis: Extract and display relevant keywords from articles
- Category Filters: Quick access to popular news categories like Blockchain, Memes, and Politics
- Search Functionality: Find specific news with the search feature
- Responsive Design: Built with Tailwind CSS for a fully responsive experience
- Dark/Light Mode: Toggle between dark and light themes
- Frontend: React 19 with TypeScript
- Build Tool: Vite
- Styling: Tailwind CSS
- Authentication: Local storage-based authentication (with Next-Auth components)
- API Requests: Axios
- Backend: FastAPI Python server for keyword extraction
- Node.js (v18 or newer)
- Python 3.12 (for the backend server)
- NewsAPI key (Register at newsapi.org)
- Clone the repository
- Install dependencies:
npm install - Start the development server:
npm run dev - Start the Python backend server:
py -3.12 server/fastapi_server.py
The application uses a NewsAPI key for fetching news data. Make sure you have acquired an API key from newsapi.org.
- Create an account or sign in
- Browse news categories through the navigation buttons
- Search for specific news topics using the search bar
- View recommended keywords based on your browsing history
- Click on any news card to read the full article
This project uses Vite for fast development with HMR (Hot Module Replacement).
npm run dev- Start the development servernpm run build- Build for productionnpm run preview- Preview the production build locallynpm run lint- Run ESLint checks
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.