feat(firebase.json): remove site property from api-harness hosting config feat(firebase): migrate launchpad to firebase hosting with auth This commit migrates the internal launchpad from Cloud Run with IAP to Firebase Hosting with Firebase Authentication. This change simplifies the deployment process and leverages Firebase's authentication capabilities for user access control. The following changes were made: - Updated the Makefile to remove Cloud Run deployment tasks and add Firebase Hosting deployment tasks. - Removed the Dockerfile and .gcloudignore files, as they are no longer needed for Firebase Hosting. - Updated the firebase.json file to configure Firebase Hosting for the launchpad. - Modified the launchpad's index.html to include Firebase Authentication logic. - Updated the iap-users.txt file to be used as a whitelist for Firebase Authentication. - Added a launchpad-dev target to run the launchpad locally using the Firebase Hosting emulator. - Removed the configure-iap-launchpad target, as IAP is no longer used. - Removed the site property from the api-harness hosting configuration in firebase.json, as it is not needed. The migration to Firebase Hosting provides the following benefits: - Simplified deployment process. - Firebase Authentication for user access control. - Improved scalability and reliability. - Reduced operational overhead.
Krow Workforce Management Platform
Krow is a comprehensive monorepo platform designed to streamline workforce management for events, hospitality, and large-scale enterprise operations. It connects clients, operators, vendors, and staff in a unified ecosystem, leveraging modern technology to optimize every step from procurement to payroll.
🚀 What's in this Monorepo?
-
/firebase/: This directory is the backbone of our backend infrastructure. It contains:
- Firestore Rules (
firestore.rules): Defines the security and access control logic for our NoSQL database, ensuring that users can only read and write data they are authorized to access. - Cloud Storage Rules (
storage.rules): Secures file uploads and downloads (like compliance documents and user avatars). - Data Connect (
dataconnect/): Houses the configuration for Firebase Data Connect, including the GraphQL schema, connectors, queries, and mutations that define our API layer.
- Firestore Rules (
-
/admin-web/: The central "mission control" for platform administrators. This React/Vite web application provides a secure interface for:
- User Management: Inviting new users (the very first client or operator) and managing roles/permissions across the entire ecosystem.
- Platform Analytics: Monitoring application usage, top pages, and user activity.
- System Logs: A log explorer for diagnosing issues and monitoring the platform's health.
-
/frontend-web/: The primary web application for core business operations, used by procurement managers, operators, and clients. This React/Vite application includes modules for:
- Vendor Management: Onboarding, compliance tracking, and performance scorecards.
- Event & Order Management: Creating and managing staffing orders.
- Invoicing & Payroll: Financial workflows for clients and staff.
- Dashboards: Role-specific dashboards for different user types.
-
/mobile-apps/: This directory is planned for our future mobile applications. It is structured to contain two distinct apps:
client-app: A dedicated application for clients to create orders, track events, and manage billing on the go.staff-app: An essential tool for workforce members to view schedules, clock in/out, manage their profiles, and track earnings.
-
/docs/: The single source of truth for all project documentation. This includes:
- Vision & Roadmaps: High-level strategy, product goals, and technical direction.
- Architecture: Detailed diagrams and explanations of the system architecture.
- API Specifications: Documentation for our GraphQL API.
- Development Guides: Conventions, setup instructions, and maintenance procedures.
-
/scripts/: A collection of automation scripts to streamline development and operational tasks. These scripts are primarily executed via the
Makefileand handle tasks like database patching, environment setup, and code generation. -
/secrets/: A Git-ignored directory for storing sensitive credentials, API keys, and environment-specific configuration files. This ensures that no confidential information is ever committed to the repository.
📚 Documentation Overview
This section provides a quick guide to the most important documentation files in this monorepo, ordered by logical reading flow:
- 00-vision.md: The "Why" behind the KROW platform, outlining our core objectives and guiding principles.
- 01-product-functional-roadmap.md: The "What" we are building, from a user-facing features perspective.
- 02-architecture-overview.md: Visual diagrams explaining the technical architecture of our web and mobile applications.
- 03-backend-api-specification.md: The detailed technical specification for our custom backend API.
- 04-strategy-technical-roadmap.md: Our strategic plan for building the platform, outlining phases and milestones.
- 05-project-plan.md: A detailed breakdown of tasks by milestone, ready for GitHub Issues.
- 06-maintenance-guide.md: The operational manual for integrating updates from the Base44 visual builder.
- 07-reference-base44-api-export.md: The raw API documentation exported from Base44, used as a reference.
- 08-reference-base44-prompts.md: A collection of standardized prompts for interacting with the Base44 AI.
🤝 Contributing
New to the KROW team? Start here to set up your environment and understand our development practices: CONTRIBUTING.md
🛠️ Tech Stack
- Frontend: React with Vite (JavaScript)
- Styling: Tailwind CSS
- Backend: Firebase (Firestore, Cloud Storage, Authentication, Data Connect)
- Mobile: Flutter (planned)
📦 Getting Started
-
Clone the repository:
git clone https://github.com/Oloodi/krow.git cd krow -
Install dependencies for the main web app:
cd frontend-web npm install -
Run the development server:
npm run dev
The main application will be available at http://localhost:5173. For other packages, refer to their respective README.md files.