Inspiration
Our passion for finance and trading in the stock market has always pushed us to explore the intersection of technology and real-world investing. We’ve often used stock analysis tools and visualized trends manually, but we wanted to build something smarter; something that not only automates analysis but also predicts what’s ahead. That’s where we got the idea for WeBear: a sleek, full-stack application that empowers users to forecast stock prices with powerful visual insights, backed by data science and clean design.
What it does
WeBear is a stock forecasting web application that allows users to:
- Enter a stock ticker symbol and select a date range
- View predicted stock prices using the ARIMA model
- Analyze moving averages and price trends
- See confidence intervals in forecast charts
- Interact with beautifully styled charts — zoomable on click
- View key stats like previous high, open, close, and volume in intuitive cards
How we built it
We built WeBear using a modular full-stack architecture:
- Frontend: Built with React (Next.js) and TypeScript, styled using CSS Modules, and powered by Axios for API calls. The UI features a dynamic gradient background, interactive plots, custom cards, toast notifications, and date input controls.
- Backend: Developed using FastAPI and Uvicorn, with support for CORS. It fetches stock data via yfinance, processes it with pandas, and trains a pmdarima ARIMA model with confidence intervals.
- Visualization: Matplotlib is used to generate four base64-encoded charts — forecast, moving average, trend, and trend+forecast overlay.
- Deployment: Dockerized both frontend and backend services and used Docker Compose to bring them up seamlessly.
Challenges we ran into
- Choosing the Right Model: Experimenting with ARIMA and its parameters took time. I tuned p, q, d, seasonal components, and even added exogenous variables like volume for accuracy.
- Backend-Frontend Integration: Passing base64-encoded charts and structuring the response JSON in a clean, scalable way took careful planning.
- Debugging Minor Issues: Whether it was a FastAPI import path or a broken chart display due to CSS or image overflow, many small things added up.
- Design Decisions: Making the interface both intuitive and visually appealing required multiple iterations; from hoverable cards to animated spinners and responsive layouts.
- Docker Compatibility: Handling versioning issues (like with python:3.13 image), TLS errors, and ensuring production-like containers was a learning curve.
Accomplishments that we're proud of
- Fully integrated backend + frontend, built from scratch
- Real-time forecasts with confidence intervals and visual insights
- Beautiful and responsive user interface with chart interactivity
- Modular, scalable backend that can easily be extended with other models
- Dockerized, ready-to-deploy architecture
What we learned
- How to build and structure a product-level application from end to end
- ARIMA modeling using pmdarima, including seasonal adjustments, exogenous variables, and forecast evaluation metrics like MAPE
- Serving visual plots over APIs using base64
- Frontend best practices with React/Next.js, including CSS modules and error handling
- Deploying full-stack apps with Docker + Docker Compose
- Most importantly, how to combine technical skills with personal interests to build something truly meaningful
What's next for WeBear: Stock Forecasting Application
WeBear is just getting started. Here’s what’s next:
- Model Caching: Save trained models for reuse, improving performance
- News Sentiment Analysis: Use NLP to integrate sentiment-driven forecasting
- Responsive Redesign: Optimize the UI for mobile users
- More Indicators: Add RSI, MACD, Bollinger Bands, etc.
- Live Data Support: Integrate WebSocket-based streaming for real-time updates
- Cloud Deployment: Deploying the whole system onto AWS for scalability
Built With
- arima
- css3
- docker
- fastapi
- numpy
- pandas
- python
- react
- scikit-learn
- timeseries
- typescript
Log in or sign up for Devpost to join the conversation.