Daily Dragon News - Live Site
A modern news portal built with React, featuring real-time news updates, category-based navigation, and user authentication.
- Real-time news updates with category filtering
- Detailed news view with full article content
- Trending news indicators
- View count and rating system
- News sharing and bookmarking capabilities
- Breaking news ticker with auto-scroll
- Email/Password authentication
- Social login (Google, GitHub)
- Protected routes for authenticated users
- User profile management
- Persistent login state
- Responsive grid layout (12-column system)
- Category-based navigation
- Modern card-based news display
- Loading states and animations
- Toast notifications for user feedback
- Social media integration
- React.js
- Firebase Authentication
- React Router DOM
- Context API
- React Icons
- React Fast Marquee
- React Toastify
- Tailwind CSS
- DaisyUI
- Moment.js
- Yarn Package Manager
Before you begin, ensure you have the following installed:
- Node.js (Latest LTS version)
- Yarn package manager
- Git
- Clone the repository
git clone https://github.com/MRiDuL-ICE/Dargon-News.git
- Navigate to the project directory
cd Dargon-News
- Install dependencies
yarn install
- Create a
.env
file in the root directory and add your Firebase configuration
VITE_FIREBASE_API_KEY=your_api_key
VITE_FIREBASE_AUTH_DOMAIN=your_auth_domain
VITE_FIREBASE_PROJECT_ID=your_project_id
VITE_FIREBASE_STORAGE_BUCKET=your_storage_bucket
VITE_FIREBASE_MESSAGING_SENDER_ID=your_messaging_sender_id
VITE_FIREBASE_APP_ID=your_app_id
- Start the development server
yarn dev
Dargon-News/
├── src/
│ ├── assets/ # Static assets
│ ├── components/ # Reusable components
│ │ ├── layout-component/# Layout specific components
│ │ ├── Header.jsx
│ │ ├── LatestNews.jsx
│ │ ├── Navbar.jsx
│ │ ├── NewsCard.jsx
│ │ ├── FindUs.jsx
│ │ └── SocialLogin.jsx
│ ├── layout/ # Layout components
│ │ ├── AuthLayout.jsx
│ │ └── HomeLayout.jsx
│ ├── pages/ # Page components
│ │ ├── CategoryNews.jsx
│ │ ├── Loading.jsx
│ │ ├── Login.jsx
│ │ ├── NewsDetails.jsx
│ │ └── Register.jsx
│ ├── provider/ # Context providers
│ │ └── AuthProvider.jsx
│ ├── firebase/ # Firebase configuration
│ │ └── firebase.init.js
│ └── routes/ # Route configurations
│ ├── PrivateRoute.jsx
│ └── router.jsx
└── package.json # Project dependencies
HomeLayout
: Main layout with news gridAuthLayout
: Authentication pages layout
NewsCard
: Displays individual news articles with author info, rating, and viewsLeftNavbar
: Category-based navigation sidebarRightNavbar
: Social login and social media linksHeader
: Site logo and current date/time displayLatestNews
: Marquee news ticker for breaking newsFindUs
: Social media connection linksSocialLogin
: Google and GitHub login options
AuthProvider
: Manages authentication statePrivateRoute
: Protected route wrapperLogin/Register
: Authentication forms
The project uses the Programming Hero API for news data:
- Categories:
https://openapi.programming-hero.com/api/news/categories
- Category News:
https://openapi.programming-hero.com/api/news/category/${categoryId}
- News Details:
https://openapi.programming-hero.com/api/news/${newsId}
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature
) - Commit your changes (
git commit -m 'Add some AmazingFeature'
) - Push to the branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
- Programming Hero for the News API
- Firebase for authentication services
- Netlify for hosting
MRiDuL-ICE - GitHub Profile
Project Link: https://github.com/MRiDuL-ICE/Dargon-News
Project Link: Dargon News