Authograph is a secure image-sharing platform built with Django and SvelteKit. It supports image encryption, watermarking, metadata management, access control, activity logs, and AI-protection features.
- Django and Django REST Framework
- SvelteKit, Svelte 5, and Tailwind CSS
- SQLite
- Pillow, OpenCV, NumPy, and PyWavelets
- AES encryption using
cryptography
- Python 3.10 or newer
- Node.js 20 or newer
- npm
- ExifTool (optional, for complete metadata support)
git clone https://github.com/sagarnewpane/AuthoGraph.git
cd AuthoGraphCopy the included templates:
cp backend/.env.example backend/.env
cp frontend/.env.example frontend/.envEdit the copied files if needed. The default frontend configuration already connects to the local Django server.
Email credentials in backend/.env are optional unless password-reset emails
are required.
On macOS, Linux, or WSL:
chmod +x setup_project.sh start_project.sh
./setup_project.shThe setup script creates .venv, installs the backend and frontend
dependencies, creates backend/db.sqlite3, and applies the Django migrations.
To use a specific Python version:
PYTHON_BIN=python3.10 ./setup_project.sh./start_project.shOpen:
- Frontend:
http://localhost:5173 - Django API:
http://127.0.0.1:8000 - Django admin:
http://127.0.0.1:8000/admin/
Press Ctrl+C to stop both servers.
cd backend
../.venv/bin/python manage.py createsuperuserIf the setup script is unavailable:
python3 -m venv .venv
./.venv/bin/python -m pip install -r backend/requirements.txt
cd backend
../.venv/bin/python manage.py migrate
cd ../frontend
npm ciRun Django and SvelteKit in separate terminals:
cd backend
../.venv/bin/python manage.py runservercd frontend
npm run dev- PostgreSQL is not required. Local data is stored in
backend/db.sqlite3. - Uploaded files are stored in
backend/media/. - Back up both
backend/db.sqlite3andbackend/media/when moving the project to another device. - If uploads fail because
cryptographyis missing, rerun:
./.venv/bin/python -m pip install -r backend/requirements.txtThis project is intended for academic and educational purposes.