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

 
 
 

Contributors