A blog-style news portal application allows users to view, create, search, filter, upvote, comment, and bookmark articles. This project uses the PERN stack (PostgreSQL, Express, React, Node.js) and additional technologies like Elasticsearch, Docker, and Tailwind CSS. Components are almost entirely daisy UI.
- 🔄 Single Page Application (SPA): Smooth, dynamic content updates without page reloads.
- 🔑 User-Generated Content: Authenticated users can post news articles.
- 🔍 Search and Filtering: Comprehensive search with filtering options for tags and keywords.
- 📈 Upvoting and Bookmarking: Users can upvote articles and save them for later reference.
- 💬 Commenting: Users can leave comments on articles to engage in discussions.
This project draws inspiration from Daily Dev, a blog portal designed for developers. The goal was to blend elements of:
- 📢 Community-driven newsletters
- 📳 Blog-style content curation
- Backend: Node.js, Express
- Frontend: React (with TypeScript), Tailwind CSS, Daisy UI
- Database: PostgreSQL, Sequelize ORM
- Search Engine: Elasticsearch
- Containerization: Docker
- 🔖 Article Formatting: Integration with React Quill or a markup language for better article formatting.
- 🛠️ In-place Editing: Edit articles directly on the page without form submission.
- 🏷️ Tag Creation: Users can create and manage tags dynamically.
- Node.js
- Docker
- PostgreSQL
# Clone the repository
git clone https://github.com/20101301-Alina-Hasan/News-Portal.git
cd News-Portal
# Server
cd server
npm install
docker-compose up -d
npm run dev
# Client
cd client
npm install
npm run dev
Ensure Elasticsearch is running on port 9200.
Watch the project presentation on YouTube: News Portal Presentation
Contributions are welcome! If you'd like to add new features or fix bugs, feel free to submit a pull request.
For questions or inquiries, reach out via [email protected].