Skip to main content

Total Participation Statistics for Alliance Auth

Project description

AA-TPS (Alliance Auth - Total Participation Statistics)

PyPI - Version PyPI - Downloads Python Versions Django License

Zero-configuration PvP activity tracking for your entire Alliance Auth community.

AA-TPS automatically tracks and visualizes PvP activity for all authenticated users in your Alliance Auth installation. No setup required - just install and go.

Features

Automatic Tracking

  • All Users, All the Time - Automatically tracks every authenticated user's PvP activity
  • Current Month Focus - Always shows the current month's statistics
  • Smart Data Collection - Intelligently pulls data by alliance/corp to minimize API calls
  • Historical Access - Browse previous months' statistics

Rich Visualizations

  • Daily Activity Charts - See kills and losses over time with interactive Chart.js graphs
  • Ship Class Breakdown - Doughnut charts showing what's being flown and destroyed
  • ISK Flow Analysis - Track ISK destroyed vs lost with area charts
  • Personal Performance - Individual pilots can see their own stats and ranking

Leaderboards

  • Organization-wide Rankings - See who's contributing the most
  • Kill Count & ISK Value - Multiple ranking metrics
  • Top Performer Badges - Recognition for top 5 pilots
  • Smart Aggregation - Alt characters properly grouped under main

Activity Feed

  • Recent Kills - Live feed of recent activity
  • Color-coded - Green for kills, red for losses
  • Direct Links - One-click access to ZKillboard for details
  • Rich Information - Ship types, values, participants at a glance

Screenshots

Screenshots coming soon

Requirements

  • Alliance Auth >= 4.3.1
  • django-eveuniverse
  • Python >= 3.10

Installation

  1. Activate your virtual environment:
source /home/allianceserver/venv/auth/bin/activate
cd /home/allianceserver/myauth/
  1. Install the package:
pip install aa-tps
  1. Add to INSTALLED_APPS in your local.py:
INSTALLED_APPS += [
    "eveuniverse",  # if not already added
    "aatps",
]
  1. Run migrations and setup:
python manage.py migrate
python manage.py collectstatic --noinput
python manage.py aa_tps_setup
  1. Restart services:
sudo supervisorctl restart myauth:

Configuration

AA-TPS works out of the box with zero configuration. However, you can customize behavior in your local.py:

# How many months of data to retain (default: 12)
AA_TPS_RETENTION_MONTHS = 12

# Enable/disable personal stats tab (default: True)
AA_TPS_SHOW_PERSONAL_STATS = True

Usage

Automatic Data Collection

AA-TPS automatically pulls killmail data hourly for all authenticated users. The task intelligently:

  • Groups characters by alliance/corporation to minimize API calls
  • Deduplicates data to avoid redundant requests
  • Respects ZKillboard rate limits

Manual Data Pull

To manually trigger a data pull:

# Pull current month data
python manage.py aa_tps_pull

# With verbose output
python manage.py aa_tps_pull --verbose

Viewing Statistics

  1. Grant users the aatps.basic_access permission
  2. Users can access the dashboard from the sidebar menu
  3. The dashboard shows:
  • Organization-wide statistics for the current month
  • Interactive charts and graphs
  • Leaderboard of top performers
  • Personal statistics (if enabled)
  • Recent activity feed

Permissions

Permission Description
basic_access Can view the activity dashboard

Data Flow

ZKillboard API
  |
[Hourly Celery Task]
  |
ESI API (for full killmail details)
  |
[MonthlyKillmail + KillmailParticipant models]
  |
Dashboard Views
  |
Chart.js Visualizations

API Politeness

AA-TPS is designed with API politeness as a priority:

  • Minimum 500ms between ZKillboard requests
  • Smart deduplication reduces redundant calls
  • Respects rate limit headers
  • Uses compression for faster transfers

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

This project is licensed under the GNU General Public License v3.0 - see the LICENSE file for details.

Credits

  • Originally based on AA-Campaign by BioBrute
  • Built for the Alliance Auth community
  • Powered by data from ZKillboard

Support

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aa_tps-1.1.2.tar.gz (68.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

aa_tps-1.1.2-py3-none-any.whl (79.7 kB view details)

Uploaded Python 3

File details

Details for the file aa_tps-1.1.2.tar.gz.

File metadata

  • Download URL: aa_tps-1.1.2.tar.gz
  • Upload date:
  • Size: 68.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for aa_tps-1.1.2.tar.gz
Algorithm Hash digest
SHA256 c78d463c131b9d51ec7563416e95a9221449def16fe248e5a53ea6791cabd3da
MD5 6b619a14726a29f844b23e2e8c3b83a9
BLAKE2b-256 ab37790d7f82d4c2435780e43df64601b6577d68fd1cb608b1237885850fd3e5

See more details on using hashes here.

Provenance

The following attestation bundles were made for aa_tps-1.1.2.tar.gz:

Publisher: release.yml on guarzo/aa-tps

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file aa_tps-1.1.2-py3-none-any.whl.

File metadata

  • Download URL: aa_tps-1.1.2-py3-none-any.whl
  • Upload date:
  • Size: 79.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for aa_tps-1.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 78f22d832a34e0a862079571d4ceda69aa3df85436c6d8c598b791c8e1b9468c
MD5 a2cdb69f2066b047a0c0d9585a289c41
BLAKE2b-256 051b671f2439fbe4af4623547974b9f5486d17d9f601ff04f4934868beed48f2

See more details on using hashes here.

Provenance

The following attestation bundles were made for aa_tps-1.1.2-py3-none-any.whl:

Publisher: release.yml on guarzo/aa-tps

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page