Skip to content

Sector wise analysis of Indian stock market. Publicly available data from screener.in is scraped (robots.txt file is respected). Then the scraped data is aggregated and structured for comparison. Tech Stack: Python, BeautifulSoup (bs4) for web scraping and CustomTkinter for GUI and Vidualization.

Notifications You must be signed in to change notification settings

diptadeepray/Ray-Finance-App

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📊 Ray Finance: Sectoral Stock Analysis Dashboard

🔖 Table of Contents

📌 Introduction

Overview

Ray Finance is a desktop application designed to fetch and display financial metrics of top companies in different sectors using real-time data scraping from screener.in. The app offers a tabbed interface and a user-friendly GUI powered by CustomTkinter. ###Scope This document covers the featured, project structure, architecture, code overview, how to use, requirements and guidelines for this Ray Finance project.

✨ Features

  • 🔐 Login Authentication: Simple login screen to restrict access.
  • 📁 Sector-Based Analysis: Choose between IT Outsourcing and FMCG sectors for comparison.
  • 📊 Real-Time Data: Uses web scraping to pull updated metrics from screener.in.
  • 📈 Key Financial Metrics: Includes Sales Growth, Profit Growth, ROE, and Stock Price CAGR.
  • 🖥️ Responsive GUI: Scrollable, styled tables for better readability.
  • 🧭 Tabbed Navigation: Additional tabs for Gold Market and Debt Investing.

📁 Project Structure

Directory Layout

MyAwesomeApp/
├── app/
│   ├── src/
│   │   ├── main/
│   │   │   ├── java/com/myawesomeapp/
│   │   │   │   ├── activities/
│   │   │   │   ├── adapters/
│   │   │   │   ├── models/
│   │   │   │   ├── repositories/
│   │   │   │   ├── viewmodels/
│   │   │   │   └── utils/
│   │   │   ├── res/
│   │   │   └── AndroidManifest.xml
│   └── build.gradle
├── build.gradle
└── settings.gradle

Key Components

  • activities: Contains Activity classes responsible for UI screens.
  • adapters: Includes adapters for RecyclerView and other UI components.
  • models: Defines data models used in the app.
  • repositories: Handles data operations and business logic.
  • viewmodels: Manages UI-related data in a lifecycle-conscious way.
  • utils: Contains utility classes and helper functions.

⚙️ Setup Instructions

🔧 Setup Instructions

1. Clone the Repository

git clone https://github.com/diptadeepray/Ray-Finance-App.git
cd Ray-Finance-App

2. Create a Virtual Environment

It's recommended to use a virtual environment to manage dependencies.

# For macOS/Linux
python3 -m venv venv
source venv/bin/activate

# For Windows
python -m venv venv
venv\Scripts\activate

3. Install the Requirements

All the installed Python packages, in the virtual environment, along with their versions is listed in the requirements.txt. All the python packages can installed, in any virtual environment later, using the following command in the terminal: requirements.txt:

pip install -r requirements.txt

📝 Notes

  • To exit the virtual environment, run:
    deactivate
  • If you add new packages, don’t forget to update requirements.txt:
    pip freeze > requirements.txt

📊 Ray Finance: Sectoral Stock Analysis Dashboard

✨ Features

  • Login Interface: Authenticated access with a simple GUI built using CustomTkinter.
  • Dropdown-Based Sector Selection: Choose between IT Outsourcing and FMCG sectors for analysis.
  • Live Web Scraping: Extracts and processes financial data from screener.in.
  • Dynamic UI: Scrollable and responsive tables for multiple companies and financial metrics.
  • Tabbed Layout: Share Market, Gold Market, and Debt Investing tabs with dynamic content loading.

📁 Project Structure

📦 RayFinance
├── 🧠 user_interface.py             # Main GUI file with login, tabs, and dynamic analysis rendering
├── 🔍 WebScraping_IT_Screener.py   # Scraper for TCS and IT sector competitors
├── 🔍 WebScraping_FMCG_Screener.py # Scraper for HUL and other FMCG companies

🧱 Architecture

  • Frontend GUI: Built with customtkinter for an enhanced look and feel of the desktop app.
  • Web Scraping Modules:
    • WebScraping_IT_Screener.py - Scrapes TCS and other major IT companies.
    • WebScraping_FMCG_Screener.py - Scrapes HUL and other major FMCG companies.
  • Backend Logic: The scraping results are returned as structured tables and injected into the UI dynamically on selection.

🧾 Code Overview

user_interface.py

  • Initializes the app window and handles login authentication.
  • On successful login, shows tabs and dropdown to select sectors.
  • Dynamically imports and runs the appropriate web scraping module based on selection.
  • Displays the results in styled, scrollable tables inside the Share Market tab.

WebScraping_IT_Screener.py

  • Scrapes data from TCS, Infosys, Wipro, HCL Tech, Tech Mahindra, and LTIMindtree.
  • Extracts and aligns metrics like:
    • Compounded Sales Growth
    • Compounded Profit Growth
    • Stock Price CAGR
    • Return on Equity

WebScraping_FMCG_Screener.py

  • Scrapes financial metrics from companies like HUL, Nestle, Britannia, Dabur, ITC, and more.
  • Follows the same extraction logic as the IT screener for consistency.

🚀 How to Use

  1. Ensure you have Python 3 installed and run the following to install dependencies:
pip install requests beautifulsoup4 customtkinter
  1. Run the application:
python user_interface.py
  1. Login using:
    • Username: admin
    • Password: 1234
  2. Select a sector from the dropdown and click "Run Analysis".
  3. Wait a few moments while real-time data is fetched and displayed.

🛠️ Requirements

  • Python 3.8 or above
  • requests
  • beautifulsoup4
  • customtkinter

📌 Notes

  • The scraping is done directly from public sources without any API dependency.
  • Ensure a stable internet connection while scraping data.

About

Sector wise analysis of Indian stock market. Publicly available data from screener.in is scraped (robots.txt file is respected). Then the scraped data is aggregated and structured for comparison. Tech Stack: Python, BeautifulSoup (bs4) for web scraping and CustomTkinter for GUI and Vidualization.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages