Jisan09/activity_tracker

Some random django code

โ˜… 0Forks 0PythonGitHub โ†—Compare

README

Activity Tracker API

A Django REST Framework (DRF) based backend for tracking user activities with statuses and metadata.


๐Ÿ“Œ Features

  • Token or Basic authentication support (default: BasicAuth)
  • Filterable logs by status, user, or action
  • Separate endpoint for status-only updates
  • Django admin and browsable API
  • Swagger UI for documentation
  • Test coverage for models and views

โš™๏ธ Setup Instructions

  • Clone the Repository

    git clone https://github.com/jisan09/activity-tracker.git
    cd activity-tracker
  • Create and Activate a Virtual Environment

    python3 -m venv .venv
    source .venv/bin/activate
  • Install Dependencies

    pip install -r requirements.txt
  • Apply Migrations

    python manage.py migrate
  • Create Superuser

    python manage.py createsuperuser
  • Run Development Server

    python manage.py runserver
  • To populate sample data (optional)

    python manage.py seed_activity

โœ… Running Tests

python manage.py test --keepdb

๐Ÿ“„ API Documentation

๐Ÿ“ Project Structure

activity_tracker/
โ”œโ”€โ”€ apps
โ”‚     โ”œโ”€โ”€ __init__.py
โ”‚     โ””โ”€โ”€ activity
โ”‚         โ”œโ”€โ”€ __init__.py
โ”‚         โ”œโ”€โ”€ admin.py
โ”‚         โ”œโ”€โ”€ apps.py
โ”‚         โ”œโ”€โ”€ filters.py
โ”‚         โ”œโ”€โ”€ management
โ”‚         โ”‚     โ””โ”€โ”€ commands
โ”‚         โ”‚         โ””โ”€โ”€ seed_activity.py
โ”‚         โ”œโ”€โ”€ migrations
โ”‚         โ”‚     โ”œโ”€โ”€ 0001_initial.py
โ”‚         โ”‚     โ””โ”€โ”€ __init__.py
โ”‚         โ”œโ”€โ”€ models.py
โ”‚         โ”œโ”€โ”€ serializers.py
โ”‚         โ”œโ”€โ”€ tests
โ”‚         โ”‚     โ”œโ”€โ”€ __init__.py
โ”‚         โ”‚     โ”œโ”€โ”€ test_model.py
โ”‚         โ”‚     โ””โ”€โ”€ test_view.py
โ”‚         โ”œโ”€โ”€ tests.py
โ”‚         โ”œโ”€โ”€ urls.py
โ”‚         โ””โ”€โ”€ views.py
โ”œโ”€โ”€ core
โ”‚     โ”œโ”€โ”€ __init__.py
โ”‚     โ”œโ”€โ”€ settings.py
โ”‚     โ”œโ”€โ”€ urls.py
โ”‚     โ””โ”€โ”€ wsgi.py
โ”œโ”€โ”€ README.md
โ”œโ”€โ”€ manage.py
โ””โ”€โ”€ requirements.txt

๐Ÿ”€ Sample API Calls (cURL)

๐Ÿ”น Create a Log Entry
curl -su mdjisan:Jisan123 -X POST "http://127.0.0.1:8000/api/logs/" \
-H "Content-Type: application/json" \
-d '{
  "action": "UPLOAD_FILE",
  "status": "PENDING",
  "metadata": {
    "filename": "sample.txt"
  }
}' | python3 -m json.tool
๐Ÿ”น List All Logs
curl -su mdjisan:Jisan123 "http://127.0.0.1:8000/api/logs/" | python3 -m json.tool
๐Ÿ”น Filter Logs by Status
curl -su mdjisan:Jisan123 "http://127.0.0.1:8000/api/logs/?status=PENDING" | python3 -m json.tool
๐Ÿ”น Filter Logs by User
curl -su mdjisan:Jisan123 "http://127.0.0.1:8000/api/logs/?user_id=2" | python3 -m json.tool
๐Ÿ”น Retrieve Log by ID
curl -su mdjisan:Jisan123 "http://127.0.0.1:8000/api/logs/20/" | python3 -m json.tool
๐Ÿ”น Update Log (PUT)
curl -su mdjisan:Jisan123 -X PUT "http://127.0.0.1:8000/api/logs/20/" \
-H "Content-Type: application/json" \
-d '{
  "action": "UPLOAD_FILE",
  "status": "DONE",
  "metadata": {
    "filename": "updated.txt"
  }
}' | python3 -m json.tool
๐Ÿ”น Update Status Only (PATCH)
curl -su mdjisan:Jisan123 -X PATCH "http://127.0.0.1:8000/api/logs/20/update-status/" \
-H "Content-Type: application/json" \
-d '{
  "status": "IN_PROGRESS"
}' | python3 -m json.tool
๐Ÿ”น Delete Log
curl -su mdjisan:Jisan123 -X DELETE "http://127.0.0.1:8000/api/logs/33/" | python3 -m json.tool

Contributors

Jisan09

Issues