import { Project } from "@/types/project"; export const PROJECT_REGISTRY: Project[] = [ { slug: "ratoong", category: "web", title: "Ratoong", subtitle: "High-Performance Ski & Travel Engine", role: "Full-Stack Engineer", duration: "2020 — 2022", // Adjusted based on your "long time ago" comment stack: ["Angular", "Firebase", "GCP Cloud Functions", "TypeScript"], metrics: ["< 200ms Search Latency", "10,000+ Active Data Points", "Fully Responsive Design"], description: "A comprehensive ski resort planning and rating platform featuring real-time weather integration and complex multi-parameter search filters.", engineeringStory: ` Building Ratoong was an exercise in managing **High-Density Data** within a reactive frontend ecosystem. The core challenge was transforming thousands of resort data points—ranging from piste lengths to real-time weather—into a lightning-fast, searchable interface. #### Data Orchestration & Efficiency Leveraging a **Document-Based Architecture (Firestore)**, I designed a schema that balanced read efficiency with real-time updates. To handle complex filtering (altitude, lift types, pricing) without taxing the client-side, I utilized **GCP Cloud Functions** as a middleware layer to process and normalize data from various 3rd-party APIs, including Google Maps and Weather services. #### Modern Angular & Responsive UI The frontend was built using modern **Angular**, focusing on a component-based architecture that ensured high performance across both desktop and mobile. I implemented a custom state management flow to handle resort ratings and trip planning, ensuring that user interactions were instantly reflected in the UI while syncing seamlessly with **Firebase Authentication**. #### Lessons in Scalability Working with a **Backend-as-a-Service (BaaS)** model taught me the importance of cost-effective query design and the power of event-driven triggers. I was responsible for maintaining the development, staging, and production environments, ensuring a clean CI/CD flow from localhost to the Firebase cloud. #### Security & Data Governance A key architectural pillar was the implementation of a robust **Security Rules** layer within Firebase. By moving the logic from the client to the database level, we ensured that resort metadata was globally searchable while sensitive user planning data remained strictly isolated. This event-driven security model allowed us to scale the user base without increasing the risk surface area of the platform. `, images: [ "/projects/ratoong/ratoong-1.jpg", "/projects/ratoong/ratoong-2.jpg", "/projects/ratoong/ratoong-3.jpg", "/projects/ratoong/ratoong-4.jpg", "/projects/ratoong/ratoong-5.jpg" ], liveUrl: "https://ratoong.com", isPrivate: false, mermaidChart: ` graph TD subgraph Client_Side [Frontend] A[Angular Web App]:::traffic end subgraph Firebase_GCP [Cloud Infrastructure] B[Firebase Auth]:::node C[Firestore DB]:::node D[Cloud Functions]:::node E[Partner API Proxy]:::node end %% Move APIs to a vertical stack to save horizontal width %% subgraph External [Third Party] F[Weather API]:::traffic G[Google Maps API]:::traffic H[Affiliate Partners]:::traffic end A <-->|Real-time Sync| C A -->|Auth Request| B A -->|Triggers| D D -->|Fetch & Normalize| F D -->|Geocoding| G D -->|Affiliate Logic| H E -->|Read Data| C %% Styles %% classDef traffic fill:#2563eb,stroke:#3b82f6,color:#fff classDef node fill:#16a34a,stroke:#4285F4,color:#fff `, }, { slug: "datasaur", category: "web", title: "Datasaur", subtitle: "Personal R&D Pipeline", role: "Architect & Creator", duration: "2025 — Present", stack: ["Python", "FastAPI", "Next.js", "Redis"], metrics: ["Sub-50ms Latency", "Automated ETL", "Self-Hosted"], description: "A data science pipeline tool built to explore high-speed processing and real-time visualization of large datasets.", images: ["/datasaur-1.jpg"], repoUrl: "https://git.georgew.dev/georgew/datasaur", liveUrl: "https://ratoong.com", engineeringStory: "In this high-stakes medical environment, I implemented a custom audit logging system that ensured every state change was immutable...", isPrivate: true, }, { slug: "ayla", category: "web", title: "Ayla", subtitle: "Regulatory-Compliant Data Platform", role: "Lead Full-Stack Engineer", duration: "2022 — 2024", stack: ["Node.js", "PostgreSQL", "React", "Docker"], metrics: ["99.9% Uptime", "Zero-Data-Loss Integrity", "ISO 27001 Ready"], description: "Architected a high-integrity platform designed to meet rigid regulatory requirements.", engineeringStory: "In this high-stakes medical environment, I implemented a custom audit logging system that ensured every state change was immutable...", images: ["/ratoong-hero.jpg", "/ratoong-dashboard.jpg"], liveUrl: "https://ratoong.com", isPrivate: true, }, { slug: "flutter-1", category: "mobile", title: "Flutter-1", subtitle: "Personal R&D Pipeline", role: "Architect & Creator", duration: "2025 — Present", stack: ["Python", "FastAPI", "Next.js", "Redis"], metrics: ["Sub-50ms Latency", "Automated ETL", "Self-Hosted"], description: "A data science pipeline tool built to explore high-speed processing and real-time visualization of large datasets.", images: ["/datasaur-1.jpg"], repoUrl: "https://git.georgew.dev/georgew/datasaur", liveUrl: "https://ratoong.com", engineeringStory: "In this high-stakes medical environment, I implemented a custom audit logging system that ensured every state change was immutable...", isPrivate: true, }, { slug: "flutter-2", category: "mobile", title: "Flutter-1", subtitle: "Personal R&D Pipeline", role: "Architect & Creator", duration: "2025 — Present", stack: ["Python", "FastAPI", "Next.js", "Redis"], metrics: ["Sub-50ms Latency", "Automated ETL", "Self-Hosted"], description: "A data science pipeline tool built to explore high-speed processing and real-time visualization of large datasets.", images: ["/datasaur-1.jpg"], repoUrl: "https://git.georgew.dev/georgew/datasaur", liveUrl: "https://ratoong.com", engineeringStory: "In this high-stakes medical environment, I implemented a custom audit logging system that ensured every state change was immutable...", isPrivate: true, }, ];