Husky Adoption is a demo website where people can discover, meet, and adopt pets online. You can create an account, browse through profiles, send adoption requests, donate to support the cause, and manage everything in your dashboard.
- Browse adoptable pets with detailed profiles, search filters, and application flows.
- Application scheduling and management endpoints built with Flask blueprints.
- Donation flow with recurring options, recent donations feed, and thank-you page.
- User account management including registration, login, profile changes, and dashboard views.
- Auto-generated API documentation powered by Flasgger.
Installation Steps: (click to expand)
- Python 3.10 or newer
- Node.js 18 or newer (npm included)
- Docker Desktop (optional, for containerised runs)
python -m pip install -r requirements.txt
python -m backend.mainThe API listens on http://http://127.0.0.1:5000/.
With the virtual environment active and the API stopped:
python backend/initialize_data.pyThis resets the SQLite database in backend/instance/database.db and loads sample users, pets, donations, and adoption records.
cd frontend
npm install
npm startThe development server runs on http://localhost:3000 and proxies API requests to http://127.0.0.1:5000
The repository includes production-oriented Dockerfiles and a Compose definition that ties both services together:
docker compose up --buildhusky-backendserves the Flask API on port5000and persists the SQLite file via a bind mount tobackend/instance.husky-frontendbuilds the React app, serves it through Nginx on port3000, and proxies/api/requests to the backend container.
To refresh demo content inside the running containers:
docker compose run --rm api python initialize_data.pyBackend tests are implemented with Pytest:
pytest tests








