# kiktro/st.-stephen-s-school-birati-x-kiktro-labs architecture

> Architecture diagram of the GitHub repository kiktro/st.-stephen-s-school-birati-x-kiktro-labs, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-25). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/kiktro/st.-stephen-s-school-birati-x-kiktro-labs
- Repository: https://github.com/kiktro/st.-stephen-s-school-birati-x-kiktro-labs

## Overview

This is a robotics-AI community web app for students to create profiles, publish idea or project posts with media, and browse and discuss community work. The main flow is Google sign-in, profile completion, feed discovery, and post creation; post cards support reactions and threaded comments. Firebase provides authentication and Firestore, while media uploads pass through a server API to Cloudinary. The excerpts establish these principal links; unsampled component behavior and any additional integrations are not inferred.

Main entry points: [`src/pages/index.tsx`](https://github.com/kiktro/st.-stephen-s-school-birati-x-kiktro-labs/blob/main/src/pages/index.tsx) (Sign-in and routing), [`src/components/Feed.tsx`](https://github.com/kiktro/st.-stephen-s-school-birati-x-kiktro-labs/blob/main/src/components/Feed.tsx) (Community feed), [`src/components/CreatePostModal.tsx`](https://github.com/kiktro/st.-stephen-s-school-birati-x-kiktro-labs/blob/main/src/components/CreatePostModal.tsx) (Post creation), [`src/components/OnboardingModal.tsx`](https://github.com/kiktro/st.-stephen-s-school-birati-x-kiktro-labs/blob/main/src/components/OnboardingModal.tsx) (Profile onboarding)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_access["Access and profiles"]
  node_home["Sign-in and routing<br/>[index.tsx]"]
  node_onboarding["Profile onboarding"]
end

subgraph group_community["Community publishing"]
  node_create_post["Post creation"]
  node_upload_api["Media upload API<br/>[upload.ts]"]
end

subgraph group_engagement["Feed and discussion"]
  node_feed["Community feed<br/>[Feed.tsx]"]
  node_post_card["Post details and reactions<br/>[PostCard.tsx]"]
end

subgraph group_services["Platform services"]
  node_firebase_client["Firebase client setup<br/>[firebase.ts]"]
  node_firebase_auth["Firebase Authentication"]
  node_google["Google sign-in"]
  node_cloudinary["Cloudinary media service"]
  node_firestore[("Firestore data")]
end

node_visitor(("Community member"))

node_visitor -->|"opens app"| node_home
node_home -->|"uses services"| node_firebase_client
node_home -->|"tracks and signs in"| node_firebase_auth
node_firebase_auth -->|"authenticates with"| node_google
node_home -->|"reads profile"| node_firestore
node_home -->|"opens when needed"| node_onboarding
node_onboarding -->|"writes profile"| node_firestore
node_home -->|"renders after access"| node_feed
node_feed -->|"subscribes to posts"| node_firestore
node_feed -->|"opens composer"| node_create_post
node_create_post -->|"sends media"| node_upload_api
node_upload_api -->|"uploads media"| node_cloudinary
node_create_post -->|"creates post"| node_firestore
node_feed -->|"renders posts"| node_post_card
node_post_card -->|"reads comments; writes reactions"| node_firestore

click node_home "https://github.com/kiktro/st.-stephen-s-school-birati-x-kiktro-labs/blob/main/src/pages/index.tsx"
click node_onboarding "https://github.com/kiktro/st.-stephen-s-school-birati-x-kiktro-labs/blob/main/src/components/OnboardingModal.tsx"
click node_firebase_client "https://github.com/kiktro/st.-stephen-s-school-birati-x-kiktro-labs/blob/main/src/lib/firebase.ts"
click node_feed "https://github.com/kiktro/st.-stephen-s-school-birati-x-kiktro-labs/blob/main/src/components/Feed.tsx"
click node_create_post "https://github.com/kiktro/st.-stephen-s-school-birati-x-kiktro-labs/blob/main/src/components/CreatePostModal.tsx"
click node_post_card "https://github.com/kiktro/st.-stephen-s-school-birati-x-kiktro-labs/blob/main/src/components/PostCard.tsx"
click node_upload_api "https://github.com/kiktro/st.-stephen-s-school-birati-x-kiktro-labs/blob/main/src/pages/api/upload.ts"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_home,node_onboarding toneBlue
class node_create_post,node_upload_api toneAmber
class node_feed,node_post_card toneMint
class node_firebase_client,node_firebase_auth,node_google,node_cloudinary,node_firestore toneRose
class node_visitor toneIndigo
```

## Components

### Access and profiles

- [Sign-in and routing](https://github.com/kiktro/st.-stephen-s-school-birati-x-kiktro-labs/blob/main/src/pages/index.tsx): `src/pages/index.tsx`
- [Profile onboarding](https://github.com/kiktro/st.-stephen-s-school-birati-x-kiktro-labs/blob/main/src/components/OnboardingModal.tsx): `src/components/OnboardingModal.tsx`

### Community publishing

- [Post creation](https://github.com/kiktro/st.-stephen-s-school-birati-x-kiktro-labs/blob/main/src/components/CreatePostModal.tsx): `src/components/CreatePostModal.tsx`
- [Media upload API](https://github.com/kiktro/st.-stephen-s-school-birati-x-kiktro-labs/blob/main/src/pages/api/upload.ts): `src/pages/api/upload.ts`

### Feed and discussion

- [Community feed](https://github.com/kiktro/st.-stephen-s-school-birati-x-kiktro-labs/blob/main/src/components/Feed.tsx): `src/components/Feed.tsx`
- [Post details and reactions](https://github.com/kiktro/st.-stephen-s-school-birati-x-kiktro-labs/blob/main/src/components/PostCard.tsx): `src/components/PostCard.tsx`

### Platform services

- [Firebase client setup](https://github.com/kiktro/st.-stephen-s-school-birati-x-kiktro-labs/blob/main/src/lib/firebase.ts): `src/lib/firebase.ts`
- **Firebase Authentication**
- **Google sign-in**
- **Cloudinary media service**
- **Firestore data**

### Other components

- **Community member**

## Connections

- Community member → Sign-in and routing: opens app
- Sign-in and routing → Firebase client setup: uses services
- Sign-in and routing → Firebase Authentication: tracks and signs in
- Firebase Authentication → Google sign-in: authenticates with
- Sign-in and routing → Firestore data: reads profile
- Sign-in and routing → Profile onboarding: opens when needed
- Profile onboarding → Firestore data: writes profile
- Sign-in and routing → Community feed: renders after access
- Community feed → Firestore data: subscribes to posts
- Community feed → Post creation: opens composer
- Post creation → Media upload API: sends media
- Media upload API → Cloudinary media service: uploads media
- Post creation → Firestore data: creates post
- Community feed → Post details and reactions: renders posts
- Post details and reactions → Firestore data: reads comments; writes reactions
