Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
52 commits
Select commit Hold shift + click to select a range
5069df0
FIX TYPO in transcription_request_completed example message
SergioNR Dec 11, 2025
20a1b4d
FIX TYPO analysisPresignedUploadUrl --> analysisEntryPresignedUploadUrl
SergioNR Dec 11, 2025
637f80f
ADD transcriptionJob model to prisma schema
SergioNR Dec 12, 2025
56d9658
ADD npm package AWS transcribe
SergioNR Dec 12, 2025
7ec6f1f
RENAME updateAnalysisEntryInDb to markAnalysisEntryAsSubmitted for cl…
SergioNR Dec 12, 2025
6906c00
ADD transcription normalizer util
SergioNR Dec 12, 2025
34a2999
ADD functionality to get S3 objects from AWS S3
SergioNR Dec 12, 2025
c9cd86c
ADD cronjob to get completedTranscriptionJobs
SergioNR Dec 12, 2025
8d410ca
UPDATE prisma schema to include language code
SergioNR Dec 13, 2025
48cdbc2
ADD analysisService layer
SergioNR Dec 13, 2025
18e6982
ADD transcriptionModel - WIP
SergioNR Dec 13, 2025
c5002b8
ADD AWS Transcribe logic
SergioNR Dec 13, 2025
699cda8
REFACTOR analysisEntry controller to favor internal functions vs queues
SergioNR Dec 13, 2025
fc8df48
UPDATE swagger & REMOVE "success" attribute from PATCH analysisEntry
SergioNR Dec 13, 2025
a8101ef
ADD logic to update the transcriptJob after successful AWS transcribe…
SergioNR Dec 13, 2025
42c08ad
REMOVE queue-related transcription model functions
SergioNR Dec 20, 2025
6e9b646
REFACTOR transcription model from microservice to monolith
SergioNR Dec 20, 2025
31725c5
ADD no-plusplus rule exception to eslint
SergioNR Dec 20, 2025
b618c75
ADD no-await-in-loop rule exception in eslint
SergioNR Dec 20, 2025
fb3ce07
REMOVE lavinMQ implementation
SergioNR Dec 21, 2025
6a7666d
ADD error logging to completedTranscriptionJobScheduler CRON job
SergioNR Dec 21, 2025
5bb51e6
FIX typo in transcription job creation function
SergioNR Dec 21, 2025
3d5aa70
REMOVE mediaType attribute & remove requirement for analysisId
SergioNR Dec 21, 2025
610fa72
ADD logging to transcription request job
SergioNR Dec 22, 2025
8b75d68
ADD logic to handle completed transcription jobs
SergioNR Dec 22, 2025
765db4b
ADD no-restricted-syntax rule to eslint exceptions
SergioNR Dec 22, 2025
aedb52e
COMPLETE logic for requesting & processing transcription jobs
SergioNR Dec 22, 2025
8bf9d84
UPDATE db to include transcriptionJob table
SergioNR Dec 22, 2025
fdd9ef2
FIX typo in Transcribe.js
SergioNR Dec 22, 2025
e1030ca
ADD proper error logging to transcription function
SergioNR Dec 22, 2025
0e52887
REFACTOR transcription job retrieval logic for more clarity
SergioNR Dec 22, 2025
db31a5c
ADD prisma schema formatting
SergioNR Dec 22, 2025
cb120eb
Merge pull request #25 from UXcaptain/refactor-transcription-service-…
SergioNR Dec 22, 2025
d25395c
ADD config control for programatic transcription enablement
SergioNR Dec 23, 2025
d88d7de
Fix order of cron job scheduler starts
SergioNR Dec 25, 2025
13c9d59
REMOVE unused code relating to generating presignedurls
SergioNR Dec 25, 2025
19a87ca
ADD new minio S3 related variables
SergioNR Dec 25, 2025
af1cbc1
UPDATE s3 client config to minIO
SergioNR Dec 26, 2025
876e417
RENAME AWS_REGION env variable to S3_REGION
SergioNR Dec 26, 2025
a87212b
RENAME AWS_BUCKET env varibale to S3_BUCKET
SergioNR Dec 26, 2025
19d6f37
UPDATE s3 endpoint to be an env variable instead of hardcoded
SergioNR Dec 26, 2025
9ebe505
Merge pull request #26 from UXcaptain/refactor-aws-s3-to-minio
SergioNR Dec 26, 2025
8a5940a
HOTFIX: add missing minIO env variables to compose example
SergioNR Dec 26, 2025
c2b8b7e
ADD per-repo docker hub repo
SergioNR Dec 26, 2025
e0303ee
UPDATE docker build & push GH workflow to generate dated tags too
SergioNR Dec 26, 2025
7dea020
ADD temp GH build & push condition to test the workflow
SergioNR Dec 26, 2025
0e0f291
FIX docker metadata-action version
SergioNR Dec 26, 2025
0d58478
FIX sha not being generated
SergioNR Dec 26, 2025
d55e0ba
REPLACE sha with date
SergioNR Dec 26, 2025
c3a86fe
FIX date generation
SergioNR Dec 26, 2025
4369c03
REMOVE image generation on non-latest/next branches
SergioNR Dec 26, 2025
c670f91
Merge pull request #27 from UXcaptain/add-docker-releases
SergioNR Dec 26, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 7 additions & 3 deletions .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,11 @@ PORT=3000

AWS_SECRET_ACCESS_KEY=
AWS_ACCESS_KEY_ID=
AWS_REGION=
AWS_BUCKET=
S3_REGION=
S3_BUCKET=
S3_ENDPOINT=

LAVINMQ_HOST=
TRANSCRIPTION_ENABLED=

MINIO_ROOT_USER=
MINIO_ROOT_PASSWORD=
3 changes: 3 additions & 0 deletions .eslintrc.cjs
Original file line number Diff line number Diff line change
Expand Up @@ -44,5 +44,8 @@ module.exports = {
'import/no-relative-packages': 'off',
'no-case-declarations': 'off',
'max-len': 'off',
'no-plusplus': 'off',
'no-await-in-loop': 'off',
'no-restricted-syntax': 'off',
},
};
15 changes: 14 additions & 1 deletion .github/workflows/docker:build&push.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -24,11 +24,24 @@ jobs:
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
-
name: Set date
id: date
run: echo "date=$(date +'%Y-%m-%d')" >> "$GITHUB_OUTPUT"
-
name: Generate Docker metadata
id: meta
uses: docker/metadata-action@v5
with:
images: sergion14/uxcaptain-server
tags: |
type=raw,value=${{ github.ref_name }}
type=raw,value=${{ github.ref_name }}-${{ steps.date.outputs.date }}
-
name: Build and push
uses: docker/build-push-action@v6
with:
context: .
platforms: linux/amd64 #,linux/arm64 - Not building for ARM, since ubuntu server is just amd64
push: true
tags: sergion14/uxcaptain:server-${{ github.ref_name }}
tags: ${{ steps.meta.outputs.tags }}
7 changes: 2 additions & 5 deletions .kilocode/rules/memory-bank/tech.md
Original file line number Diff line number Diff line change
Expand Up @@ -89,8 +89,8 @@ PRISMA_POSTGRES_CONNECTION_STRING=postgresql://user:password@localhost:5432/uxca
# AWS S3
AWS_ACCESS_KEY_ID=your-access-key
AWS_SECRET_ACCESS_KEY=your-secret-key
AWS_REGION=eu-west-3
AWS_BUCKET=your-bucket-name
S3_REGION=eu-west-3
S3_BUCKET=your-bucket-name

# Stripe
STRIPE_API_KEY=sk_test_...
Expand All @@ -107,9 +107,6 @@ TELEGRAM_BOT_API_KEY=your-bot-token

# Frontend
FRONT_WEB_APP_ORIGIN_URL=http://localhost:5173

# Message Queue
LAVINMQ_HOST=localhost
```

### Local Development Commands
Expand Down
84 changes: 52 additions & 32 deletions compose.yaml
Original file line number Diff line number Diff line change
@@ -1,39 +1,59 @@
name: uxcaptain
services:
server:
container_name: server
build:
context: .
dockerfile: Dockerfile.dev
environment:
NODE_ENV: ${NODE_ENV}
DEPLOY_ENVIRONMENT: ${DEPLOY_ENVIRONMENT}
POSTHOG_API_KEY: ${POSTHOG_API_KEY}
SESSION_SECRET: ${SESSION_SECRET}
BREVO_API_KEY: ${BREVO_API_KEY}
PRISMA_POSTGRES_DIRECT_URL: ${PRISMA_POSTGRES_DIRECT_URL}
PRISMA_POSTGRES_CONNECTION_STRING: ${PRISMA_POSTGRES_CONNECTION_STRING}
TELEGRAM_BOT_API_KEY: ${TELEGRAM_BOT_API_KEY}
FRONT_WEB_APP_ORIGIN_URL: ${FRONT_WEB_APP_ORIGIN_URL}
STRIPE_API_KEY: ${STRIPE_API_KEY}
STRIPE_WEBHOOK_SECRET: ${STRIPE_WEBHOOK_SECRET}
PORT: ${PORT}
AWS_ACCESS_KEY_ID: ${AWS_ACCESS_KEY_ID}
AWS_SECRET_ACCESS_KEY: ${AWS_SECRET_ACCESS_KEY}
AWS_BUCKET: dev-analysis-entry-storage
AWS_REGION: ${AWS_REGION}
LAVINMQ_HOST: ${LAVINMQ_HOST}
# server:
# container_name: server
# build:
# context: .
# dockerfile: Dockerfile.dev
# environment:
# NODE_ENV: ${NODE_ENV}
# DEPLOY_ENVIRONMENT: ${DEPLOY_ENVIRONMENT}
# POSTHOG_API_KEY: ${POSTHOG_API_KEY}
# SESSION_SECRET: ${SESSION_SECRET}
# BREVO_API_KEY: ${BREVO_API_KEY}
# PRISMA_POSTGRES_DIRECT_URL: ${PRISMA_POSTGRES_DIRECT_URL}
# PRISMA_POSTGRES_CONNECTION_STRING: ${PRISMA_POSTGRES_CONNECTION_STRING}
# TELEGRAM_BOT_API_KEY: ${TELEGRAM_BOT_API_KEY}
# FRONT_WEB_APP_ORIGIN_URL: ${FRONT_WEB_APP_ORIGIN_URL}
# STRIPE_API_KEY: ${STRIPE_API_KEY}
# STRIPE_WEBHOOK_SECRET: ${STRIPE_WEBHOOK_SECRET}
# PORT: ${PORT}
# AWS_ACCESS_KEY_ID: ${AWS_ACCESS_KEY_ID}
# AWS_SECRET_ACCESS_KEY: ${AWS_SECRET_ACCESS_KEY}
# S3_BUCKET: dev-analysis-entry-storage
# S3_REGION: ${S3_REGION}
# S3_ENDPOINT: ${S3_ENDPOINT}
# MINIO_ROOT_USER=${MINIO_ROOT_USER}
# MINIO_ROOT_PASSWORD=${MINIO_ROOT_PASSWORD}

# ports:
# - 3000:3000
# develop:
# watch:
# - path: .
# action: sync+restart #* Synchronize code changes and restart the server
# target: /usr/src/app/
# depends_on: #* References the SERVICE name - NOT the container_name
# database:
# condition: service_started
# minio:
# condition: service_started
# networks:
# - uxcaptain-network

minio:
image: minio/minio:latest
container_name: minio
restart: on-failure
environment:
- MINIO_ROOT_USER=${MINIO_ROOT_USER}
- MINIO_ROOT_PASSWORD=${MINIO_ROOT_PASSWORD}
volumes:
- /Users/martaperezsanchez/repos/minio:/data
ports:
- 3000:3000
develop:
watch:
- path: .
action: sync+restart #* Synchronize code changes and restart the server
target: /usr/src/app/
depends_on: #* References the SERVICE name - NOT the container_name
database:
condition: service_started
- 9000:9000
- 9001:9001
command: server /data --console-address ":9001"
networks:
- uxcaptain-network

Expand Down
Loading