π§ 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
developandmainare 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:
- Clone the repository.
- Set up Python virtual environment (e.g.,
python -m venv venv&source venv/bin/activate). - Install backend dependencies:
pip install -r requirements.txt. - Install frontend dependencies:
cd frontend && npm install(oryarn install). - Configure necessary secrets using a local
.envfile (based on.env.example).
- Running Locally:
- Backend:
uvicorn main:app --reload --host 0.0.0.0 --port 8000(adjust as needed). - Frontend:
npm start(oryarn start).
- Backend:
βοΈ Code Quality & Standardsβ
- Backend (Python): Linting enforced using
Flake8and auto-formatting withBlack. Type checking withMyPyis encouraged. - Frontend (TypeScript/React): Linting enforced using
ESLintand auto-formatting withPrettier.
β 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
JestandReact Testing Library. End-to-end testing (E2E) may be introduced later using tools likeCypressorPlaywright.