What to notice
Summary
This is the GitHub repository page for 'animal-shelter-webapp', an open-source Django web application developed by HighMarck17. It serves as a neutral, reusable template for animal shelters to manage and showcase adoptable dogs online. The project features a custom design system (mobile-first, no Bootstrap), a REST API, multi-layer anti-spam protections, and requires only editing two configuration files (shelter_config.py and .env) to rebrand the site for any shelter.
Target audience
The primary target audience is animal shelters and rescue organizations, especially those with limited technical resources, who need a professional, production-ready website to manage and showcase adoptable dogs. The secondary audience is Django developers looking for a well-architected, open-source template to use as a starting point for shelter or similar listing-based projects.
Key features
- Dog Management & Showcase: Advanced filtering (status, size, sex, compatibility), detail pages with image galleries, story, and similar dog suggestions. Automatic caching for performance.
- Protected Contact Form: Multi-layer anti-spam (rate limiting, reCAPTCHA v2, honeypot, spam-word filter, disposable email blocking) with automatic staff notifications.
- Admin Panel: Manage dogs, breeds, FAQs, and contact messages with an inline image gallery and auto-generated slugs.
- REST API: Full API endpoints for dogs, breeds, contacts, and FAQs with OpenAPI, Swagger UI, and ReDoc documentation.
- Production-Ready Architecture: Environment separation (dev/test/prod), Docker support, PostgreSQL, Redis caching, Cloudinary media storage, and Nginx reverse proxy.
- Internationalization: i18n support with Italian as the default source language and an English example catalog provided.
- Custom Design System: Warm palette, mobile-first approach, built without Bootstrap.
- Developer Experience (DX): Simple two-file customization, comprehensive testing setup (pytest + coverage), detailed deployment guide, and troubleshooting table.
Pain points
- Anti-Spam Overhead: Shelters often struggle with spam through contact forms. This project directly addresses multiple spam vectors (rate limiting, CAPTCHA, honeypots, content filtering).
- Lack of Technical Expertise: Many animal shelters lack developers. This project solves this by offering a template that only requires editing two configuration files and no application code changes.
- Custom Website Costs: Building a shelter website from scratch is expensive. This open-source template provides a production-ready, free alternative.
- Maintaining an Up-to-Date Dog List: Manually updating a dog list is cumbersome. The admin panel and REST API make management and integration with other platforms seamless.
- Deployment Complexity: Deploying a web app can be complex. The project simplifies this with Docker, a detailed DEPLOY.md, and environment-specific settings.
Usage instructions
To use this product, you fork the repository, clone it to your environment, and customize just two files: config/shelter_config.py (for your shelter's name, contacts, and public data) and the .env file (for secrets like database credentials, API keys, and email configuration). After that, you run standard Django commands (migrate, createsuperuser, runserver) or use Docker with docker compose up. The platform then provides a full-featured website with dog listings, a contact form, FAQ section, and an admin panel.