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:

  1. 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.
  2. 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.
  3. Visualization: Matplotlib is used to generate four base64-encoded charts — forecast, moving average, trend, and trend+forecast overlay.
  4. Deployment: Dockerized both frontend and backend services and used Docker Compose to bring them up seamlessly.

Challenges we ran into

  1. 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.
  2. Backend-Frontend Integration: Passing base64-encoded charts and structuring the response JSON in a clean, scalable way took careful planning.
  3. 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.
  4. Design Decisions: Making the interface both intuitive and visually appealing required multiple iterations; from hoverable cards to animated spinners and responsive layouts.
  5. 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:

  1. Model Caching: Save trained models for reuse, improving performance
  2. News Sentiment Analysis: Use NLP to integrate sentiment-driven forecasting
  3. Responsive Redesign: Optimize the UI for mobile users
  4. More Indicators: Add RSI, MACD, Bollinger Bands, etc.
  5. Live Data Support: Integrate WebSocket-based streaming for real-time updates
  6. Cloud Deployment: Deploying the whole system onto AWS for scalability
Share this project:

Updates

Submission history