PAF Welding
A full-stack marketing website and private content-management platform for PAF Welding — Ally Modifications & Welding, an aluminium fabrication business in Darwin, NT. A Next.js 16 public site backed by a Django REST API, with a JWT-secured admin control panel so staff can manage every piece of content themselves — no code changes, no developer needed.
Overview
PAF Welding is a full-stack digital platform built with Next.js 16, Django REST Framework, and PostgreSQL, combining a high-performance public website with a dedicated admin dashboard. The platform manages dynamic content including services, project galleries, clients, collaborators, process steps, FAQs, and contact information through a centralised content management system.
The public site uses server-side rendering with resilient API fallbacks, while the admin dashboard provides image cropping, drag-and-drop ordering, visibility controls, analytics, activity tracking, and global content search. The backend includes JWT authentication, role-based permissions, password recovery, OpenAPI documentation, and automated pytest coverage.
The platform is deployed on AWS using EC2, PostgreSQL, S3, CloudFront, and Nginx with SSL, delivering a secure, scalable, and production-ready architecture.
Public Marketing Site
- Animated hero banner, services, project gallery, process timeline, client & collaborator logos, a featured video, FAQ, and a contact section with an embedded map.
- Server-rendered content delivery eliminates unnecessary client-side loading states and provides a smoother initial experience.
- Graceful degradation — if the API is ever unreachable, almost every section falls back to real static content instead of breaking or going blank.
- A dedicated full gallery page for browsing past projects beyond the homepage preview.
Private Admin Control Panel
- JWT-authenticated dashboard with live content counts, Chart.js analytics, and a recent-activity feed.
- Full CRUD for hero images, gallery, clients, collaborators, process steps, and FAQs, all built on one reusable content-management system.
- Drag/zoom/rotate image cropping on upload, plus drag-to-reorder lists for anything that needs a specific display order.
- Section Visibility controls — show or hide entire homepage sections independent of whether they have content.
- Standalone image watermarking tool for branding photos before upload, with no separate app required.
- Global search across every content type, right from the admin topbar.
- User management with staff/superuser roles, email-based password resets, and a "remember me" session option.
Backend, API & Infrastructure
- Django REST Framework API secured with JWT access/refresh auth — rotation and blacklisting, 30-minute access tokens, 7-day refresh tokens.
- PostgreSQL database with a shared base model (UUID keys, visibility, ordering, timestamps) across every content type.
- OpenAPI schema with interactive Swagger and Redoc docs, plus a pytest test suite covering auth, password reset, and CRUD permission rules.
- Rate-limited login and password-reset endpoints, with role-based permissions — public read, staff write, superuser-only delete.
- Deployed on AWS — EC2 for the app, self-hosted PostgreSQL, S3 + CloudFront for image delivery, and Nginx with SSL in front.