Skip to main content

🧭 Development Strategy

This document outlines our blueprint for building Inner Journey. It's a plan focused on creating a robust, scalable, and user-centric platform designed for personal growth and self-development. Let's explore the steps involved.


🎯 What We’re Aiming For​

Our primary goal is to launch a user-friendly Inner Journey quickly, starting with a Minimum Viable Product (MVP) and iterating based on feedback. This strategy aligns with our broader goals described in the Introduction and Vision.


🧬 Our Guiding Principles​

Here’s what drives our development work:

  • 🎯 User First: Features delivering tangible value and enhancing the user's self-development journey are prioritized.
  • 🧱 Modular & Scalable: Built with clean, independent components designed for growth and maintainability.
  • πŸ”’ Secure by Design: Security integrated from the start, covering authentication, data handling, and privacy.
  • βš™οΈ Automation Focus: Leveraging CI/CD pipelines and other tools to minimize manual effort and maximize development velocity.
  • 🌱 MVP Mindset: Launching core functionality early to gather feedback, learn quickly, and scale effectively.

βœ… What We’re Building First (MVP)​

Our Minimum Viable Product focuses on delivering the core experience:

  • πŸš€ Onboarding: A seamless sign-up and initial user experience to get started easily.
  • 🧘 Core Exercises: Key activities demonstrating the app's value proposition for self-reflection and growth.
  • 🎨 Clean Interface: A simple, intuitive, and adaptable user interface (UI) optimized for clarity.
  • 🀝 Basic Coaching Support: Foundational guidance and feedback integrated into the user journey.
  • πŸ›‘οΈ Security & Compliance: Robust data protection and readiness for standards like GDPR.

πŸ’» Tech We’re Using​

Our technology stack is chosen for speed, scalability, and developer experience.

🐍 Backend​

  • πŸš€ FastAPI (Python 3.10): For rapid development of efficient APIs with automatic interactive documentation (Swagger UI).
  • πŸ“„ Firestore (Google Cloud): Flexible, scalable NoSQL database perfect for evolving application data structures.
  • ☁️ Cloud Run (Google Cloud): Serverless container hosting providing automatic scaling based on demand.
  • πŸ”‘ Secret Manager (Google Cloud): Secure storage and management of API keys, database credentials, and other secrets.
  • πŸ“¦ Docker: Containerization ensures consistent development, testing, and deployment environments.

βš›οΈ Frontend​

  • ✨ React + TypeScript: Building a robust, maintainable, and type-safe user interface with reusable components.
  • 🎨 Chakra UI: A component library facilitating consistent, accessible, and themeable design implementation.
  • πŸ” Firebase Authentication: Secure and easy-to-integrate user login (starting with email/password, planning phone auth).
  • 🌐 Firebase Hosting: Fast, reliable global content delivery network (CDN) for the Progressive Web App (PWA).
  • πŸ”„ State Management: Primarily using React Context API for global state, potentially adopting Redux Toolkit if complexity grows significantly.

πŸ€– AI & Future Integrations​

  • 🧠 Gemini (Google AI): Powering intelligent insights, personalized exercises, content generation, and potentially analysis of user inputs (with consent).
  • πŸ’¬ Future Considerations: Exploring Dialogflow (Google Cloud) for advanced conversational interactions and ElevenLabs for high-quality text-to-speech capabilities.

βš™οΈ How We Work​

Our development process emphasizes collaboration, quality, and efficiency.

πŸ™ Git & GitHub Workflow​

  • Repository: Primary codebase located at joelkvarnsmyr/InnerJourney.
  • Branching Strategy:
    • main: Stable, production-ready code.
    • develop: Integration branch for upcoming release features.
    • feature/*: Individual branches for new features or bug fixes.
    • Merges into develop and main are handled via Pull Requests (PRs) with required reviews.
  • Commit Conventions: Adhering to Conventional Commits standard (e.g., feat: Add user profile API, fix: Correct login validation).

πŸ–₯️ Local Development Environment​

  • Prerequisites: Python 3.10+, Git, Docker, Google Cloud SDK (gcloud), Node.js (LTS version) & npm/yarn.
  • Setup:
    1. Clone the repository.
    2. Set up Python virtual environment (e.g., python -m venv venv & source venv/bin/activate).
    3. Install backend dependencies: pip install -r requirements.txt.
    4. Install frontend dependencies: cd frontend && npm install (or yarn install).
    5. Configure necessary secrets using a local .env file (based on .env.example).
  • Running Locally:
    • Backend: uvicorn main:app --reload --host 0.0.0.0 --port 8000 (adjust as needed).
    • Frontend: npm start (or yarn start).

✍️ Code Quality & Standards​

  • Backend (Python): Linting enforced using Flake8 and auto-formatting with Black. Type checking with MyPy is encouraged.
  • Frontend (TypeScript/React): Linting enforced using ESLint and auto-formatting with Prettier.

βœ… Testing Strategy​

  • Backend: Unit and integration tests for API endpoints and core logic using Pytest. Aiming for high test coverage.
  • Frontend: Unit tests for components and utility functions using Jest and React Testing Library. End-to-end testing (E2E) may be introduced later using tools like Cypress or Playwright.