A full-stack Django project that combines a Task Manager with a Donation System.
Built using Django, PostgreSQL, Docker, Stripe (Test Mode), and PayFast (Sandbox).
- ✅ User authentication (login/register)
- ✅ Task management (CRUD: Create, Read, Update, Delete tasks)
- ✅ Donation system:
- Stripe (test mode with sandbox cards)
- PayFast (sandbox donation setup only)
- ✅ Dockerized setup for easy deployment
- ✅ Environment-based configuration (
.envfile)
- Backend → Django 4.x, Python 3.9+
- Database → PostgreSQL
- Payments → Stripe (test mode), PayFast (sandbox)
- Containerization → Docker & Docker Compose
todoapp_django/
│── donations/ # Donation app (Stripe + PayFast)
│── tasks/ # Task manager app
│── todo_project/ # Django project settings
│── manage.py # Django project entry
│── requirements.txt # Dependencies
│── Dockerfile # Docker build file
│── docker-compose.yml # Docker orchestration
│── .gitignore # Ignored files
git clone https://github.com/Fartanity/todo_django.git
cd todo_djangopython -m venv venv
source venv/bin/activate # Linux/Mac
venv\Scripts\activate # Windowspip install -r requirements.txtMake sure PostgreSQL is running and create a database. Update your .env file accordingly.
python manage.py makemigrations
python manage.py migratepython manage.py createsuperuserpython manage.py runserverCreate a .env file in your project root:
# Django
SECRET_KEY=your_secret_key
DEBUG=True
# Database
DB_NAME=mydb
DB_USER=postgres
DB_PASSWORD=123
DB_HOST=localhost
DB_PORT=5432
# Stripe
STRIPE_PUBLIC_KEY=pk_test_xxxxx
STRIPE_SECRET_KEY=sk_test_xxxxx
# PayFast Sandbox
MERCHANT_ID=10000100
MERCHANT_KEY=46f0cd694581a
PAYFAST_URL=https://sandbox.payfast.co.za/eng/processThis project uses Stripe in test mode.
Use the following test card numbers:
- ✅ Success:
4242 4242 4242 4242 - ❌ Fail:
4000 0000 0000 0002 - Expiry: Any future date
- CVC: Any 3 digits
- Donations are handled in sandbox mode only.
- No real transactions.
- Default credentials:
merchant_id=10000100merchant_key=46f0cd694581a
- Test URL → PayFast Sandbox
To run everything with Docker:
docker-compose up --buildThis will:
- Start Django app
- Start PostgreSQL
- Map ports for local development
- Fork the repo
- Create a new branch (
feature/new-feature) - Commit changes (
git commit -m "Add new feature") - Push and create a PR
MIT License © 2025 Fartanity