6c82fdee868e8d15c22c223f5b09a03d3fa39a36
continuous-integration/drone/push Build is failing
Co-authored-by: Cursor <cursoragent@cursor.com>
2026 Goals Tracker
An Angular Universal application to track your 2026 sport and gaming goals.
Features
- Sport Goals: Track biking (7,500km), running (2,500km), and swimming (250km) via Strava API
- Gaming Goals: Monitor progress toward Diamond rank in TFT/LoL, Champion in Rocket League, and Level 10 in Faceit
- Progress Visualization: Charts and progress bars showing your progress over time
- On-Track Analysis: See if you're on track to meet your goals by the end of 2026
Setup
- Install dependencies:
npm install
-
Configure environment variables in
src/environments/environment.ts:- Strava: Client ID, Client Secret, Redirect URI
- Riot Games: API Key, Region, Summoner Names
- Faceit: API Key, User ID
- Tracker.gg: API Key, Rocket League Platform/Username
-
Run development server:
npm start
- Build for production:
npm run build
- Run SSR server:
npm run serve:ssr
API Setup
Strava
- Go to https://www.strava.com/settings/api
- Create a new application
- Set redirect URI to
http://localhost:4200/auth/strava/callback - Copy Client ID and Client Secret
Riot Games
- Go to https://developer.riotgames.com/
- Create an account and get an API key
- Note your region (e.g.,
euw1,na1) - Provide your summoner names for LoL and TFT
Faceit
- Go to https://developers.faceit.com/
- Create an API key
- Provide your Faceit user ID
Tracker.gg
- Check https://tracker.gg/developers/docs for API access
- Get API key if available
- Provide your Rocket League platform and username
Project Structure
src/app/core/- Services, models, and interceptorssrc/app/features/- Feature components (dashboard, sport, gaming)src/app/shared/- Shared components and utilitiessrc/environments/- Environment configuration
Technologies
- Angular 19 with Universal SSR
- Tailwind CSS for styling
- Chart.js with ng2-charts for visualizations
- RxJS for reactive programming
- TypeScript with strict mode
Languages
TypeScript
95.8%
SCSS
3.4%
JavaScript
0.6%