A personalized news dashboard with AI-powered article summaries.
- App (Vercel): [https://novanews-nine-ebon.vercel.app/]
- API (Render): [https://novanews-jbjh.onrender.com]
NovaNews pulls in real-time headlines from NewsAPI and lets you browse by category (Technology, Business, Science) or search for anything. If an article catches your eye, you can hit a button to get a quick 2-sentence AI summary generated by Google Gemini. You can also create an account, log in, and save articles along with their summaries to your personal library — and remove them whenever you want.
- Frontend: React (Vite), React Router, Axios
- Backend: Node.js + Express
- Database: PostgreSQL on Neon, accessed through Prisma ORM
- APIs: NewsAPI for headlines, Google Gemini 2.5 Flash for summaries
- Auth: bcryptjs for password hashing, JWT for sessions
- Deployed on: Vercel (frontend) + Render (backend)
The frontend is already pointing to the live backend on Render, so you don't need to set anything up on the backend side.
git clone [https://github.com/AFEEFAMT/novanews]
cd novanews/frontend
npm install
npm run devOpen http://localhost:5173 and it should just work.
If you want to run the backend yourself:
cd novanews/backend
npm installCreate a .env file in the backend folder:
PORT=5000
DATABASE_URL=your_postgresql_connection_string
NEWS_API_KEY=your_newsapi_key
GEMINI_API_KEY=your_gemini_api_key
JWT_SECRET=any_random_secret_string
Then:
npx prisma db push
npm run devFor the frontend to talk to your local backend instead of Render, swap the Render URL in Dashboard.jsx, Library.jsx, Login.jsx, and NewsCard.jsx with http://localhost:5000.