Strev
Trainer management with sensitive data and asynchronous work

In one line
Strev is a web product for personal trainers. It brings together daily management, payments and video technique analysis without making the interface wait for the model.
The problem
Strev handles routines, progress and health data that need specific protection inside the application.
Video technique analysis takes longer than a normal request. The interface needs to respond while that work continues in the background.
How it works
Sensitive fields are encrypted separately
The rest of the document remains available for normal queries while health data stays protected inside the database.
Video goes to a queue
The request returns straight away and the analysis runs elsewhere. The model is Gemini and the job is judging exercise technique, not generating routines.
If Redis goes down, the API holds
The rate limiter degrades when the cache is unavailable and lets the main service keep responding.
Every download checks ownership
The application checks who requested the video before issuing a temporary download URL.
Maintenance starts in preview mode
Purge, migration and encryption tasks first show what they would change. Destructive execution requires an explicit command.
Where the bar sits
- Queued video analysis
- Field-level health data encryption
- Explicit destructive maintenance
React, Node, Express, MongoDB, Redis with BullMQ, Stripe and Gemini. Closed source.