Grobaufwand - rbotteon/sf-sac GitHub Wiki
Skitourenguru.ch Rewrite Estimation (with Risks)
Total Effort: 230 PD
Team Assumption: 1x Senior Full-Stack, 1x Frontend, 0.5x DevOps
Frontend (75 PD)
Component |
PD |
Risk |
Mitigation Strategy |
Next.js Base Setup |
10 |
Low |
Standard React/Next.js patterns |
Mapbox GL JS Integration |
25 |
High |
Pre-purchase Mapbox credits; test WebGL early |
Tour List/Detail Pages |
15 |
Medium |
Prototype SSR/ISR data flows first |
Weather Widgets |
10 |
Medium |
Mock MeteoSwiss API before integration |
UI Components (Tailwind) |
15 |
Low |
Reuse open-source Alpine.js components |
Backend (60 PD)
Component |
PD |
Risk |
Mitigation Strategy |
Node.js API Core |
15 |
Low |
Express.js boilerplate |
PostGIS Queries |
20 |
High |
Contract geo-data expert for 5 PD |
MeteoSwiss API (GraphQL) |
10 |
High |
Verify rate limits; cache aggressively |
SLF Avalanche API |
10 |
Medium |
Legal review of data usage terms |
Redis Caching |
5 |
Low |
Standard Redis deployment |
DevOps (25 PD)
Component |
PD |
Risk |
Mitigation Strategy |
Cloudflare + Vercel |
5 |
Low |
Follow Vercel's Next.js deployment guides |
CI/CD Pipelines |
10 |
Medium |
Test with staging env before production |
Monitoring (Sentry) |
5 |
Low |
Use pre-built Next.js error tracking |
SwissTopo Tile Proxy |
5 |
High |
Legal review of tile redistribution rights |
Testing & QA (30 PD)
Component |
PD |
Risk |
Mitigation Strategy |
Unit/Integration Tests |
15 |
Medium |
Prioritize critical path tests first |
E2E (Cypress) |
10 |
Low |
Reuse Mapbox testing best practices |
Performance Tuning |
5 |
High |
Budget for 3rd-party load testing tools |
Contingency (20 PD)
- High-risk buffer: 15 PD (PostGIS/MeteoSwiss)
- Unknown unknowns: 5 PD
Risk Legend
Level |
Description |
High |
Could blow up timeline by 30%+ |
Medium |
May require 10-20% extra effort |
Low |
Predictable implementation |
Total Timeline:
- 1 developer → ~11.5 months
- 3 developers → ~4 months