Skip to content

hackapet-project/petsync_v1

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

14 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

🐾 RefuPet - Animal Shelter Management Platform

License: AGPL v3 React Django Docker TypeScript

Professional-grade open-source platform for animal shelter management

πŸš€ Quick Start β€’ πŸ“– Documentation β€’ πŸ› οΈ Development β€’ 🀝 Contributing


🌟 Overview

RefuPet is a comprehensive, open-source web platform designed specifically for animal shelter management. Built with modern technologies and professional development practices, it provides a secure, scalable, and user-friendly solution for shelter operations.

πŸ—οΈ Architecture

  • 🌐 Frontend: React 19 + Vite + TypeScript
  • βš™οΈ Backend: Django 4+ + REST Framework + PostgreSQL
  • 🐳 Infrastructure: Docker + Docker Compose
  • πŸš€ Deployment: Coolify-compatible with automated CI/CD

✨ Key Features

πŸ”§ Production Ready

  • Secure by design with environment-based configuration
  • Docker containerization with multi-stage optimized builds
  • PostgreSQL database with automated migrations
  • Static file handling and optimized asset serving
  • Health checks and proper logging

πŸ‘¨β€πŸ’» Developer Experience

  • One-command setup - make setup && make dev
  • Hot reload development with instant feedback
  • Automated code quality - pre-commit hooks, linting, formatting
  • Comprehensive testing - frontend (Vitest) + backend (Django)
  • VSCode integration - debugging, tasks, and extensions
  • API documentation - Interactive Swagger UI

πŸ›‘οΈ Security & Quality

  • AGPL v3 licensed ensuring open-source compliance
  • No hardcoded secrets - secure development practices
  • Automated vulnerability scanning with dependency updates
  • Code quality enforcement with Black, Prettier, ESLint
  • Type safety with TypeScript and strict linting

πŸš€ Quick Start

Prerequisites

  • Docker Desktop - Download here
  • Node.js 18+ - Download here (for local frontend development)
  • Make - Usually pre-installed on macOS/Linux

Installation

# 1. Clone the repository
git clone https://github.com/hackapet-project/refupet-web.git
cd refupet-web

# 2. Setup environment and dependencies
make setup

# 3. Start the development environment
make dev

Access Points

Once the environment is running:

Service URL Description
🌐 Frontend http://localhost:5173 React development server
βš™οΈ Backend http://localhost:8000 Django API server
πŸ‘€ Admin Panel http://localhost:8000/admin Django administration
πŸ“– API Docs http://localhost:8000/api/docs/ Interactive Swagger UI

Initial Setup

# Create database and apply migrations
make migrate

# Create development users (generates random passwords)
make seed

# View logs
make logs

πŸ› οΈ Development Setup

Available Commands

# Development
make dev         # Start full development environment
make dev-bg      # Start in background
make stop        # Stop all containers
make logs        # View application logs

# Code Quality
make format      # Format all code (Black + Prettier)
make lint        # Run all linters
make test        # Run all tests

# Database
make migrate     # Apply database migrations
make seed        # Create development users
make shell       # Django shell
make superuser   # Create admin user

# Utilities
make clean       # Clean containers and volumes
make help        # Show all available commands

Project Structure

refupet-web/
β”œβ”€β”€ πŸ“ backend/              # Django REST API
β”‚   β”œβ”€β”€ 🐍 refupet_project/  # Django settings and configuration
β”‚   β”œβ”€β”€ πŸ§ͺ tests/            # Backend test suite
β”‚   β”œβ”€β”€ πŸ“Š fixtures/         # Development data
β”‚   └── πŸ”§ manage.py         # Django management
β”œβ”€β”€ πŸ“ frontend/             # React TypeScript frontend
β”‚   β”œβ”€β”€ βš›οΈ  src/             # React components and logic
β”‚   β”œβ”€β”€ πŸ§ͺ src/test/         # Frontend test utilities
β”‚   └── βš™οΈ  vite.config.js   # Vite configuration
β”œβ”€β”€ πŸ“ docker/               # Docker configuration
β”œβ”€β”€ πŸ“ docs/                 # Documentation
β”œβ”€β”€ πŸ”§ Makefile              # Development automation
└── πŸ“‹ CONTRIBUTING.md       # Development guidelines

πŸ“– Documentation

For Developers

For Users

  • API Documentation - Available at /api/docs/ when running
  • Admin Interface - Django admin at /admin/

πŸ§ͺ Testing & Quality

Running Tests

# All tests
make test

# Frontend only
make test-frontend

# Backend only
make test-backend

Code Quality

# Format code
make format

# Check linting
make lint

# Type checking
make type-check

The project uses:

  • Python: Black, isort, flake8 for formatting and linting
  • JavaScript/TypeScript: Prettier, ESLint for code quality
  • Pre-commit hooks to enforce quality standards
  • Automated testing with Vitest and Django test framework

πŸš€ Deployment

Production Deployment

The application is Coolify-ready with optimized Docker configurations:

# Build production images
make build

# Production environment variables needed:
# - DJANGO_SECRET_KEY (generate new)
# - DATABASE_URL (PostgreSQL connection)
# - DJANGO_ALLOWED_HOSTS (your domain)
# - DJANGO_DEBUG=False
# - DJANGO_ENV=production

Environment Configuration

Copy .env.example to .env and configure:

# Production example
DJANGO_SECRET_KEY=your-super-secure-secret-key
DJANGO_DEBUG=False
DJANGO_ALLOWED_HOSTS=yourdomain.com,www.yourdomain.com
DATABASE_URL=postgresql://user:password@host:port/database

πŸ‘₯ Team & Contributors

Core Team

πŸ† Lead Developer & Architect Diego RejΓ³n - Project leadership, API development, database design

πŸ”§ Infrastructure & DevOps Ignacio Delgado - Docker infrastructure, CI/CD, deployment

🎨 Frontend Development nadecc - React development, UI/UX, frontend architecture

πŸ“š Documentation & Project Management Nacho Loyola - Documentation, contributor guidelines

πŸ€– Developer Experience Claude - Automation, tooling, security enhancements


🀝 Contributing

We welcome contributions! Please see our Contributing Guidelines for details.

Quick Contributing Guide

  1. Fork the repository
  2. Create a feature branch
  3. Run make setup to get started
  4. Make your changes following our code standards
  5. Test with make test and make lint
  6. Submit a pull request

πŸ“„ License

Licensed under the GNU Affero General Public License v3.0 (AGPL-3.0).

This ensures that all modifications and usage in networks (e.g., as a web app) remain open-source. See LICENSE for full details.


πŸ“ž Support & Community

Getting Help

Troubleshooting

Docker not starting?

# Check if Docker is running
make check-docker

# Start Docker Desktop and try again
make dev

Environment issues?

# Reset everything
make clean
make setup
make dev

Made with ❀️ by the RefuPet Team

[⭐ Star us on GitHub](https://github.com/hackapet-project/refupet-web β€’ 🌍 Visit hackapet.org

About

(ARCHIVE, ONLY FOR DEMO PURPOSES) This version uses the old tech stack.

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 5