Skip to content

Latest commit

 

History

History
96 lines (61 loc) · 2.54 KB

README.md

File metadata and controls

96 lines (61 loc) · 2.54 KB

📰 Blog-Style News Portal Application | The Newsletter Community

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.


🔧 Features

  • 🔄 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.

🚀 Inspiration

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

🤖 Tech Stack

  • Backend: Node.js, Express
  • Frontend: React (with TypeScript), Tailwind CSS, Daisy UI
  • Database: PostgreSQL, Sequelize ORM
  • Search Engine: Elasticsearch
  • Containerization: Docker

💡 Future Implementations

  • 🔖 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.

🛠️ Project Setup

⚡ Prerequisites

  • Node.js
  • Docker
  • PostgreSQL

👉 Installation

# Clone the repository
git clone https://github.com/20101301-Alina-Hasan/News-Portal.git
cd News-Portal

🌟 Running the Application

# Server
cd server
npm install
docker-compose up -d
npm run dev

# Client
cd client
npm install
npm run dev

🔍 Elasticsearch Setup

Ensure Elasticsearch is running on port 9200.


📽️ Presentation

Watch the project presentation on YouTube: News Portal Presentation


🛠️ Contributing

Contributions are welcome! If you'd like to add new features or fix bugs, feel free to submit a pull request.


📧 Contact

For questions or inquiries, reach out via [email protected].