Initializes Strava API integration

Sets up the basic structure for integrating with the Strava API.
This includes:
- Adds .devcontainer configuration for consistent development environment.
- Configures eslint and prettier for code quality and formatting.
- Implements secure credential management using Infisical.
- Creates basic Strava client and request classes with authentication handling.
- Sets up basic express routes to return data from the Strava API

This commit lays the foundation for future enhancements such as
fetching and displaying activity data.

Removes nodemon configuration

Removes the nodemon.json file as its configuration is no longer needed.

fix: remove clg
This commit is contained in:
Louis
2025-10-23 16:40:27 +02:00
parent d418f094cd
commit bb00f74d17
14 changed files with 5863 additions and 0 deletions

View File

@@ -0,0 +1,8 @@
node_modules
npm-debug.log
dist
.git
.gitignore
README.md
.env
.env.local

35
.devcontainer/Dockerfile Normal file
View File

@@ -0,0 +1,35 @@
FROM node:22-bullseye
# Install additional tools
RUN apt-get update && apt-get install -y \
git \
curl \
wget \
vim \
nano \
build-essential \
python3 \
&& rm -rf /var/lib/apt/lists/*
# Create a non-root user 'node' if not exists (usually already in official node image)
# Set up environment
ENV NODE_ENV=development
# Install global npm packages
RUN npm install -g \
@types/node \
typescript \
ts-node \
nodemon
WORKDIR /workspace
# Copy package files
COPY package*.json ./
# Install dependencies
RUN npm install
EXPOSE 3000 5000
CMD ["npm", "run", "dev"]

View File

@@ -0,0 +1,45 @@
{
"name": "TypeScript Node.js",
"dockerFile": "Dockerfile",
"context": "..",
"remoteUser": "node",
"features": {
"ghcr.io/devcontainers/features/git:1": {},
"ghcr.io/devcontainers/features/github-cli:1": {}
},
"customizations": {
"vscode": {
"extensions": [
"ms-vscode.vscode-typescript-next",
"ESLint.eslint",
"Prettier.prettier-vscode",
"ms-vscode.makefile-tools",
"ms-vscode-remote.remote-containers"
],
"settings": {
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.formatOnSave": true,
"[typescript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[json]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"typescript.tsdk": "node_modules/typescript/lib",
"typescript.enablePromptUseWorkspaceTsdk": true,
"typescript.format.enable": true
}
}
},
"forwardPorts": [
3000,
5000
],
"postCreateCommand": "npm install",
"mounts": [
"source=${localEnv:HOME}${localEnv:USERPROFILE}/.ssh,target=/home/node/.ssh,type=bind,consistency=cached"
],
"remoteEnv": {
"NODE_ENV": "development"
}
}