A comprehensive web application for environmental site analysis providing vegetation, terrain, and climate data visualization.
site-analysis-project/
├── frontend/ # Next.js React frontend
├── backend/ # Django REST API backend
├── .github/ # GitHub Actions workflows
├── docs/ # Documentation
└── README.md # This file
- Node.js 18+
- Python 3.9+
- PostgreSQL with PostGIS extension
cd frontend
npm install
npm run devcd backend
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
pip install -r requirements.txt
python manage.py migrate
python manage.py runserver- 🗺️ Interactive Map Integration - Site location visualization
- 🌱 Vegetation Analysis - Automated vegetation and terrain data retrieval
- 🌤️ Climate Conditions - Temperature, humidity, and weather data
- 📊 Data Visualization - Interactive charts and reports
- 📱 Responsive Design - Mobile-first approach
- 🔐 Secure API - Django REST Framework with authentication
- Framework: Next.js 15.4.2
- UI Library: React 19.1.0
- Styling: Tailwind CSS 4.1.11
- State Management: React Hooks
- Build Tool: Webpack (via Next.js)
- Framework: Django 5.2.3
- API: Django REST Framework
- Database: PostgreSQL with PostGIS
- Geospatial: GeoDjango
- Environment: Python 3.9+
GET /api/site-analysis/- Retrieve site analysis dataPOST /api/climate-data/- Get climate informationPOST /api/vegetation-analysis/- Analyze vegetation dataGET /api/health/- Health check endpoint
# Frontend
cd frontend && npm test
# Backend
cd backend && python manage.py test# Frontend linting
cd frontend && npm run lint
# Backend formatting
cd backend && black . && isort .See individual README files in frontend/ and backend/ directories for deployment instructions.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
For questions and support, please open an issue on GitHub.