Skip to content

b3mug1/link_tracker

Repository files navigation

Link Tracker

Production-ready FastAPI backend for tracking updates from resources (GitHub repositories, Stack Overflow questions, RSS feeds, blogs, docs pages, and generic websites) with pluggable providers and notification channels.

Features

  • Secure registration/login with JWT access + refresh tokens
  • Role-based authorization
  • Full CRUD for tracked links
  • URL validation + automatic provider detection
  • Periodic background checks with configurable intervals
  • Efficient update detection using ETag / Last-Modified / content digest fallback
  • Retry + rate limit safeguards for external calls
  • Update history + deduplicated notifications
  • Extensible notification channels and provider architecture
  • Search/filter/sort/pagination for links
  • Consistent API response envelope
  • Alembic migrations
  • Structured logging
  • Unit + integration tests
  • Docker + Docker Compose for local development

Quickstart

  1. Copy environment:
cp .env.example .env
  1. Start services:
docker compose up --build
  1. API docs:

Local (without Docker)

python -m venv .venv
source .venv/bin/activate  # or .venv\\Scripts\\activate on Windows
pip install -e .[dev]
alembic upgrade head
uvicorn app.main:app --reload

Tests

pytest

Architecture

  • app/services/providers/*: provider detection and update extraction logic
  • app/services/notifiers/*: channel strategy implementations
  • app/services/checker.py: periodic link check orchestration
  • app/api/v1/endpoints/*: REST endpoints
  • app/models/*: SQLAlchemy models
  • app/schemas/*: Pydantic request/response models

About

Production-ready Link Tracker API built with FastAPI: track updates from GitHub, Stack Overflow, RSS, blogs, and web pages with JWT auth, background checks, and extensible notifications.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages