Skip to main content

🌐 System Overview

This document provides a high-level overview of the technical architecture for Inner Journey, a platform dedicated to self-development and personal growth. It outlines how our components work together to deliver a seamless, engaging, and scalable experience for users. Let’s dive into the engine that powers your journey! 🌟

🏗️ Architecture Overview

Inner Journey is a modern web application designed to support user growth through a combination of a React/TypeScript frontend, a Python-based FastAPI backend, and Google Firestore for scalable data storage. The entire system is deployed on Google Cloud infrastructure for reliability and global accessibility.

Key Components

  • Frontend: A responsive and interactive user interface built with React, TypeScript, and Chakra UI for a modern, accessible design. It is hosted on Firebase Hosting to ensure fast, global delivery.
  • Backend: A robust API developed with FastAPI (Python) that handles business logic, data processing, and integrations with external services. It is deployed on Google Cloud Run for scalability and serverless management.
  • Database 🗄️: Google Firestore, a NoSQL document database, provides flexible and scalable storage for user profiles, reflections, activations, and other application data.
  • External Services:
    • Firebase Authentication: Manages secure user sign-up, login, and session handling with robust identity management.
    • Google Gemini: Powers AI-driven features, delivering personalized insights and guidance to enhance the self-development experience.
    • Sinch Voice API: Enables phone number verification for secure user onboarding.
  • Infrastructure:
    • Google Cloud Run: Hosts the backend API in Docker containers, providing a scalable and serverless environment.
    • Firebase Hosting: Delivers the frontend application globally with low latency.
    • Google Cloud Secret Manager: Securely stores sensitive data such as API keys, database credentials, and other configuration details.
## 🛠️ Technology Stack

Our technology stack is carefully selected to ensure a robust, scalable, and maintainable platform that supports Inner Journey’s mission of self-development:

- **Frontend**: React, TypeScript, Chakra UI (for a modern, accessible UI)
- **Backend**: FastAPI (Python 3.11+) for efficient API development
- **Database**: Google Firestore (NoSQL) for flexible, scalable data storage
- **Authentication**: Firebase Authentication for secure user management
- **AI / Machine Learning**: Google Gemini API for personalized insights
- **Cloud Platform**: Google Cloud Platform (GCP) for hosting and infrastructure
- **Deployment**:
- Google Cloud Run for the backend (serverless container hosting)
- Firebase Hosting for the frontend (global static asset delivery)
- **Infrastructure as Code (IaC)**: Terraform (optional, for managing cloud resources programmatically)
- **Secrets Management**: Google Cloud Secret Manager for secure storage of sensitive data

## 🚀 Deployment Process

Inner Journey leverages automated CI/CD pipelines to ensure efficient, reliable, and consistent deployments for both the frontend and backend:

- **Frontend**:
1. Code is pushed to the `main` branch in the Git repository.
2. A CI/CD pipeline (e.g., GitHub Actions or Google Cloud Build) is triggered automatically.
3. The pipeline builds the React application, generating static assets.
4. The static assets are deployed to Firebase Hosting for global distribution.

- **Backend**:
1. Code is pushed to the `main` branch in the Git repository.
2. A CI/CD pipeline is triggered automatically.
3. The pipeline builds a Docker container image for the FastAPI application.
4. The image is pushed to Google Artifact Registry (or Docker Hub, if configured).
5. The new container image is deployed to Google Cloud Run, ensuring a seamless update.

This automated deployment process enables rapid updates, minimizes downtime, and ensures a reliable experience for users focused on self-development and personal growth, supported by AI-driven insights and community features.