{"id":27114326,"url":"https://github.com/diptadeepray/ray-finance-app","last_synced_at":"2026-07-01T19:32:11.638Z","repository":{"id":286490853,"uuid":"955396140","full_name":"diptadeepray/Ray-Finance-App","owner":"diptadeepray","description":"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.","archived":false,"fork":false,"pushed_at":"2025-04-09T09:39:41.000Z","size":58,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-03T07:35:40.204Z","etag":null,"topics":["beutifulsoup","customtkinter","pthon3"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/diptadeepray.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-03-26T15:15:46.000Z","updated_at":"2025-05-15T16:35:34.000Z","dependencies_parsed_at":"2025-04-06T20:22:18.405Z","dependency_job_id":"2b73000f-ef4d-404e-a443-9ba84d3ffd75","html_url":"https://github.com/diptadeepray/Ray-Finance-App","commit_stats":null,"previous_names":["diptadeepray/ray-finance-app"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/diptadeepray/Ray-Finance-App","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/diptadeepray%2FRay-Finance-App","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/diptadeepray%2FRay-Finance-App/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/diptadeepray%2FRay-Finance-App/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/diptadeepray%2FRay-Finance-App/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/diptadeepray","download_url":"https://codeload.github.com/diptadeepray/Ray-Finance-App/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/diptadeepray%2FRay-Finance-App/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35020870,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-01T02:00:05.325Z","response_time":130,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["beutifulsoup","customtkinter","pthon3"],"created_at":"2025-04-07T03:56:59.972Z","updated_at":"2026-07-01T19:32:11.633Z","avatar_url":"https://github.com/diptadeepray.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 📊 Ray Finance: Sectoral Stock Analysis Dashboard\n\n## 🔖 Table of Contents\n- [📌 Introduction](#-introduction)\n- [✨ Features](#️-features)\n- [📁 Project Structure](#-project-structure)\n- [🏗️ Architecture](#️-architecture)\n- [🧾 Code Overview](#-code-overview)\n- [🚀 How to Use](#-how-to-use)\n- [🛠️ Requirements](#-requirements)\n- [📌 Notes](#-notes)\n\n## 📌 Introduction\n### Overview\n**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 \u003ccode\u003escreener.in\u003c/code\u003e. The app offers a tabbed interface and a user-friendly GUI powered by CustomTkinter.\n###Scope\nThis document covers the featured, project structure, architecture, code overview, how to use, requirements and guidelines for this Ray Finance project.\n\n\n\u003ch2\u003e✨ Features\u003c/h2\u003e\n\u003cul\u003e\n  \u003cli\u003e\u003cstrong\u003e🔐 Login Authentication:\u003c/strong\u003e Simple login screen to restrict access.\u003c/li\u003e\n  \u003cli\u003e\u003cstrong\u003e📁 Sector-Based Analysis:\u003c/strong\u003e Choose between IT Outsourcing and FMCG sectors for comparison.\u003c/li\u003e\n  \u003cli\u003e\u003cstrong\u003e📊 Real-Time Data:\u003c/strong\u003e Uses web scraping to pull updated metrics from screener.in.\u003c/li\u003e\n  \u003cli\u003e\u003cstrong\u003e📈 Key Financial Metrics:\u003c/strong\u003e Includes Sales Growth, Profit Growth, ROE, and Stock Price CAGR.\u003c/li\u003e\n  \u003cli\u003e\u003cstrong\u003e🖥️ Responsive GUI:\u003c/strong\u003e Scrollable, styled tables for better readability.\u003c/li\u003e\n  \u003cli\u003e\u003cstrong\u003e🧭 Tabbed Navigation:\u003c/strong\u003e Additional tabs for Gold Market and Debt Investing.\u003c/li\u003e\n\u003c/ul\u003e\n\n\n## 📁 Project Structure\n### Directory Layout\n```plaintext\nMyAwesomeApp/\n├── app/\n│   ├── src/\n│   │   ├── main/\n│   │   │   ├── java/com/myawesomeapp/\n│   │   │   │   ├── activities/\n│   │   │   │   ├── adapters/\n│   │   │   │   ├── models/\n│   │   │   │   ├── repositories/\n│   │   │   │   ├── viewmodels/\n│   │   │   │   └── utils/\n│   │   │   ├── res/\n│   │   │   └── AndroidManifest.xml\n│   └── build.gradle\n├── build.gradle\n└── settings.gradle\n```\n\n### Key Components\n- activities: Contains Activity classes responsible for UI screens.\n- adapters: Includes adapters for RecyclerView and other UI components.\n- models: Defines data models used in the app.\n- repositories: Handles data operations and business logic.\n- viewmodels: Manages UI-related data in a lifecycle-conscious way.\n- utils: Contains utility classes and helper functions.\n\n## ⚙️ Setup Instructions\n\u003ch2\u003e🔧 Setup Instructions\u003c/h2\u003e\n\n\u003ch3\u003e1. Clone the Repository\u003c/h3\u003e\n\u003cpre\u003e\u003ccode\u003egit clone https://github.com/diptadeepray/Ray-Finance-App.git\ncd Ray-Finance-App\n\u003c/code\u003e\u003c/pre\u003e\n\n\u003ch3\u003e2. Create a Virtual Environment\u003c/h3\u003e\n\u003cp\u003eIt's recommended to use a virtual environment to manage dependencies.\u003c/p\u003e\n\n\u003cpre\u003e\u003ccode\u003e# For macOS/Linux\npython3 -m venv venv\nsource venv/bin/activate\n\n# For Windows\npython -m venv venv\nvenv\\Scripts\\activate\n\u003c/code\u003e\u003c/pre\u003e\n\n\u003ch3\u003e3. Install the Requirements\u003c/h3\u003e\n\u003cp\u003eAll 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:\n\u003ccode\u003erequirements.txt\u003c/code\u003e:\u003c/p\u003e\n\n\u003cpre\u003e\u003ccode\u003epip install -r requirements.txt\n\u003c/code\u003e\u003c/pre\u003e\n\n\u003chr\u003e\n\n\u003ch2\u003e📝 Notes\u003c/h2\u003e\n\n\u003cul\u003e\n  \u003cli\u003eTo exit the virtual environment, run:\n    \u003cpre\u003e\u003ccode\u003edeactivate\u003c/code\u003e\u003c/pre\u003e\n  \u003c/li\u003e\n  \u003cli\u003eIf you add new packages, don’t forget to update \u003ccode\u003erequirements.txt\u003c/code\u003e:\n    \u003cpre\u003e\u003ccode\u003epip freeze \u003e requirements.txt\u003c/code\u003e\u003c/pre\u003e\n  \u003c/li\u003e\n\u003c/ul\u003e\n\n\n\n\u003ch1\u003e📊 Ray Finance: Sectoral Stock Analysis Dashboard\u003c/h1\u003e\n\n\u003ch2\u003e✨ Features\u003c/h2\u003e\n\u003cul\u003e\n  \u003cli\u003e\u003cstrong\u003eLogin Interface:\u003c/strong\u003e Authenticated access with a simple GUI built using CustomTkinter.\u003c/li\u003e\n  \u003cli\u003e\u003cstrong\u003eDropdown-Based Sector Selection:\u003c/strong\u003e Choose between IT Outsourcing and FMCG sectors for analysis.\u003c/li\u003e\n  \u003cli\u003e\u003cstrong\u003eLive Web Scraping:\u003c/strong\u003e Extracts and processes financial data from \u003ccode\u003escreener.in\u003c/code\u003e.\u003c/li\u003e\n  \u003cli\u003e\u003cstrong\u003eDynamic UI:\u003c/strong\u003e Scrollable and responsive tables for multiple companies and financial metrics.\u003c/li\u003e\n  \u003cli\u003e\u003cstrong\u003eTabbed Layout:\u003c/strong\u003e Share Market, Gold Market, and Debt Investing tabs with dynamic content loading.\u003c/li\u003e\n\u003c/ul\u003e\n\n\n\u003ch2\u003e📁 Project Structure\u003c/h2\u003e\n\u003cpre\u003e\n📦 RayFinance\n├── 🧠 user_interface.py             # Main GUI file with login, tabs, and dynamic analysis rendering\n├── 🔍 WebScraping_IT_Screener.py   # Scraper for TCS and IT sector competitors\n├── 🔍 WebScraping_FMCG_Screener.py # Scraper for HUL and other FMCG companies\n\u003c/pre\u003e\n\n\u003ch2\u003e🧱 Architecture\u003c/h2\u003e\n\u003cul\u003e\n  \u003cli\u003e\u003cstrong\u003eFrontend GUI:\u003c/strong\u003e Built with \u003ccode\u003ecustomtkinter\u003c/code\u003e for an enhanced look and feel of the desktop app.\u003c/li\u003e\n  \u003cli\u003e\u003cstrong\u003eWeb Scraping Modules:\u003c/strong\u003e \n    \u003cul\u003e\n      \u003cli\u003e\u003ccode\u003eWebScraping_IT_Screener.py\u003c/code\u003e - Scrapes TCS and other major IT companies.\u003c/li\u003e\n      \u003cli\u003e\u003ccode\u003eWebScraping_FMCG_Screener.py\u003c/code\u003e - Scrapes HUL and other major FMCG companies.\u003c/li\u003e\n    \u003c/ul\u003e\n  \u003c/li\u003e\n  \u003cli\u003e\u003cstrong\u003eBackend Logic:\u003c/strong\u003e The scraping results are returned as structured tables and injected into the UI dynamically on selection.\u003c/li\u003e\n\u003c/ul\u003e\n\n\n\n\u003ch2\u003e🧾 Code Overview\u003c/h2\u003e\n\n\u003ch3\u003e\u003ccode\u003euser_interface.py\u003c/code\u003e\u003c/h3\u003e\n\u003cul\u003e\n  \u003cli\u003eInitializes the app window and handles login authentication.\u003c/li\u003e\n  \u003cli\u003eOn successful login, shows tabs and dropdown to select sectors.\u003c/li\u003e\n  \u003cli\u003eDynamically imports and runs the appropriate web scraping module based on selection.\u003c/li\u003e\n  \u003cli\u003eDisplays the results in styled, scrollable tables inside the Share Market tab.\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003ch3\u003e\u003ccode\u003eWebScraping_IT_Screener.py\u003c/code\u003e\u003c/h3\u003e\n\u003cul\u003e\n  \u003cli\u003eScrapes data from TCS, Infosys, Wipro, HCL Tech, Tech Mahindra, and LTIMindtree.\u003c/li\u003e\n  \u003cli\u003eExtracts and aligns metrics like:\n    \u003cul\u003e\n      \u003cli\u003eCompounded Sales Growth\u003c/li\u003e\n      \u003cli\u003eCompounded Profit Growth\u003c/li\u003e\n      \u003cli\u003eStock Price CAGR\u003c/li\u003e\n      \u003cli\u003eReturn on Equity\u003c/li\u003e\n    \u003c/ul\u003e\n  \u003c/li\u003e\n\u003c/ul\u003e\n\n\u003ch3\u003e\u003ccode\u003eWebScraping_FMCG_Screener.py\u003c/code\u003e\u003c/h3\u003e\n\u003cul\u003e\n  \u003cli\u003eScrapes financial metrics from companies like HUL, Nestle, Britannia, Dabur, ITC, and more.\u003c/li\u003e\n  \u003cli\u003eFollows the same extraction logic as the IT screener for consistency.\u003c/li\u003e\n\u003c/ul\u003e\n\n\n\n\u003ch2\u003e🚀 How to Use\u003c/h2\u003e\n\u003col\u003e\n  \u003cli\u003eEnsure you have Python 3 installed and run the following to install dependencies:\u003c/li\u003e\n\u003c/ol\u003e\n\u003cpre\u003e\u003ccode\u003epip install requests beautifulsoup4 customtkinter\u003c/code\u003e\u003c/pre\u003e\n\n\u003col start=\"2\"\u003e\n  \u003cli\u003eRun the application:\u003c/li\u003e\n\u003c/ol\u003e\n\u003cpre\u003e\u003ccode\u003epython user_interface.py\u003c/code\u003e\u003c/pre\u003e\n\n\u003col start=\"3\"\u003e\n  \u003cli\u003eLogin using:\n    \u003cul\u003e\n      \u003cli\u003e\u003cstrong\u003eUsername:\u003c/strong\u003e admin\u003c/li\u003e\n      \u003cli\u003e\u003cstrong\u003ePassword:\u003c/strong\u003e 1234\u003c/li\u003e\n    \u003c/ul\u003e\n  \u003c/li\u003e\n  \u003cli\u003eSelect a sector from the dropdown and click \"Run Analysis\".\u003c/li\u003e\n  \u003cli\u003eWait a few moments while real-time data is fetched and displayed.\u003c/li\u003e\n\u003c/ol\u003e\n\n\n\n\u003ch2\u003e🛠️ Requirements\u003c/h2\u003e\n\u003cul\u003e\n  \u003cli\u003ePython 3.8 or above\u003c/li\u003e\n  \u003cli\u003e\u003ccode\u003erequests\u003c/code\u003e\u003c/li\u003e\n  \u003cli\u003e\u003ccode\u003ebeautifulsoup4\u003c/code\u003e\u003c/li\u003e\n  \u003cli\u003e\u003ccode\u003ecustomtkinter\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003ch2\u003e📌 Notes\u003c/h2\u003e\n\u003cul\u003e\n  \u003cli\u003eThe scraping is done directly from public sources without any API dependency.\u003c/li\u003e\n  \u003cli\u003eEnsure a stable internet connection while scraping data.\u003c/li\u003e\n\u003c/ul\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdiptadeepray%2Fray-finance-app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdiptadeepray%2Fray-finance-app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdiptadeepray%2Fray-finance-app/lists"}