Skip to content

Modern React news aggregator with multi-country support, real-time weather, session caching, and beautiful gradient UI. Powered by NewsAPI & OpenWeatherMap.

Notifications You must be signed in to change notification settings

Open-Source-Chandigarh/Atmos

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

24 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Atmos - Modern News Application

NewsHub Logo

Stay Informed with Real-Time News from Around the World

License React Redux

โ€ข Report Bug โ€ข Request Feature


๐Ÿ“ธ Screenshots

Homepage

Homepage Screenshot Modern dashboard with top stories and weather widget

Category News

Category Page Screenshot Browse news by categories with beautiful card layouts

Mobile Responsive

Mobile View Fully responsive design for all devices


โœจ Features

  • ๐ŸŒ Multi-Country Support - News from USA, UK, India, Canada
  • ๐Ÿ“‚ Multiple Categories - Business, Technology, Sports, Health, Science, Entertainment, General
  • ๐Ÿ” Search Functionality - Find news articles by keywords
  • ๐ŸŒค๏ธ Weather Widget - Real-time weather with city search
  • ๐Ÿ“ฑ Fully Responsive - Works perfectly on desktop, tablet, and mobile
  • ๐ŸŽจ Modern UI/UX - Beautiful gradient design with smooth animations
  • ๐Ÿ” Secure - Environment variables for API keys
  • โ™ฟ Accessible - WCAG compliant design

๐Ÿš€ Quick Start

Prerequisites

Before you begin, ensure you have:

  • Node.js (v14 or higher)
  • npm or yarn
  • Git

Installation

  1. Clone the repository

    git clone https://github.com/Open-Source-Chandigarh/Atmos
    cd news-app
  2. Install dependencies

    npm install
  3. Set up environment variables

    Create a .env file in the root directory:

    VITE_NEWS_API_KEY=your_news_api_key_here
    VITE_WEATHER_API_KEY=your_weather_api_key_here
  4. Get your API keys

    News API:

    • Visit NewsAPI.org
    • Sign up for a free account
    • Copy your API key
    • Free tier: 100 requests/day

    Weather API:

    • Visit OpenWeatherMap
    • Sign up for a free account
    • Copy your API key
    • Free tier: 1,000 requests/day
  5. Start the development server

    npm start
  6. Open your browser

    Navigate to http://localhost:3000


๐Ÿ› ๏ธ Built With

Technology Purpose
React Frontend framework
Redux State management
React Router Navigation
NewsAPI News data source
OpenWeatherMap API Weather data
Vite Build tool

๐Ÿ“ Project Structure

news-app/
โ”œโ”€โ”€ public/
โ”‚   โ””โ”€โ”€ index.html
โ”œโ”€โ”€ src/
โ”‚   โ”œโ”€โ”€ CSS/
โ”‚   โ”‚   โ”œโ”€โ”€ Header.css
โ”‚   โ”‚   โ”œโ”€โ”€ HomePage.css
โ”‚   โ”‚   โ”œโ”€โ”€ HomepageNews.css
โ”‚   โ”‚   โ”œโ”€โ”€ FeaturedNews.css
โ”‚   โ”‚   โ”œโ”€โ”€ NewsBar.css
โ”‚   โ”‚   โ”œโ”€โ”€ NewsItem.css
โ”‚   โ”‚   โ”œโ”€โ”€ Weather.css
โ”‚   โ”‚   โ””โ”€โ”€ Footer.css
โ”‚   โ”œโ”€โ”€ Store/
โ”‚   โ”‚   โ”œโ”€โ”€ Action-creator/
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ index.js
โ”‚   โ”‚   โ”œโ”€โ”€ reducer/
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ countryReducer.js
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ index.js
โ”‚   โ”‚   โ”œโ”€โ”€ store.js
โ”‚   โ”‚   โ””โ”€โ”€ index.js
โ”‚   โ”œโ”€โ”€ assets/
โ”‚   โ”‚   โ””โ”€โ”€ Atmos_Logo-removebg-preview.png
โ”‚   โ”œโ”€โ”€ App.css
โ”‚   โ”œโ”€โ”€ App.jsx
โ”‚   โ”œโ”€โ”€ Header.jsx
โ”‚   โ”œโ”€โ”€ Footer.jsx
โ”‚   โ”œโ”€โ”€ HomePage.jsx
โ”‚   โ”œโ”€โ”€ HomepageNews.jsx
โ”‚   โ”œโ”€โ”€ FeaturedNews.jsx
โ”‚   โ”œโ”€โ”€ NewsBar.jsx
โ”‚   โ”œโ”€โ”€ NewsItem.jsx
โ”‚   โ”œโ”€โ”€ Weather.jsx
โ”‚   โ”œโ”€โ”€ index.css
โ”‚   โ””โ”€โ”€ main.jsx
โ”œโ”€โ”€ .env.example
โ”œโ”€โ”€ .gitignore
โ”œโ”€โ”€ package.json
โ”œโ”€โ”€ vite.config.js
โ””โ”€โ”€ README.md

๐ŸŽฏ Usage

Browsing News

  1. Homepage - View top stories and weather
  2. Categories - Click navigation links to browse by category
  3. Countries - Use flag buttons to switch between countries
  4. Articles - Click any article card to read full story

Weather Widget

  1. Enter any city name in the search box
  2. Press Enter or click the search button
  3. View current temperature, conditions, and details

Search News

  1. Use the search bar on homepage
  2. Enter keywords (e.g., "technology", "bitcoin")
  3. View filtered results

๐Ÿ” Environment Variables

Create a .env file in the root directory:

# News API Key
VITE_NEWS_API_KEY=your_news_api_key_here

# Weather API Key
VITE_WEATHER_API_KEY=your_weather_api_key_here

โš ๏ธ Important: Never commit your .env file to Git. It's already in .gitignore.


๐Ÿš€ Deployment

Deploy to Vercel (Recommended)

  1. Push your code to GitHub
  2. Go to Vercel
  3. Click "New Project"
  4. Import your repository
  5. Add environment variables:
    • VITE_NEWS_API_KEY
    • VITE_WEATHER_API_KEY
  6. Click "Deploy"

Your app will be live in ~2 minutes!

Deploy to Netlify

  1. Build your project:
    npm run build
  2. Go to Netlify
  3. Drag and drop the build folder
  4. Add environment variables in site settings

Deploy to GitHub Pages

  1. Install gh-pages:

    npm install gh-pages --save-dev
  2. Add to package.json:

    "homepage": "https://yourusername.github.io/news-app",
    "scripts": {
      "predeploy": "npm run build",
      "deploy": "gh-pages -d build"
    }
  3. Deploy:

    npm run deploy

๐ŸŽจ Color Palette

Primary Gradient: linear-gradient(135deg, #667eea 0%, #764ba2 100%)
Background: linear-gradient(135deg, #1e1e2e 0%, #2d1b4e 50%, #1e1e2e 100%)
Card Background: rgba(255, 255, 255, 0.05)
Text Primary: #ffffff
Text Secondary: rgba(255, 255, 255, 0.7)

๐Ÿค Contributing

Contributions are welcome! Here's how you can help:

  1. Fork the project
  2. Create your feature branch
    git checkout -b feature/AmazingFeature
  3. Commit your changes
    git commit -m 'Add some AmazingFeature'
  4. Push to the branch
    git push origin feature/AmazingFeature
  5. Open a Pull Request

Development Guidelines

  • Follow existing code style
  • Test thoroughly before submitting PR
  • Update README if adding new features
  • Don't commit API keys or .env file

๐Ÿ› Known Issues

  • NewsAPI free tier has rate limits (100 requests/day)
  • Some news sources may not have images
  • Weather API coordinates may vary for cities with same names

๐Ÿ”ฎ Future Features

  • Bookmarks/Save articles
  • Dark/Light mode toggle
  • AI news summarizer
  • Push notifications
  • Social media sharing
  • Reading history
  • Personalized news feed
  • Multi-language support
  • Voice commands
  • Offline mode (PWA)

๐Ÿ“ License

This project is licensed under the MIT License - see the LICENSE file for details.


๐Ÿ‘จโ€๐Ÿ’ป Author

Your Name


๐Ÿ™ Acknowledgments

  • NewsAPI for providing news data
  • OpenWeatherMap for weather data
  • React team for amazing framework
  • Redux for state management
  • All contributors who help improve this project

๐Ÿ“ž Support

If you have any questions or issues:


โญ Show Your Support

Give a โญ if this project helped you!


Made with โค๏ธ by Pratham

โฌ† Back to Top

About

Modern React news aggregator with multi-country support, real-time weather, session caching, and beautiful gradient UI. Powered by NewsAPI & OpenWeatherMap.

Topics

Resources

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 8