A full-stack web application that displays stock market data with an interactive dashboard.
- Interactive stock market dashboard with real-time data visualization
- Responsive UI with a clean, modern design
- Left panel with scrollable list of companies
- Main panel with interactive chart for stock price visualization
- Historical stock data visualization with multiple time periods (1W, 1M, 3M, 6M, 1Y, 5Y)
- Key statistics display including 52-week high/low, average volume, etc.
- Light/Dark mode toggle for better viewing experience
- Detailed company information and performance metrics
- React.js - UI library
- Chart.js & React-Chartjs-2 - For interactive data visualization
- React Router - For navigation between pages
- Styled Components - For component-specific styling
- Axios - For API requests
- Node.js & Express - Server framework
- PostgreSQL - Database for storing stock data
- RESTful API architecture
- Git & GitHub - Version control
- npm - Package management
- Make sure you have a Vercel account and the Vercel CLI installed
- Navigate to the backend directory:
cd backend - Deploy to Vercel:
vercel
- Follow the prompts to link your project
- When deployment is complete, note the URL for your backend API
- Set the backend API URL in the frontend environment:
cd frontend - Create a
.env.productionfile with your backend URL:REACT_APP_API_URL=https://your-backend-api-url.vercel.app/api - Deploy to Vercel:
vercel
- Follow the prompts to link your project
- Make sure the
homepagefield inpackage.jsonis set correctly:"homepage": "https://yourusername.github.io/repository-name/"
- Deploy using the GitHub Pages script:
npm run deploy
- Node.js (v14.0.0 or higher)
- npm (v6.0.0 or higher)
- PostgreSQL (v12.0 or higher)
- Clone the repository
git clone https://github.com/Sai-Dangade777/JarNox-Stock-Dashboard.git
cd JarNox-Stock-Dashboard- Install backend dependencies
cd backend
npm install- Set up the database
- Create a PostgreSQL database named 'stockmarket'
- Update the .env file with your database credentials
- Run database migrations
# The database will be automatically initialized when you start the server
npm start- Install frontend dependencies
cd ../frontend
npm install- Start the development servers
For backend:
cd ../backend
npm run devFor frontend (in a new terminal):
cd ../frontend
npm start- Open your browser and navigate to
http://localhost:3000
I approached this project with a focus on creating a clean, responsive, and user-friendly dashboard for stock market data visualization. The development process involved:
-
Planning & Architecture: I started by designing the database schema and API endpoints, followed by sketching the UI layout.
-
Backend Development: Implemented a Node.js/Express server with PostgreSQL for data storage. Created RESTful API endpoints for retrieving company information and historical stock data.
-
Frontend Development: Built a React application with a responsive design that adapts to different screen sizes. Used Chart.js for visualizing stock price data and implemented features like period selection and company filtering.
-
Styling & UX: Focused on creating an intuitive and visually appealing interface with light/dark mode support and smooth transitions.
-
Testing & Optimization: Tested the application across different devices and optimized performance by implementing lazy loading and efficient data fetching.
During development, I faced several challenges:
-
Data Visualization: Creating responsive and interactive charts that accurately represent stock market data required careful configuration of Chart.js options.
-
State Management: Managing the application state with multiple components and data sources required thoughtful planning of component hierarchy and data flow.
-
Database Design: Designing a database schema that efficiently stores and retrieves historical stock data required optimizing query performance.
-
Responsive Design: Ensuring the dashboard looks good and functions well on various screen sizes required implementing a flexible layout system.
- Implement real-time data updates using WebSockets
- Add user authentication and personalized watchlists
- Incorporate technical indicators (Moving Averages, RSI, MACD)
- Implement AI-based price prediction feature
- Add portfolio tracking functionality
- Improve accessibility features
This project is licensed under the MIT License - see the LICENSE file for details.
- Data provided by Alpha Vantage
- Icons from React Icons
- Chart library: Chart.js
