main_app.py | ||
readme.md |
UrNetwork Stats Dashboard - Refactored
Hits - demo |
Hits - repo |
🇬🇧 English
About The Project
This project is a significantly enhanced and refactored version of the original UrNetwork Stats Dashboard. The application is designed to track, store, and visualize statistics about data transfers (both paid and unpaid) and earnings from your UrNetwork account.
The entire application is packaged into a single main_app.py
file for simplicity, yet it contains robust features including a web-based installer, authentication, public/private views, interactive charts, a provider map, and support for webhook notifications.
A Note from the Author
I know I might get some hate for using AI to build and refactor this, but since I have access to it for free, I want to make the most of it. Plus, no offense to my friends who can code, but Gemini often explains concepts more clearly! (no hate) (this readme is made by ai too.... please just dont hate me, im a stupid bitch-ass idiot that's almost braindead and im not even kidding.)
✨ Features
- 🐍 All-in-One Python Script: The entire application logic, including the frontend, is contained within a single
main_app.py
file. - 🚀 Web-Based Installer: A simple setup wizard guides you through configuring your UrNetwork API credentials on the first run.
- 🔐 Dual Views (Public/Private):
- Public Dashboard: Displays summary stats, total data over time, and a world map of provider locations. Perfect for a quick overview.
- Private Dashboard: After logging in, you get access to detailed charts, a complete history of data points, webhook management, and other administrative functions.
- 📊 Interactive Charts: Utilizes
Chart.js
for data visualization, including:- Total data provided over time.
- Paid vs. Unpaid data comparison.
- A bar chart showing data change between intervals.
- 🗺️ Provider Map: Displays the number of active providers by country on a world map using
Leaflet.js
. - ⚙️ Automated Data Collection: A scheduler (
APScheduler
) automatically fetches and saves new data from the API every 15 minutes. - 🔔 Webhook Notifications: Add your own webhook URLs (e.g., for Discord) to receive notifications with each new data sync.
- 🎨 Modern UI:
- Styled with Tailwind CSS.
- Light/Dark/System theme support.
- Fully responsive design.
- 💾 Persistent Storage: Uses
SQLAlchemy
and aSQLite
database to store historical data.
🚀 Getting Started
Prerequisites
- Python 3.x
- Pip (Python package manager)
Installation
-
Clone the repository:
git clone <YOUR_REPOSITORY_URL> cd <FOLDER_NAME>
-
Create and activate a virtual environment (recommended):
python -m venv venv # On Windows .venv\Scripts\activate # On macOS / Linux source venv/bin/activate
-
Install requirements: Create a
requirements.txt
file with the following content:Flask Flask-SQLAlchemy Flask-APScheduler requests python-dateutil gunicorn
Then, install them:
pip install -r requirements.txt
-
Run the application:
python main_app.py
Note: For a production environment, it's better to use a WSGI server like
gunicorn
.gunicorn --bind 0.0.0.0:90 main_app:app
-
Web-based Configuration:
- Open
http://localhost:90
(or your server's IP address) in your browser. - You will be redirected to the setup page. Enter your UrNetwork username and password.
- Upon successful verification, a
.env
file will be created with your credentials and a secret key will be generated for the session. The application is now installed.
- Open
🕹️ Usage
After installation, the application is ready to use.
- Public Dashboard (
/
): The main page, accessible to anyone. It shows summary stats and the provider map. The data on this page updates automatically every minute without a page refresh. - Private Dashboard (
/dashboard
):- Click on "Owner Dashboard" to access it.
- Log in using the same credentials you entered during setup.
- Here you will find detailed charts, the full history of all measurements, and you can manage your webhooks.
- Fetch Now: Manually triggers a data fetch from the API.
- Clear All Data: Deletes all historical data from the database.
- Webhook Management: Add or remove URLs for notifications.
🛠️ Tech Stack
- Backend: Flask
- Database: Flask-SQLAlchemy (with SQLite)
- Job Scheduler: Flask-APScheduler
- Frontend: Tailwind CSS, Chart.js, Leaflet.js
- HTTP Requests: Requests
🙏 Acknowledgements
- Original concept and project by techroy23.
- This version was completely refactored and extended with the help of AI.
🇨🇿 Česky
O Projektu
Tento projekt je výrazně vylepšená a refaktorovaná verze původního UrNetwork Stats Dashboard. Aplikace slouží ke sledování, ukládání a vizualizaci statistik o přenesených datech (placených i neplacených) a výdělcích z vašeho účtu v síti UrNetwork.
Celá aplikace je zabalena do jediného souboru main_app.py
pro jednoduchost, ale obsahuje robustní funkce, včetně webového instalátoru, autentizace, veřejného a soukromého pohledu, interaktivních grafů, mapy poskytovatelů a podpory pro webhooky.
Poznámka od Autora
Vím, že asi dostanu hejt za to, že jsem na stavbu a refaktoring použil AI, ale když k tomu mám přístup zadarmo, chci toho co nejvíc využít. Navíc, nic proti mým kamarádům, co umí programovat, ale Gemini mi to často vysvětlí srozumitelněji! (no hate) (Tento soubor readme je také vytvořen umělou inteligencí... Prosím, nenávidějte mě, jsem debilní idiot, který je skoro mrtvýmozkově, a to ani nepřeháním.)
✨ Klíčové Vlastnosti
- 🐍 All-in-One Python Skript: Celá logika aplikace, včetně frontendu, je obsažena v jediném souboru
main_app.py
. - 🚀 Webový Instalátor: Při prvním spuštění vás provede jednoduchým nastavením přihlašovacích údajů k UrNetwork API.
- 🔐 Dva Pohledy (Public/Private):
- Veřejný Dashboard: Zobrazuje souhrnné statistiky, celkový objem dat v čase a mapu poskytovatelů po celém světě. Ideální pro rychlý přehled.
- Soukromý Dashboard: Po přihlášení získáte přístup k detailním grafům, kompletní historii měření, správě webhooků a dalším administrátorským funkcím.
- 📊 Interaktivní Grafy: Využívá
Chart.js
pro vizualizaci dat, včetně:- Celkový objem dat v čase.
- Porovnání placených vs. neplacených dat.
- Graf přírůstků dat mezi jednotlivými měřeními.
- 🗺️ Mapa Poskytovatelů: Zobrazuje na mapě světa (pomocí
Leaflet.js
) počet aktivních poskytovatelů v jednotlivých zemích. - ⚙️ Automatický Sběr Dat: Plánovač (
APScheduler
) automaticky stahuje a ukládá data z API každých 15 minut. - 🔔 Notifikace přes Webhooky: Možnost přidat si vlastní webhooky (např. pro Discord) a dostávat notifikace při každé nové synchronizaci dat.
- 🎨 Moderní UI:
- Stylováno pomocí Tailwind CSS.
- Podpora Světlého/Tmavého režimu s možností synchronizace s nastavením systému.
- Plně responzivní design.
- 💾 Perzistentní Úložiště: Využívá
SQLAlchemy
aSQLite
databázi pro ukládání historických dat.
🚀 Jak začít
Požadavky
- Python 3.x
- Pip (správce balíčků pro Python)
Instalace
-
Klonujte repozitář:
git clone <URL_VAŠEHO_REPOZITÁŘE> cd <NÁZEV_SLOŽKY>
-
Vytvořte a aktivujte virtuální prostředí (doporučeno):
python -m venv venv # Windows .venv\Scripts\activate # macOS / Linux source venv/bin/activate
-
Nainstalujte potřebné balíčky: Vytvořte soubor
requirements.txt
s následujícím obsahem:Flask Flask-SQLAlchemy Flask-APScheduler requests python-dateutil gunicorn
A poté je nainstalujte:
pip install -r requirements.txt
-
Spusťte aplikaci:
python main_app.py
Poznámka: Pro produkční nasazení je lepší použít WSGI server jako
gunicorn
.gunicorn --bind 0.0.0.0:90 main_app:app
-
Webová konfigurace:
- Otevřete v prohlížeči adresu
http://localhost:90
(nebo IP adresu vašeho serveru). - Budete přesměrováni na instalační stránku. Zde zadejte své uživatelské jméno a heslo k účtu UrNetwork.
- Po úspěšném ověření se automaticky vytvoří soubor
.env
s vašimi údaji a vygeneruje se tajný klíč pro session. Aplikace se tímto nainstaluje.
- Otevřete v prohlížeči adresu
🕹️ Použití
Po instalaci je aplikace připravena k použití.
- Veřejný Dashboard (
/
): Hlavní stránka dostupná komukoliv. Zobrazuje souhrnné statistiky a mapu. Data na této stránce se automaticky aktualizují každou minutu bez nutnosti obnovení stránky. - Soukromý Dashboard (
/dashboard
):- Pro přístup klikněte na "Owner Dashboard".
- Přihlaste se pomocí stejných údajů, které jste zadali při instalaci.
- Zde naleznete detailní grafy, historii všech měření a můžete spravovat webhooky.
- Fetch Now: Manuálně spustí sběr dat z API.
- Clear All Data: Smaže veškerá historická data z databáze.
- Webhook Management: Přidávejte nebo odebírejte URL pro notifikace.
🛠️ Použité Technologie
- Backend: Flask
- Databáze: Flask-SQLAlchemy (s SQLite)
- Plánovač úloh: Flask-APScheduler
- Frontend: Tailwind CSS, Chart.js, Leaflet.js
- HTTP Požadavky: Requests
🙏 Poděkování
- Původní koncept a projekt vytvořil techroy23.
- Tato verze byla kompletně refaktorována a rozšířena pomocí AI.