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