Project scope
Development of a Progressive Web App for managing workouts from scratch, including a Google OAuth authentication system, multi-step user profile setup, an exercise catalog, training plans with AI-powered generation, and a progress tracking module with reports. The implementation covered database design, server-side logic, integration with an external API for retrieving exercise data, and development of the user interface.
Technical challenges
Implementation of a complete authentication system from scratch - including registration, login, Google OAuth, and a JWT rotation mechanism with secure storage of refresh tokens in the database. Integration with external APIs for retrieving exercise data, combined with a Redis caching layer for both data and images, including handling unstable responses and transforming data into a consistent format. Implementation of AI-powered training plan generation (OpenAI), with structured response validation and error handling to ensure reliability. Design of a multi-step user setup flow (10 steps), with preserved form state between views and consistent validation on both the client and server.
Architecture and solutions
The project is organized as a monorepo, consisting of three main parts: the frontend (SPA), backend (REST API), and a shared validation layer. Extracting validation schemas into a separate module eliminates code duplication and ensures data consistency between the client and server. The backend follows a layered architecture, separating request handling, application logic, and database access. A centralized error handling system is used to simplify debugging and improve reliability. Additionally, a Redis caching layer was introduced for data from an external exercise API. This reduces the number of requests and ensures stable response times, regardless of the availability of external services.
Key decisions
- Implementation of a JWT-based authentication system with refresh token rotation and secure storage in the database, ensuring safe and long-lived user sessions.
- Integration with OpenAI combined with structured response validation to ensure correctness of generated training plans.
- Unification of validation logic and form state management across client and server, eliminating inconsistencies and data loss.
- Introduction of a Redis caching layer for data from an external exercise API, reducing request volume and stabilizing application performance.
Final outcome
Delivery of a complete, production-ready full-stack application: 6 database tables, 24 API endpoints, and over 54 React components. The project includes a full authentication system with Google OAuth, AI integration, and a CI/CD pipeline with unit, integration, and E2E tests. The entire application was designed and implemented independently.
End-to-end full-stack development
Scope: From database architecture to deployment of a Progressive Web App.
Backend
6 relational tables, 24 API endpoints, JWT and Google OAuth authentication, OpenAI integration, and unit and integration API tests.
Frontend
Over 54 React components built with a mobile-first approach, with unit and E2E tests.