NewsGrid:
NewsGrid is an advanced news aggregator platform offering real-time, categorized, and personalized news feeds. Users can interact with news content by submitting, liking, sharing, and bookmarking articles, all while staying updated on trends, weather, and breaking stories.
NewsGrid serves as a comprehensive news hub, making the latest news accessible across multiple categories and allowing user-generated content, moderated by admins. This documentation provides a complete overview of NewsGrid's features, functionality, and development guidelines.
-
Real-Time News
- Constant updates with the latest articles to keep users informed with current news.
-
Categorized News
- Allows sorting news by categories like Politics, Sports, and Entertainment.
-
Voice Search
- Users can search for news through voice commands for better accessibility.
-
Users News
- Dedicated section for articles contributed by users, displayed after admin approval.
-
My News
- Users can submit articles that, upon admin approval, are displayed on the platform.
-
Like, Comment, Share
- Social engagement options allow users to interact with articles.
-
JWT Authentication
- Provides secure access to user accounts and restricted pages using JWT-based sessions.
-
Private and Admin Routes
- Separate routes for general and admin users to ensure platform security.
-
Payments
- Users can make payments for premium features with secure gateways.
-
Report via Email.js
- Users can report issues or send feedback directly through email.
-
Social Sharing
- Articles are easily shareable on popular social media platforms.
-
Personalized News
- Custom recommendations page tailored to user interests.
-
Bookmarking
- Allows users to save articles for later access in their bookmark collection.
-
Audio News
- Users can listen to news articles for an improved accessibility experience.
-
Date-Based Search
- A search function that filters news by specific publication dates.
-
Breaking News
- Real-time stream for critical, urgent news stories.
-
Trending News
- Displays popular topics based on user interactions and engagement.
-
Recommended News
- Personalized entertainment recommendations to enhance user experience.
-
Video News
- Integrates YouTube live channels for users to watch live news.
-
Location-Based Weather News
- Displays local weather updates based on the user's location.
-
User Dashboard
- Add News: Users can submit news articles, reviewed by the admin before publication.
- Profile Management: Users can update their profile information.
- Category-Based News Selection: Personalized feed by selecting preferred news categories.
-
Admin Dashboard
- User Management: Admins can view all users and assign roles.
- Payment History: Admins have access to all transaction records.
- News Moderation: Admins review and approve user-submitted news for content quality.
- Frontend: React.js for responsive, interactive UI optimized for dynamic content.
- Backend: Node.js and Express.js handle server operations, authentication, and API endpoints.
- Database: MongoDB for user data, news content, payment history, and bookmarks.
- Authentication: JWT-based authentication for secure sessions.
- Payment Gateway: Stripe or PayPal for secure transactions.
- Email Service: Email.js for easy feedback and issue reporting.
- Social Media Integration: Enables social sharing on Facebook, Twitter, and LinkedIn.
- Voice Recognition: Hands-free search and interaction using voice recognition.
- Audio Playback: Text-to-speech APIs for audio playback of news content.
Home Page Features
- Real-Time News: Constantly updates content to display the latest news.
- Filter by Category: Users can filter news by specific categories.
- Voice Search: Enables voice-based searching with a microphone icon.
- Interact with News: Like, comment, and share news articles.
- Bookmark Articles: Save articles to read later.
- Audio News: Listen to articles using the "Listen" option.
- Date-Based Search: Calendar-based search for specific publication dates.
- Trending and Breaking News: Separate sections for trending and urgent news.
- Video News: Watch live news channels on the website.
- Local Weather Updates: Location-based weather updates on the home page.
User Dashboard
- Submit News: Users can contribute articles for admin review.
- Manage Profile: Edit personal details and account settings.
- Category Preferences: Users can select preferred categories for a customized feed.
Admin Dashboard
- Manage Users: Admins can update user roles and permissions.
- Approve or Reject News: Admin controls user-submitted news to maintain quality.
- Payment Tracking: Admins can review all platform transactions.
-
Clone the Client Repository
git clone https://github.com/rezwanhossen/newsGrid.git
-
Navigate to the Client Directory
cd newsGrid-client
-
Install Dependencies
npm install
-
Configure Environment Variables
Create an.env.local
file and include the following:VITE_apiKey=<YOUR_API_KEY> VITE_authDomain=<YOUR_AUTH_DOMAIN> VITE_projectId=<YOUR_PROJECT_ID> VITE_storageBucket=<YOUR_STORAGE_BUCKET> VITE_messagingSenderId=<YOUR_MESSAGING_SENDER_ID> VITE_appId=<YOUR_APP_ID> VITE_IMGBB_key=<YOUR_IMGBB_KEY> VITE_pymeny=<YOUR_PAYMENT_PROVIDER_KEY> VITE_NAIMUL_API_KEY=<YOUR_NAIMUL_API_KEY> VITE_Breaking_apiKey=<YOUR_BREAKING_API_KEY> VITE_recommended_apiKey=<YOUR_RECOMMENDED_API_KEY> VITE_Video_apiKey=<YOUR_VIDEO_API_KEY>
-
Run the Client Application
npm run dev
-
Clone the Server Repository
git clone https://github.com/rezwanhossen/newsGrid-server.git
-
Navigate to the Server Directory
cd newsGrid-server
-
Install Dependencies
npm install
-
Configure Environment Variables
Create an.env
file with the following keys:DB_User=<YOUR_DATABASE_USER> DB_Pass=<YOUR_DATABASE_PASSWORD> ACCESS_TOKEN_SECRET=<YOUR_ACCESS_TOKEN_SECRET> STRIP_KEY=<YOUR_STRIPE_KEY>
-
Run the Server Application
nodemon index.js
-
Rezwan Hossain
Role: Team Leader
GitHub: github.com/rezwanhossen -
Naimul Islum Emon
Role: Contributor
GitHub: github.com/Naimul02 -
Mahfuzur Islam
Role: Contributor
GitHub: github.com/mafujur-rahman -
Md Hasan
Role: Contributor
GitHub: github.com/ahsan200t -
Rafiet Rana
Role: Contributor
GitHub: github.com/rafietrana