Spaces:
Runtime error
Runtime error
metadata
title: TreeTrack
colorFrom: green
colorTo: blue
sdk: docker
app_port: 7860
pinned: false
license: mit
short_description: Professional tree mapping and forestry management platform
TreeTrack - Professional Field Research Platform
A secure, robust, and high-performance web application for mapping, tracking, and managing urban forest data using FastAPI with comprehensive security implementations and modern modular architecture.
Current Version: 3.0.0 - Supabase Edition
Key Features
- Modular JavaScript Architecture: Clean separation of concerns with 6 specialized modules
- Supabase Cloud Integration: PostgreSQL database with real-time capabilities
- 146 Pre-loaded Tree Species: Comprehensive database from Tezpur research team
- Smart Auto-completion: Real-time species suggestions with debounced search
- Multi-language Support: Local Assamese names, scientific names, common names
- Enhanced Button Design: Professional UX with clear visual hierarchy
- Interactive Mapping: Beautiful tree-shaped pins with 3D design
- Multi-role Authentication: Admin, researcher, and viewer roles
- Professional UI: Emoji-free interface suitable for research environments
Core Features
- Interactive Tree Mapping: Add, edit, and visualize trees on an interactive map
- Intelligent Species Identification: Auto-suggestions from master species database
- Comprehensive Data Management: Track species, health status, dimensions, and more
- Advanced Security: Input validation, SQL injection prevention, XSS protection
- Performance Optimized: Database indexing, caching, and efficient queries
- RESTful API: Full API documentation with FastAPI's automatic OpenAPI docs
- Responsive Design: Works on desktop and mobile devices
Usage
- View Trees: Browse the interactive map to see all registered trees
- Add New Trees: Click on the map to add new tree entries with detailed information
- Edit Trees: Update existing tree data including health status and measurements
- API Access: Use the
/docsendpoint for full API documentation - Statistics: View comprehensive statistics about your urban forest
API Endpoints
Core Tree Management
GET /- Main application interfaceGET /docs- Interactive API documentationGET /api/trees- List all trees with filteringPOST /api/trees- Add new treeGET /api/trees/{id}- Get specific tree detailsPUT /api/trees/{id}- Update tree informationDELETE /api/trees/{id}- Remove treeGET /api/stats- Get forest statisticsGET /health- Application health check
Auto-Suggestion System
GET /api/tree-suggestions- Get species suggestions based on queryGET /api/tree-codes- Get all available tree reference codesGET /api/master-database/status- Master database health and statistics
Data Management
GET /download/database- Download SQLite database fileGET /download/csv- Download CSV export of tree dataGET /download/status- Download database status report
Security Features
- Input validation and sanitization
- SQL injection prevention
- XSS protection with Content Security Policy
- CORS configuration
- Secure file path validation
- Comprehensive error handling
Technical Stack
- Backend: FastAPI 3.0.0 (Python 3.11+)
- Database: Supabase PostgreSQL (cloud-hosted)
- Storage: Supabase Storage for file uploads
- Frontend: Modular JavaScript with ES6 modules
- Architecture: 6 specialized modules (Auth, API, UI, Form, AutoComplete, Media)
- Mapping: Interactive maps with custom tree-shaped pins
- Validation: Pydantic 2.10.0+ with custom validators
- Security: Multi-layer protection with role-based access
- Performance: Debounced search, Promise.all(), optimized DOM queries
- Deployment: Docker on Hugging Face Spaces
Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
Developer workflow notes
Automatic cache busting on commit/push
This repo includes a small utility and Git hooks to ensure browsers always fetch the latest static assets:
- scripts/bump_cache.py updates service worker, HTML inline version/timestamp, and script tag query params.
- .githooks/pre-commit runs the bump (timestamp-only) and stages changed files.
- .githooks/pre-push runs a final bump and, if necessary, auto-commits the change before pushing.
Setup (one-time):
- git config core.hooksPath .githooks
Usage:
- Just commit and push normally. The hooks will bump the timestamp each time.
- To bump semantic version too: python scripts/bump_cache.py --bump patch (or minor/major). The hooks will stage the changes for your next commit.
Note for Windows developers:
- Git for Windows ships with a POSIX shell that executes hooks. Ensure Python is available on PATH.