-
Notifications
You must be signed in to change notification settings - Fork 3
Home
- Project Overview
- Team Analysis
- Architecture Design
- Technical Stack Justification
- System Design
- Data Models
- Implementation Plan
- Risk Assessment
A web application for managing and monitoring urban trees and green areas, enabling both administrators and citizens to participate in urban forest management through an interactive mapping system.
- Interactive map visualization of green areas and trees
- Detailed tree information management
- User reporting system with photo uploads and GPS coordinates
- Health status tracking for trees
- Administrative dashboard for maintenance management
Frontend Team:
- Davide: ReactJS, TailwindCSS
- Omar: ReactJS, TailwindCSS
- Alice: JavaScript, ReactJS, Bootstrap
Backend Team:
- Rosa: Java, Spring, Databases
- Gianpiero: PHP, Laravel, Databases
- Michele: Full-stack (.NET, PHP, Angular, React, DB)
Support:
- Eduardo: Python, LaTeX, Markdown, C/C++
Based on the skills distribution, we recommend:
- Frontend Development: Davide (Lead), Omar, Alice
- Backend Development: Gianpiero (Lead), Rosa, Michele
- Documentation & Support: Eduardo
- Full-stack Support: Michele (bridge between teams)
graph TB
subgraph Client
A[React Frontend] --> B[State Management]
B --> C[API Service Layer]
end
subgraph Server
D[Laravel API] --> E[Controllers]
E --> F[Services]
F --> G[Models]
G --> H[(Database)]
end
C --> D
subgraph External Services
I[Map Service]
J[File Storage]
end
A --> I
D --> J
3.1 Frontend Architecture
graph TD
A[App Component] --> B[Map Container]
A --> C[Navigation]
A --> D[Auth Container]
B --> E[MapView]
B --> F[TreeMarkers]
B --> G[AreaPolygons]
D --> H[Login]
D --> I[Register]
subgraph Tree Management
J[TreeList]
K[TreeDetails]
L[TreeForm]
end
B --> J
J --> K
K --> L
React.js:
Team expertise (3 developers) Strong component reusability Large ecosystem for mapping libraries Excellent performance for interactive applications
TailwindCSS:
Team expertise (2 developers) Rapid UI development Built-in responsiveness Low learning curve for other team members
Laravel:
Strong team expertise (Gianpiero, Michele) Excellent for rapid API development Built-in authentication and authorization Strong ORM for database operations Good documentation and community support
MySQL:
Team familiarity Strong spatial data support Good integration with Laravel Excellent documentation
sequenceDiagram
participant U as User
participant F as Frontend
participant A as API
participant DB as Database
U->>F: View Map
F->>A: Request Areas
A->>DB: Query Areas
DB-->>A: Return Areas
A-->>F: Return JSON
F-->>U: Display Map
U->>F: Select Tree
F->>A: Get Tree Details
A->>DB: Query Tree
DB-->>A: Return Tree Data
A-->>F: Return JSON
F-->>U: Show Tree Info
erDiagram
GreenArea ||--o{ Tree : contains
Tree ||--o{ Report : has
User ||--o{ Report : creates
GreenArea {
int id
string name
text description
float latitude
float longitude
float area
timestamp created_at
timestamp updated_at
}
Tree {
int id
int green_area_id
string species
float height
string health_status
float latitude
float longitude
timestamp planted_at
timestamp created_at
timestamp updated_at
}
Report {
int id
int tree_id
int user_id
string description
string photo_url
string status
timestamp created_at
}
Setup development environment Database schema implementation Basic API endpoints Map integration
User authentication Tree management features Area management features
Reporting system Photo upload GPS integration
Testing Bug fixing Performance optimization Documentation
Map performance with large datasets
Mitigation: Implement pagination and lazy loading
Mobile device compatibility
Mitigation: Mobile-first design approach with TailwindCSS
Photo storage scalability
Mitigation: Use cloud storage service with CDN
Different backend experience levels
Mitigation: Pair programming and knowledge sharing sessions
Integration challenges between frontend and backend