- Notifications
You must be signed in to change notification settings - Fork0
topcoder-platform/reports-api-v6
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
This repository houses the reports API for all Topcoder and Topgear reports on the Topcoder platform. The reports are pulled directly from live data, not a data warehouse, so they should be up-to-date when they are generated and the response is returned.
All reports will return JSON data with the expected fields for the individual report
Currently, an M2M token is required to pull any report, and each report has its own scope associated with it that must be applied to the M2M token client ID
Each report will be a separate SQL query, potentially with a few parameters (like a start and an end date, for example). The individual SQL queries can be found in thesql folder and should be able to be run against thetopcoder-services RDS database in dev or prod, with minimal changes to replace the parameters.
- Framework: NestJS
- Language: TypeScript
- Database: PostgreSQL
- ORM: Prisma
- Package Manager: pnpm
- Node.js (v22 or later recommended)
- pnpm
git clone<repository-url>cd reports-api-v6
This project uses pnpm as the package manager. Ensure you have it installed, then run:
pnpm install
Create a.env file in the root of the project. You can copy the example structure below. The default values are configured to work with the local Docker setup.
# .env# PostgreSQL Database URL for Prisma# This is used by Prisma to connect to your local PostgreSQL instance.DATABASE_URL="postgresql://user:password@localhost:5432/lookups?schema=public"# ---------------------------------------------------# JWT Authentication Secrets# These are used by tc-core-library-js for validating JWTs.# ---------------------------------------------------# The secret key used to sign and verify JWTs.AUTH_SECRET="mysecret"# A JSON array string of valid token issuers.VALID_ISSUERS='["https://topcoder-dev.auth0.com/","https://api.topcoder.com"]'## Running the Application### Development ModeTo run the applicationin development mode with hot-reloading:```bashpnpm run dev
The application will be available athttp://localhost:3000.
The following read-only endpoints are available without authentication to support the Community Statistics page.
GET /v6/reports/statistics/srm/top-rated— Highest rated SRM data (static JSON)GET /v6/reports/statistics/srm/country-ratings— SRM country ratings (static JSON)GET /v6/reports/statistics/srm/competitions-count— SRM number of competitions (static JSON)GET /v6/reports/statistics/mm/top-rated— Highest rated Marathon Match data (static JSON)GET /v6/reports/statistics/mm/country-ratings— Marathon Match country ratings (static JSON)GET /v6/reports/statistics/mm/top-10-finishes— Marathon Match Top 10 finishes (static JSON)GET /v6/reports/statistics/mm/competitions-count— Marathon Match number of competitions (static JSON)
Static datasets are stored underdata/statistics/srm anddata/statistics/mm and are packaged into the ECS image in the Dockerfile.
About
Topcoder / Topgear reporting
Resources
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Releases
Packages0
Uh oh!
There was an error while loading.Please reload this page.
Contributors4
Uh oh!
There was an error while loading.Please reload this page.