feat(Makefile): add IAP configuration management for both launchpad and admin feat(Makefile): refactor IAP user management commands for reusability feat(Makefile): add Dockerfile for admin-web to containerize the application feat(Makefile): remove App Engine deployment targets for admin-web This commit introduces significant changes to the deployment process for the admin console, migrating it from App Engine to Cloud Run and integrating Identity-Aware Proxy (IAP) for enhanced security. The key changes include: - **Admin Console Deployment to Cloud Run:** The admin console is now deployed to Cloud Run using a Dockerfile that builds and containerizes the application. This provides a more scalable and flexible deployment environment. - **IAP Integration:** IAP is now enabled for the admin console, restricting access to authorized users only. This enhances the security of the application and protects sensitive data. - **IAP Configuration Management:** New commands have been added to the Makefile to manage IAP configuration for both the launchpad and admin console. These commands allow for easy addition and removal of IAP users. - **Refactored IAP User Management Commands:** The IAP user management commands have been refactored to be more reusable and generic. This allows for easier management of IAP users for both the launchpad and admin console. - **Removal of App Engine Deployment Targets:** The App Engine deployment targets for the admin console have been removed, as the application is now deployed to Cloud Run. These changes provide a more secure, scalable, and maintainable deployment process for the admin console.
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.