Skip to content

slothsintel/AutoTrac

Repository files navigation

AutoTrac

Static Badge Static Badge License: MIT Python Status

Static Badge Platform

AutoTrac is developed and maintained by Sloths Intel, is a lightweight, mobile-first time tracking and income tracking PWA designed for freelancers, consultants, and small teams. It focuses on clarity, low friction, and offline-friendly workflows, with automatic aggregation and simple financial insights.


Contents


Features

Time Tracking

  • Start / stop time entries per project
  • Manual time entry (start–end or duration)
  • Project-based aggregation
  • Weekly summaries (last 7 days)

Income Tracking

  • Income entries per project
  • Multi-currency support
  • Automatic FX conversion to GBP
  • Weekly and daily income summaries

Visual Overview

  • Stacked daily time chart (last 30 days)
  • Stacked daily income chart (last 30 days)
  • Swipe left/right to explore history
  • Charts default to most recent data

Authentication

  • Email + password login
  • JWT-based authentication
  • Per-user data isolation
  • One-device token (MVP)

PWA & UX

  • Mobile-first design
  • Dark mode support
  • Offline-friendly frontend
  • Fast refresh & background re-sync

Architecture

├── AutoTrac
│   └── frontend
│       ├── postcss.config.js
│       ├── src
│       ├── tsconfig.app.json
│       ├── tsconfig.node.json
│       ├── package-lock.json
│       ├── index.html
│       ├── dist
│       ├── vite.config.ts
│       ├── tsconfig.json
│       ├── tailwind.config.js
│       ├── public
│       ├── package.json
│       ├── node_modules
│       ├── eslint.config.js
│       └── README.md
├── autotrac.db
├── autotrac.svg
├── requirements.txt
├── package-lock.json
└── README.md

├── backend
│   ├── __init__.py
│   ├── __pycache__
│   │   └── __init__.cpython-311.pyc
│   └── app
│       ├── __init__.py
│       ├── __pycache__
│       │   ├── __init__.cpython-311.pyc
│       │   ├── db.cpython-311.pyc
│       │   ├── main.cpython-311.pyc
│       │   ├── models.cpython-311.pyc
│       │   └── schemas.cpython-311.pyc
│       ├── db.py
│       ├── main.py
│       ├── models.py
│       └── schemas.py
├── requirements.txt
└── runtime.txt

Tech Stack

Frontend

  • React
  • TypeScript
  • Vite
  • Recharts
  • Tailwind CSS
  • PWA (Web App Manifest)

Backend

  • FastAPI
  • SQLAlchemy
  • PostgreSQL
  • JWT authentication
  • psycopg

Hosting

  • Frontend: Render (static site)
  • Backend: Render (web service)
  • Database: Render PostgreSQL

Local Development

Clone the repository

git clone https://github.com/slothsintel/autotrac.git
cd autotrac

Frontend (Vite)

cd frontend
npm install
npm run dev

Frontend runs at:

http://localhost:5173

Backend (FastAPI)

Create a virtual environment and install dependencies:

cd backend
python -m venv .venv
source .venv/bin/activate   # Linux / macOS
# .venv\Scripts\activate    # Windows

pip install -r requirements.txt

Set environment variables (example):

export DATABASE_URL=postgresql+psycopg://user:pass@localhost:5432/autotrac
export SECRET_KEY=dev-secret

Run the backend:

uvicorn backend.app.main:app --host 0.0.0.0 --port 10000

Backend runs at:

http://localhost:8000

Swagger UI:

http://localhost:8000/docs

API Overview

Auth

  • POST /auth/register
  • POST /auth/login
  • GET /auth/me

Projects

  • GET /projects/
  • POST /projects/
  • DELETE /projects/{project_id}

Time Entries

  • GET /time-entries/
  • POST /time-entries/
  • POST /time-entries/{entry_id}/stop

Income

  • GET /incomes/
  • POST /incomes/
  • DELETE /incomes/{income_id}

Data Model Notes

  • Projects are unique per user ((user_id, name) constraint)

  • All data is strictly user-scoped

  • Cascading deletes are enabled:

    • Deleting a project deletes its time entries and income records

Build & Deploy (Render)

Frontend

cd frontend
npm run build
cd ..
git add .
git commit -m "Build frontend"
git push

Render automatically redeploys the frontend.


Backend

cd backends
git add AutoTrac
git commit -m "Deploy backend updates"
git push

Render automatically redeploys the backend service.


Roadmap

  • biometric login
  • iOS / Android store packaging
  • Team / shared projects

Contribution

Maintained by Sloths Intel GitHub, and Daddy Sloth Github.


License

© 2026 Sloths Intel.

A trading name of Sloths Intel Ltd Registered in England and Wales (Company No. 16907507).

MIT License.


Links

⬆️