Apple Concept - Fitness app, Google Cloud
Cloud based web admin to mobile app workout schedule planner
Apple Concept - Fitness app, Google Cloud
Cloud based web admin to mobile app workout schedule planner
![[1] Apple Concept - Fitness app, Google Cloud, Cloud based web admin to mobile app workout schedule planner](/projects/apple-concept/apple-k-mobile.app.jpg)
![[1] Apple Concept - Fitness app, Google Cloud, Cloud based web admin to mobile app workout schedule planner](/projects/apple-concept/apple-k-web.app__login.jpg)
![[2] Apple Concept - Fitness app, Google Cloud, Cloud based web admin to mobile app workout schedule planner](/projects/apple-concept/apple-k-web.app__calendar.jpg)
![[2] Apple Concept - Fitness app, Google Cloud, Cloud based web admin to mobile app workout schedule planner](/projects/apple-concept/apple-k-web.app_online-booking.jpg)
![[3] Apple Concept - Fitness app, Google Cloud, Cloud based web admin to mobile app workout schedule planner](/projects/apple-concept/apple-k-web.app__calendar_booking.jpg)
![[3] Apple Concept - Fitness app, Google Cloud, Cloud based web admin to mobile app workout schedule planner](/projects/apple-concept/apple-k-web.app__calculator.jpg)
![[4] Apple Concept - Fitness app, Google Cloud, Cloud based web admin to mobile app workout schedule planner](/projects/apple-concept/apple-k-web.app_settings.jpg)
![[4] Apple Concept - Fitness app, Google Cloud, Cloud based web admin to mobile app workout schedule planner](/projects/apple-concept/apple-k-web.app_push_message_list.jpg)
![[5] Apple Concept - Fitness app, Google Cloud, Cloud based web admin to mobile app workout schedule planner](/projects/apple-concept/apple-k-web.app__food_product_list.jpg)
![[5] Apple Concept - Fitness app, Google Cloud, Cloud based web admin to mobile app workout schedule planner](/projects/apple-concept/apple-k-web.app_vsc_stack.jpg)
![[6] Apple Concept - Fitness app, Google Cloud, Cloud based web admin to mobile app workout schedule planner](/projects/apple-concept/apple-k-web.changelog.jpg)
Project performed during employment, original branding and name has been altered from original. The project may have since updated.
Overview
A full-stack fitness platform combining a React Native mobile app with a cloud-based web admin portal. The project leverages Firebase Cloud for backend services, Angular for the admin portal, and Node.js for server functions. Developed for the European market, the system allows users to book workouts, manage schedules, and communicate with coaches, while admins oversee operations and notifications.
Features
- Mobile app for end-users with booking and chat functionality
- Web admin portal for managing users, schedules, and notifications
- Firebase Cloud backend with Node.js functions
- Team collaboration with dedicated roles: developers, QA, managers, and client liaison
- Scalable architecture and environment optimization
Tech Summary
Node.js · Firebase Cloud · Angular 9 · React Native · Cloud-based architecture
Outcome
Delivered a robust, maintainable, and scalable fitness platform that restored project stability, improved workflow efficiency, and provided a reliable end-user experience across mobile and web channels.
Technologies:
Typescript
TypeScript is a superset of JavaScript that adds static types to the language. Why use it? TypeScript improves code quality by enabling type checking, autocompletion, and error detection during development. Best practices include using strict typing and leveraging TypeScript's powerful interfaces and generics. TypeScript was first released in 2012.
Node.js
Node.js is a JavaScript runtime built on Chrome's V8 engine for building server-side applications. Why use it? Node.js offers fast performance and scalability, making it ideal for real-time applications and APIs. Best practices include using async/await, modularizing code, and using event-driven programming. Node.js was first released in 2009.
Express.js
Express.js is a fast and minimalist web application framework for Node.js. Why use it? Express simplifies routing, middleware, and server setup, making it ideal for building APIs and web applications. Best practices include using middleware for handling errors and request validation. Express.js was first released in 2010.
Eslint
ESLint is a static code analysis tool for identifying and fixing problems in JavaScript code. Why use it? ESLint helps ensure consistent code quality by enforcing coding standards and catching errors early. Best practices include setting up a shared configuration for teams and using auto-fix features. ESLint was first released in 2013.
Rx.js
RxJS (Reactive Extensions for JavaScript) is a library for reactive programming using Observables. Why use it? RxJS helps manage asynchronous data streams with powerful operators, making it easier to handle events, HTTP requests, and more. Best practices include using operators like map, mergeMap, and debounce for cleaner code. RxJS was first released in 2011.
Dt (definitely typed)
Definitely Typed is a repository of high-quality TypeScript type definitions for popular JavaScript libraries. Why use it? Definitely Typed enables TypeScript developers to use type definitions for JavaScript libraries, improving the developer experience. Best practices include adding type definitions for third-party libraries and using type-safe code. Definitely Typed was first launched in 2012.
Angular
Angular is a platform and framework for building single-page client applications using HTML and TypeScript. Why use it? Angular offers a robust set of features, including two-way data binding, routing, and modularity, making it ideal for building dynamic web applications. Best practices include using Angular CLI and adopting a modular structure. Angular was first released in 2010.
Google firebase/cloud
Google Firebase is a platform for building and managing web and mobile apps, while Google Cloud offers cloud computing services. Why use it? Firebase simplifies backend operations with tools like Firestore, authentication, and serverless functions. Google Cloud offers scalable infrastructure for web applications. Best practices include using Firebase’s Firestore for data storage and using Firebase Authentication for secure sign-ins. Firebase was first released in 2011, while Google Cloud launched in 2008.
Cloud tasks
Cloud Tasks is a Google Cloud service for managing the execution, dispatch, and delivery of a large number of distributed tasks. Why use it? Cloud Tasks enables you to build scalable applications that can queue and process tasks in a reliable, fault-tolerant way. Best practices include using Cloud Tasks for background processing and managing task concurrency. Cloud Tasks was first introduced in 2017.
Cloud functions
Cloud Functions is a serverless computing service from Google Cloud, where you can run code in response to events. Why use it? Cloud Functions allows developers to deploy scalable, event-driven code without managing infrastructure. Best practices include structuring functions for reusability and handling errors gracefully. Cloud Functions was first released in 2017.
Fcm
FCM (Firebase Cloud Messaging) is a service that enables real-time notifications across platforms like iOS, Android, and the web. Why use it? FCM helps you send push notifications to users in real time, improving engagement. Best practices include using topics and device groups to manage notifications and ensuring privacy with user consent. FCM was first introduced in 2016.
Crud
CRUD stands for Create, Read, Update, and Delete—the basic operations for managing data in applications. Why use it? CRUD operations are foundational to database management, allowing developers to create and manage records in a structured way. Best practices include using proper validation and error handling to ensure data integrity. CRUD has been a core concept since the early days of computing.
Husky
Husky is a tool for managing Git hooks, allowing you to run scripts before or after certain Git commands. Why use it? Husky helps enforce code quality by running linters or tests before committing code. Best practices include using Husky for pre-commit hooks to automatically format and lint code. Husky was first released in 2017.
Conventional commits
Conventional commits is a specification for writing consistent and meaningful commit messages. Why use it? Conventional commits help automate release management and provide a clear history of changes. Best practices include following the conventional commit format for all your Git messages. The specification was introduced in 2017.
Separation of concerns (soc)
Separation of concerns (SoC) is a design principle for separating a computer program into distinct sections. Why use it? SoC promotes modularity, making code easier to maintain and understand. Best practices include keeping business logic separate from UI code and handling different concerns in isolated modules. SoC has been widely adopted in software engineering since the 1970s.
Lean software development
Lean software development is a methodology focused on delivering value with minimal waste. Why use it? Lean helps improve efficiency, reduce cycle time, and deliver features based on customer needs. Best practices include focusing on delivering the highest-value features first and continuously improving processes. Lean software development originated in the early 2000s.
Functional programming
Functional programming is a programming paradigm that treats computation as the evaluation of mathematical functions. Why use it? Functional programming promotes immutability, higher-order functions, and declarative code, leading to cleaner, more predictable code. Best practices include avoiding side effects and using pure functions. Functional programming gained prominence in the 1950s.
Semantic versioning
Semantic versioning is a versioning scheme for software that conveys meaning about the changes. Why use it? Semantic versioning helps developers understand the impact of changes based on version numbers, aiding in compatibility management. Best practices include following semantic versioning rules strictly for releases. It was introduced in 2011.
Environments (.env)
Environment variables (often stored in .env files) are key-value pairs used to configure application settings. Why use it? They enable you to store sensitive data like API keys and configurations outside the codebase. Best practices include storing environment-specific configurations and using libraries like dotenv. Environment variables have been used for decades in software development.
Yarn
Yarn is a package manager for JavaScript, designed to be faster, more secure, and more reliable than npm. Why use it? Yarn improves performance by caching dependencies and supports deterministic builds. Best practices include using Yarn for managing dependencies in large-scale projects. Yarn was first released in 2016.
Devops azure pipeline
Azure DevOps Pipelines is a cloud service that automates the building, testing, and deployment of applications. Why use it? It integrates with Azure services and supports multi-platform environments, improving continuous integration and deployment. Best practices include automating testing and deployment pipelines for faster delivery. Azure Pipelines was introduced in 2018.
D2lang
D2Lang is a domain-specific language used for defining structured documents and diagrams. Why use it? D2Lang makes it easier to represent information visually, ideal for creating complex flowcharts or system designs. Best practices include using it for documentation and project visualization. D2Lang has been used since the early 2010s.
Architecture
Architecture in software refers to the high-level structure of a software system. Why use it? Good software architecture ensures scalability, maintainability, and performance. Best practices include using design patterns, separating concerns, and ensuring modularity. Software architecture has been a focus since the 1960s.