{"id":19306255,"url":"https://github.com/audrbar/py_site","last_synced_at":"2026-04-11T11:03:10.174Z","repository":{"id":246679057,"uuid":"821832704","full_name":"audrbar/py_site","owner":"audrbar","description":"Website for displaying Data Science Projects build on Streamlit ","archived":false,"fork":false,"pushed_at":"2025-03-16T18:21:27.000Z","size":68341,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-16T19:37:00.682Z","etag":null,"topics":["matplotlib","numpy","pandas","python3","requests","streamlit"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/audrbar.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2024-06-29T15:04:09.000Z","updated_at":"2025-03-16T18:21:31.000Z","dependencies_parsed_at":"2024-06-29T16:27:34.270Z","dependency_job_id":"864e8c0b-4d7d-4297-b68b-5d39afb8ab4b","html_url":"https://github.com/audrbar/py_site","commit_stats":null,"previous_names":["audrbar/py_site"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/audrbar/py_site","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/audrbar%2Fpy_site","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/audrbar%2Fpy_site/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/audrbar%2Fpy_site/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/audrbar%2Fpy_site/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/audrbar","download_url":"https://codeload.github.com/audrbar/py_site/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/audrbar%2Fpy_site/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270359269,"owners_count":24570454,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-14T02:00:10.309Z","response_time":75,"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":["matplotlib","numpy","pandas","python3","requests","streamlit"],"created_at":"2024-11-10T00:05:08.106Z","updated_at":"2026-04-11T11:03:10.169Z","avatar_url":"https://github.com/audrbar.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"![LICENSE](https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square)\n![Gluten Status](https://img.shields.io/badge/Gluten-Free-green.svg)\n![Eco Status](https://img.shields.io/badge/ECO-Friendly-green.svg)\n\n# Data Science Multi-Page Application\n\nHi :wave:, and welcome to the Data Science Website built with Streamlit.\n\n## Description\n\nApplication is built with **Python**, hosted on **Streamlit Community Cloud** and its data is stored in **PostgreSQL**, hosted on _Supabase_. The project uses modern **UV package manager** for fast dependency management.\n\n## Features\n\n-   📊 Interactive data exploration from CSV files\n-   🗂️ PostgreSQL-based project management system\n-   💰 Mortgage calculator with visualization\n-   🎨 Demonstration of various Streamlit UI elements\n-   🤖 AI-powered PDF question answering with LangChain \u0026 OpenAI\n\n## Pages\n\nThese are the main pages of the application:\n\n| File Name             | Description                                                          | Link                                    |\n| --------------------- | -------------------------------------------------------------------- | --------------------------------------- |\n| Data_Explorer.py      | Explores datasets read from .csv files provided by user              | [LINK](./pages/1_Data_Explorer.py)      |\n| Project_Management.py | Executes project management tasks, reads and writes data to database | [LINK](./pages/2_Project_management.py) |\n| mortgage_calc.py      | Interactive mortgage calculator with payment schedule visualization  | [LINK](./pages/3_mortgage_calc.py)      |\n| Various_Elements.py   | Explores different built-in Streamlit UI possibilities               | [LINK](./pages/4_Various_Elements.py)   |\n| Langchain_PDF.py      | AI assistant that answers questions about uploaded PDF documents     | [LINK](./pages/5_Langchain_PDF.py)      |\n\n## Installation\n\n### Prerequisites\n\n-   Python 3.12 or higher\n-   UV package manager (recommended) or pip\n\n### Using UV (Recommended)\n\nUV is a fast Python package manager. Install it first:\n\n```bash\n# On macOS/Linux\ncurl -LsSf https://astral.sh/uv/install.sh | sh\n\n# On Windows\npowershell -c \"irm https://astral.sh/uv/install.ps1 | iex\"\n```\n\nThen set up the project:\n\n```bash\n# Clone the repository\ngit clone \u003cyour-repo-url\u003e\ncd py_site\n\n# Create virtual environment\nuv venv\n\n# Activate virtual environment\nsource .venv/bin/activate  # On macOS/Linux\n.venv\\Scripts\\activate     # On Windows\n\n# Install dependencies\nuv pip install -e .\n```\n\n### Using pip (Alternative)\n\n```bash\n# Install dependencies from requirements.txt\npip install -r requirements.txt\n```\n\n## Configuration\n\n### Database Setup\n\nCreate a `.streamlit/secrets.toml` file with your database credentials:\n\n```toml\n[connections.postgresql]\ndialect = \"postgresql\"\nhost = \"your-host.supabase.com\"\nport = \"5432\"\ndatabase = \"postgres\"\nusername = \"your-username\"\npassword = \"your-password\"\n\n[openai]\napi_key = \"your-openai-api-key\"\n```\n\n## Running the Application\n\n```bash\n# Make sure virtual environment is activated\nstreamlit run Home.py\n```\n\nThe application will open in your default browser at `http://localhost:8501`\n\n## Project Structure\n\n```\npy_site/\n├── Home.py                 # Main entry point\n├── pages/                  # Multi-page application pages\n├── src/                    # Database connection and table classes\n├── data/                   # Sample data and diagrams\n├── style/                  # Custom CSS\n├── images/                 # Static images\n├── tests/                  # Test files\n├── pyproject.toml          # UV/pip dependencies\n├── requirements.txt        # Pip requirements (legacy)\n└── README.md              # This file\n```\n\n## Data Sources\n\nFor testing purposes, the following initial data sets are available:\n\n| File Name       | Source                           | Source Link                   |\n| --------------- | -------------------------------- | ----------------------------- |\n| movies.csv      | Demo Data for Data Explorer      | [LINK](./data/movies.csv)     |\n| initial_data.py | Demo Data for Project Management | [LINK](./src/initial_data.py) |\n\n## Database Diagram\n\nDatabase diagram used to construct the database structure:\n\n![Database Diagram](./data/tb_diagram.png)\n\n## Technology Stack\n\n-   **Framework**: Streamlit 1.37+\n-   **Language**: Python 3.12+\n-   **Package Manager**: UV\n-   **Database**: PostgreSQL (Supabase)\n-   **ORM**: SQLAlchemy 2.0+\n-   **AI/ML**: LangChain, OpenAI, FAISS\n-   **Data Processing**: Pandas, NumPy\n-   **Visualization**: Matplotlib, Seaborn\n\n## Dependencies\n\nCore dependencies are managed in `pyproject.toml`:\n\n-   streamlit, pandas, numpy (core)\n-   psycopg2-binary, SQLAlchemy (database)\n-   langchain, openai, faiss-cpu (AI/ML)\n-   matplotlib, seaborn (visualization)\n\nSee [pyproject.toml](./pyproject.toml) for complete list.\n\n## 🧪 Running Tests\n\nTests are available in the [tests directory](./tests/). Run them with pytest:\n\n```bash\npytest\n```\n\n## 🎅 Authors\n\nAudrius: [Github](https://github.com/audrbar)\n\n## ⚠️ License\n\nDistributed under the MIT License. See [LICENSE](./LICENSE) for more information.\n\n## 🔗 Resources\n\n-   [Streamlit Documentation](https://docs.streamlit.io/)\n-   [LangChain Documentation](https://python.langchain.com/)\n-   [UV Package Manager](https://github.com/astral-sh/uv)\n-   [Langchain PDF Tutorial](https://www.youtube.com/watch?v=wUAUdEw5oxM)\n-   [Ask Book](https://bennycheung.github.io/ask-a-book-questions-with-langchain-openai)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faudrbar%2Fpy_site","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faudrbar%2Fpy_site","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faudrbar%2Fpy_site/lists"}