Add your description here
Project description
🎯 django-trackmate
django-trackmate is a lightweight and customizable Django package for tracking API requests, login/logout activities, and user-defined actions within your application. This package simplifies activity tracking and provides actionable insights into user behavior.
🚀 Features
✔ Request Logging – Automatically log incoming API requests with detailed metadata.
✔ Login/Logout Tracking – Monitor user authentication events seamlessly.
✔ Custom Action Logs – Track user actions across your application.
✔ Django Admin Integration – View, filter, and manage activity logs in the admin panel.
✔ GenericForeignKey Support – Log actions related to various models effortlessly.
✔ Highly Configurable – Exclude paths, customize log details, and more.
📦 Installation
1️⃣ Install the package
Using pip:
pip install django-trackmate
or using `uv`:
```bash
uv add django-trackmate
2️⃣ Add to INSTALLED_APPS
Modify your settings.py:
INSTALLED_APPS = [
...
'django_trackmate',
]
3️⃣ Run Migrations
Set up the necessary database tables:
python manage.py makemigrations django_trackmate
python manage.py migrate
🛠 Usage
📝 Logging Custom Actions
Use the tracker decorator to log custom actions:
from django_trackmate import tracker
@tracker()
def my_api_view(request):
...
🛡️ Enable Middleware
Add RequestTrackerMiddleware to MIDDLEWARE:
MIDDLEWARE = [
...
'django_trackmate.middleware.RequestTrackerMiddleware',
]
⚙️ Configuration
Customize logging behavior in settings.py:
TRACKMATE_EXCLUDED_PATH = ["/admin/", "/docs/"] # Paths to exclude from logging
TRACKMATE_LOG_LOGIN_ACTIVITIES = True # Enable login activity logging (default: True)
📂 Extending Functionality
You can manually create activity logs using the ActivityLog model:
from django_trackmate.models import ActivityLog
from datetime import datetime
ActivityLog.objects.create(
actor=None,
action_type="LOGIN_FAILED",
action_time=datetime.now(),
remarks="Invalid credentials"
)
🔍 Available Parameters
| Parameter | Description |
|---|---|
content_object |
Django model instance linked to the log |
actor |
User performing the action |
action_type |
Action type (Create, Read, Update, Delete, Login, Logout, Login Failed) |
action_time |
Timestamp of the action |
remarks |
Additional details |
ip_address |
IP address of the request |
status |
Status (Success, Failed) |
status_code |
HTTP status code |
response |
Response data |
data |
Request data |
📊 Viewing Logs
- View logs in Django Admin under the Activity Logs section.
- Use filters to sort by user, action type, timestamp, or related objects.
🎨 Enhancing UI with django-unfold
1️⃣ Install django-unfold:
pip install django-unfold
2️⃣ Add unfold to INSTALLED_APPS:
INSTALLED_APPS = [
...
'unfold',
]
3️⃣ Customize the admin panel (admin.py):
from django.contrib import admin
from django_trackmate.models import ActivityLog
from unfold.admin import ModelAdmin
from unfold.contrib.filters.admin import RangeDateFilter
@admin.register(ActivityLog)
class ActivityLogAdmin(ModelAdmin):
list_display = ('id', 'actor', 'action_type', 'action_time', 'status_code', 'status', 'remarks')
list_filter = ("action_type", "status_code", ("action_time", RangeDateFilter)) # Date filter
🧪 Running Tests (Coming Soon) 🚧
Run tests to ensure everything is working:
python manage.py test trackmate
💡 Contributing
Contributions are welcome! To contribute:
1️⃣ Fork the repository.
2️⃣ Create a new branch for your feature or bugfix.
3️⃣ Submit a pull request with a detailed description.
📄 License
This project is licensed under the MIT License. See the LICENSE file for details.
📧 Support
If you encounter issues or have questions, feel free to:
📬 Open an issue on GitHub
📩 Email us at aime.degbey@kodesio.com
🏗 Built With
- Django – The web framework for perfectionists with deadlines.
- Python – Simplicity and flexibility for scalable software.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file django_trackmate-0.2.0.tar.gz.
File metadata
- Download URL: django_trackmate-0.2.0.tar.gz
- Upload date:
- Size: 9.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d4377b4a9843ff222a9018a18b335252cac8264c12bb2a777d788a1be54ad68d
|
|
| MD5 |
a6a4ce41f640b6d815bce7c85c37671f
|
|
| BLAKE2b-256 |
e5d8ffdf681fd0f600816aa59fe9494276ef9a160f9e008626bebb117f0421cf
|
File details
Details for the file django_trackmate-0.2.0-py3-none-any.whl.
File metadata
- Download URL: django_trackmate-0.2.0-py3-none-any.whl
- Upload date:
- Size: 9.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9fd985cfdba25b287b8175d89204df7519186d078f0c10e9b1c3222bc30a6504
|
|
| MD5 |
05d4cb48cdf26ec5ecc2924b62ad902c
|
|
| BLAKE2b-256 |
29e4092143b0a9691121b3548451eeedfffa94a289239ae1bde25fc9a8ca1758
|