A sophisticated financial news aggregation platform that provides real-time market insights, sentiment analysis, and personalized news tracking. Built with modern web technologies and designed for both casual investors and financial professionals.
Live Demo: https://financial-news-app-347q.onrender.com
For reviewers and testers, you can use the following test account:
- Email: test@example.com
- Password: test123
The application uses Alpha Vantage's API for financial news data. For testing purposes, the application will automatically fall back to mock data when:
- The API rate limit is reached
- No API key is provided
- The API is unavailable
- Real-time Financial News: Access the latest financial news from Alpha Vantage API
- Sentiment Analysis: Color-coded sentiment indicators (Bullish, Neutral, Bearish)
- Advanced Filtering: Filter news by tickers, topics, and time periods
- Personalized Experience: Save articles and create custom watchlists
- Responsive Design: Optimized for desktop and mobile devices
- Mock Data Support: Seamless fallback to mock data during API rate limits
- Secure Authentication: Protected routes and user-specific content
- React.js: Modern UI framework
- Tailwind CSS: Utility-first CSS framework
- Axios: Promise-based HTTP client
- React Router: Client-side routing
- Context API: State management
- Node.js: JavaScript runtime
- Express.js: Web application framework
- PostgreSQL: Relational database
- JWT: Secure authentication
- Alpha Vantage API: Financial data integration
- Clone the repository:
git clone https://github.com/DevyRuxpin/financial-news-app.git
cd financial-news-app- Install dependencies:
# Install server dependencies
cd server
npm install
# Install client dependencies
cd ../client
npm install- Set up environment variables:
# Server (.env)
ALPHA_VANTAGE_API_KEY=your_api_key
JWT_SECRET=your_jwt_secret
DATABASE_URL=your_database_url
# Client (.env)
REACT_APP_API_URL=http://localhost:5000- Start the development servers:
# Start server
cd server
npm run dev
# Start client
cd ../client
npm start- Obtain an Alpha Vantage API key (optional for testing)
- Configure your
.envfiles with the necessary credentials
- Create a PostgreSQL database
- Run the database migrations:
cd server
npm run migrateThe application is deployed on Render at https://financial-news-app-347q.onrender.com
- Create a new Web Service on Render
- Connect your GitHub repository
- Configure the build and start commands:
# Build Command cd client && npm install && npm run build && cd ../server && npm install # Start Command cd server && npm start
- Set the following environment variables:
ALPHA_VANTAGE_API_KEY: Your Alpha Vantage API keyJWT_SECRET: Secret key for JWT token generationDATABASE_URL: PostgreSQL database URLNODE_ENV: Set to 'production'
- Enable auto-deploy on the main branch
The deployment is configured to:
- Build the React frontend and output to
server/public - Serve both frontend and API from a single domain
- Handle client-side routing with proper fallbacks
- Implement CORS for the production domain
-
GET /api/news: Fetch financial news- Query Parameters:
tickers: Comma-separated stock symbolstopics: News topicstime_from: Start datesort: Sort order (LATEST, EARLIEST)useMock: Boolean to use mock data
- Query Parameters:
-
POST /api/news/save: Save an article- Body:
{ user_id, article_id }
- Body:
POST /api/auth/register: User registrationPOST /api/auth/login: User loginGET /api/auth/me: Get current user
- NewsCard: Displays individual news articles with sentiment indicators
- NewsFilter: Advanced filtering interface
- AuthForm: User authentication forms
- Header/Footer: Consistent navigation elements
- JWT-based authentication
- Protected API routes
- Secure password hashing
- Rate limiting
- CORS configuration
- Environment variable protection
The application is fully responsive and optimized for:
- Desktop (≥1024px)
- Tablet (≥768px)
- Mobile (≥320px)
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Alpha Vantage for financial data
- React and Express.js communities
- All contributors and supporters