Files
2026-02-13 19:58:25 +01:00

94 lines
2.0 KiB
Markdown

# 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
1. Install dependencies:
```bash
npm install
```
2. 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
3. Run development server:
```bash
npm start
```
4. Build for production:
```bash
npm run build
```
5. Run SSR server:
```bash
npm run serve:ssr
```
## API Setup
### Strava
1. Go to https://www.strava.com/settings/api
2. Create a new application
3. Set redirect URI to `http://localhost:4200/auth/strava/callback`
4. Copy Client ID and Client Secret
### Riot Games
1. Go to https://developer.riotgames.com/
2. Create an account and get an API key
3. Note your region (e.g., `euw1`, `na1`)
4. Provide your summoner names for LoL and TFT
### Faceit
1. Go to https://developers.faceit.com/
2. Create an API key
3. Provide your Faceit user ID
### Tracker.gg
1. Check https://tracker.gg/developers/docs for API access
2. Get API key if available
3. Provide your Rocket League platform and username
## Project Structure
- `src/app/core/` - Services, models, and interceptors
- `src/app/features/` - Feature components (dashboard, sport, gaming)
- `src/app/shared/` - Shared components and utilities
- `src/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