{"id":24692809,"url":"https://github.com/flaviohsprado/endurofortri-api","last_synced_at":"2025-12-30T21:44:18.464Z","repository":{"id":261803261,"uuid":"884075537","full_name":"flaviohsprado/endurofortri-api","owner":"flaviohsprado","description":"A secure Node.js API server with Strava integration, JWT authentication, and Redis caching. Built with PostgreSQL (Neon DB) for data persistence and configured for cloud deployments.","archived":false,"fork":false,"pushed_at":"2024-12-19T20:51:52.000Z","size":403,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-26T20:17:16.298Z","etag":null,"topics":["api","cloud-computing","jwt-authentication","neon-db","nodejs","postgresql","redis","strava-api"],"latest_commit_sha":null,"homepage":"https://endurofortri-api.onrender.com","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/flaviohsprado.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-11-06T05:03:30.000Z","updated_at":"2025-01-21T09:56:22.000Z","dependencies_parsed_at":"2024-12-18T00:19:28.151Z","dependency_job_id":"74eeadd1-2521-43e3-b542-54ebfdf3c2e1","html_url":"https://github.com/flaviohsprado/endurofortri-api","commit_stats":null,"previous_names":["flaviohsprado/endurofortri-api"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flaviohsprado%2Fendurofortri-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flaviohsprado%2Fendurofortri-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flaviohsprado%2Fendurofortri-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flaviohsprado%2Fendurofortri-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/flaviohsprado","download_url":"https://codeload.github.com/flaviohsprado/endurofortri-api/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244894315,"owners_count":20527678,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","cloud-computing","jwt-authentication","neon-db","nodejs","postgresql","redis","strava-api"],"created_at":"2025-01-26T20:17:19.997Z","updated_at":"2025-12-30T21:44:18.414Z","avatar_url":"https://github.com/flaviohsprado.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# EnduroForTri API\n\nA RESTful API built with NestJS for managing athlete activities and Strava integration.\n\n## Features\n\n- Athlete Management\n- Activity Tracking\n- Strava Integration\n- OAuth2 Authentication\n\n## API Endpoints\n\n### Athletes\n\n```\nGET    /athlete/:id      - Get athlete by ID\nPOST   /athlete         - Create new athlete\nPUT    /athlete/:id     - Update athlete\nDELETE /athlete/:id     - Delete athlete\n```\n\n### Activities\n\n```\nGET    /activities/:athleteId  - Get activities by athlete ID\nPOST   /activities/:athleteId  - Create new activity\nPUT    /activities/:id         - Update activity\nDELETE /activities/:id         - Delete activity\n```\n\n### Strava Integration\n\nThe API integrates with Strava's API v3 for:\n- Fetching athlete activities\n- OAuth2 authentication\n- Token management\n\n## Technical Stack\n\n- NestJS\n- TypeScript\n- Swagger/OpenAPI\n- Axios for HTTP requests\n- Clean Architecture with Use Cases\n\n## Project Structure\n\n```\nsrc/\n├── modules/\n│   ├── activities/       # Activities module\n│   │   ├── usecases/    # Activity-related use cases\n│   │   └── ...\n│   ├── athlete/         # Athlete module\n│   │   ├── usecases/    # Athlete-related use cases\n│   │   └── ...\n│   └── usecase-proxy    # Use case proxy implementation\n├── services/\n│   └── strava/          # Strava integration service\n└── common/              # Common decorators and utilities\n```\n\n## Environment Variables\n\n```\nSTRAVA_CLIENT_ID=your_strava_client_id\nSTRAVA_CLIENT_SECRET=your_strava_client_secret\n```\n\n## Getting Started\n\n1. Clone the repository\n2. Install dependencies:\n   ```bash\n   npm install\n   ```\n3. Set up environment variables\n4. Run the development server:\n   ```bash\n   npm run start:dev\n   ```\n\n## API Documentation\n\nAPI documentation is available through Swagger UI at `/api` endpoint when running the server.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflaviohsprado%2Fendurofortri-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fflaviohsprado%2Fendurofortri-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflaviohsprado%2Fendurofortri-api/lists"}