Commit Graph

46 Commits

Author SHA1 Message Date
zouantchaw
6502a2f983 Add quality gates and baseline tests for web/mobile 2026-02-12 23:21:25 -05:00
Achintha Isuru
964b872ee1 Add clean-branches make target and docs
Document dataconnect environment options and add branch-cleaning tooling. Adds PROTECTED_BRANCHES.md listing protected branches (main, dev, demo/**). Updates Makefile help text to show ENV defaults for dataconnect targets, new bootstrap/backup/validation commands, and a tip about default ENV. Adds a new clean-branches .PHONY target in makefiles/tools.mk that validates the current branch, reads PROTECTED_BRANCHES.md, prompts for confirmation, switches to dev if necessary, and deletes non-protected local branches while reporting a summary.
2026-02-06 13:40:28 -05:00
Achintha Isuru
bbaf4684e4 Update Makefile 2026-02-04 15:27:07 -05:00
dhinesh-m24
e2729a3668 Merge branch 'dev' into authentication-web 2026-02-04 11:58:21 +05:30
dhinesh-m24
d3378e4822 feat: Update web makefile 2026-02-04 11:56:19 +05:30
Achintha Isuru
11ad6c47d1 Add mobile hot reload and restart commands to Makefile; update NEXT_SPRINT_TASKS with clarification point 2026-02-03 12:25:46 -05:00
Achintha Isuru
c2cb0bd82a Enhance Makefile help output with improved formatting and additional commands; update NEXT_SPRINT_TASKS with new improvement points; fix location fallback logic in CoverageRepositoryImpl 2026-02-03 12:15:57 -05:00
Achintha Isuru
ecc7aece6e chore: Refactor mobile build scripts to use Melos
Updated Makefile, mobile.mk, and melos.yaml to centralize mobile app build, start, and code generation commands using Melos scripts. Added info and install-melos commands for easier onboarding and workspace setup. Documentation updated to reflect staff app naming and new command structure.
2026-01-22 10:55:46 -05:00
bwnyasse
984da528fb feat: add prototype syncing for local dev and AI context
This commit introduces a new feature to synchronize prototypes
from an external repository for local development and to provide
context for AI tools.

- Added `make sync-prototypes` target to Makefile to build and
 copy prototypes from the adjacent 'client-krow-poc' repository.
- Added `.geminiignore` entries to prevent Gemini from ignoring
 prototypes, ensuring they are available for context.
- Added `.gitignore` entries to ignore generated prototype files,
 except for the `.keep` files, to keep the directories.
- Added `04-sync-prototypes.md` documentation to explain how to
 sync prototypes.
- Removed empty `internal/prototypes/.keep` file.
2026-01-10 23:04:56 -05:00
bwnyasse
b8d156b35a feat(Makefile): restructure Makefile into modular files for better organization and maintainability
feat(Makefile): introduce common.mk for shared variables and environment configuration
feat(Makefile): create web.mk for web frontend-related tasks
feat(Makefile): create launchpad.mk for internal launchpad deployment tasks
feat(Makefile): create mobile.mk for mobile app development tasks
feat(Makefile): create dataconnect.mk for Data Connect management tasks
feat(Makefile): create tools.mk for development tools like git hooks
feat(Makefile): remove admin-web specific tasks and files as the admin console is no longer actively maintained
feat(Makefile): update help command to reflect the new modular structure and available commands
feat(Makefile): remove base44 export workflow as it is no longer relevant
feat(Makefile): remove IAP configuration as it is no longer used
feat(Makefile): remove harness-related tasks as they are no longer relevant

The Makefile has been significantly refactored to improve organization and maintainability. The changes include:

- Modularization: The monolithic Makefile has been split into smaller, more manageable files, each responsible for a specific area of the project (web, launchpad, mobile, dataconnect, tools).
- Common Configuration: Shared variables and environment configuration are now centralized in common.mk.
- Removal of Unused Tasks: Tasks related to the admin console, base44 export workflow, IAP configuration, and API test harness have been removed as they are no longer relevant.
- Updated Help Command: The help command has been updated to reflect the new modular structure and available commands.
- Improved Readability: The modular structure makes the Makefile easier to read and understand.
- Maintainability: The modular structure makes it easier to maintain and update the Makefile.
- Scalability: The modular structure makes it easier to add new tasks and features to the Makefile.
2026-01-10 20:59:18 -05:00
bwnyasse
a5a4eae255 feat(launchpad): implement secure email hashing for access control
This commit introduces a more secure method for verifying user
access to the internal launchpad by hashing email addresses.

- Replaces the plain-text email list with SHA-256 hashes.
- Adds a script to generate these hashes from `iap-users.txt`.
- Updates the launchpad HTML to hash the input email and compare
 it against the `allowed-hashes.json` file.
- Updates Makefile to generate hashes before deploy and serve.
- Adds .keep file for krow_client folder.
2026-01-10 11:48:54 -05:00
bwnyasse
ba938be7ad feat(Makefile): replace Cloud Run deployment with Firebase Hosting for launchpad
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.
2026-01-10 11:18:48 -05:00
José Salazar
7d3185708c adding instrucction for web free? 2025-12-18 19:11:38 -05:00
Boris-Wilfried
d78862dff9 Merge pull request #172 from Oloodi/156-infra-initialize-krow_staff-flutter-app
feat: [infra] Initialize krow_staff Flutter App
2025-12-03 10:51:13 -05:00
Achintha Isuru
850441ca64 feat: Add a comprehensive development plan for new mobile app features and infrastructure, updating issue creation tooling. 2025-12-02 23:49:17 -05:00
José Salazar
21beea94fc adding new files and folder to save in makefale integrate-export 2025-12-02 14:12:12 -05:00
José Salazar
19ceece8f2 ignore dataconnect in front and harness-dev deploy schema 2025-11-25 17:14:32 -05:00
José Salazar
65a1efa8dc adding instructions to preserver dataconnect-genertaed and lib 2025-11-21 10:59:24 -05:00
Boris-Wilfried
4562fa62db Merge pull request #62 from Oloodi/61-developer-guide-integrating-base44-frontend-exports
new version frontend-webpage
2025-11-21 09:34:36 -05:00
José Salazar
de1cc96ba0 new version frontend-webpage 2025-11-21 09:13:05 -05:00
José Salazar
45f14261ac addind echo to help and final space in tier 2025-11-20 12:13:46 -05:00
José Salazar
0a03f7c6df adding some validation for gcloud beta and instance exits 2025-11-20 12:10:42 -05:00
José Salazar
062adbfc7c new commands to deploy dataconnect to front 2025-11-20 11:55:19 -05:00
Oloodi Admin
32bf683091 Merge pull request #55 from Oloodi/26-mobile-cicd-configure-codemagic-firebase-app-distribution---a-production-ready-multi-environment-mobile-pipeline
feat: fix the deployment issues in the mobile client-application
2025-11-20 09:16:15 -05:00
Achintha Isuru
7f27d94e61 fix: update project configurations for staging environment and Firebase dependencies 2025-11-19 12:20:54 -05:00
Boris-Wilfried
3f4edbfe09 Merge pull request #52 from Oloodi/26-mobile-cicd-configure-codemagic-firebase-app-distribution---a-production-ready-multi-environment-mobile-pipeline
Mobile cicd configure codemagic firebase app distribution   a production ready multi environment mobile pipeline
2025-11-19 10:58:01 -05:00
Achintha Isuru
ecf2685136 fix: update mobile app development commands for clarity and consistency 2025-11-18 23:31:14 -05:00
Achintha Isuru
5f17b001d4 fix: update mobile app build commands to include optional BUILD_TYPE parameter 2025-11-18 23:09:30 -05:00
Achintha Isuru
7aa84bc536 Remove outdated architecture and API documentation for mobile apps
- Deleted api_map.mermaid files for both client and staff apps to remove obsolete API mappings.
- Removed architecture.md files for both client and staff apps to eliminate outdated architectural overviews.
- Deleted backend_architecture.mermaid files for both client and staff apps to clean up backend architecture diagrams.
- Removed overview.mermaid files for both client and staff apps to streamline application flow documentation.
- Deleted use-case flowchart.mermaid and use_case_flows.mermaid files for both client and staff apps to remove redundant use case diagrams.
2025-11-18 23:02:01 -05:00
bwnyasse
f7c2027065 feat: add internal API test harness
This commit introduces a new internal API test harness built with React and Vite. This harness provides a user interface for testing various API endpoints, including authentication, core integrations, and entity-related APIs.

The harness includes the following features:

- Firebase authentication integration for secure API testing.
- A modular design with separate components for different API categories.
- Form-based input for API parameters, allowing users to easily configure requests.
- JSON-based response display for clear and readable API results.
- Error handling and display for debugging purposes.
- A navigation system for easy access to different API endpoints.
- Environment-specific configuration for testing in different environments.

This harness will enable developers to quickly and efficiently test API endpoints, ensuring the quality and reliability of the KROW backend services.

The following files were added:

- Makefile: Added targets for installing, developing, building, and deploying the API test harness.
- firebase.json: Added hosting configurations for the API test harness in development and staging environments.
- firebase/internal-launchpad/index.html: Updated with accordion styles and navigation for diagrams and documents.
- internal-api-harness/.env.example: Example environment variables for the API test harness.
- internal-api-harness/.gitignore: Git ignore file for the API test harness.
- internal-api-harness/README.md: README file for the API test harness.
- internal-api-harness/components.json: Configuration file for shadcn-ui components.
- internal-api-harness/eslint.config.js: ESLint configuration file.
- internal-api-harness/index.html: Main HTML file for the API test harness.
- internal-api-harness/jsconfig.json: JSConfig file for the API test harness.
- internal-api-harness/package.json: Package file for the API test harness.
- internal-api-harness/postcss.config.js: PostCSS configuration file.
- internal-api-harness/public/logo.svg: Krow logo.
- internal-api-harness/public/vite.svg: Vite logo.
- internal-api-harness/src/App.css: CSS file for the App component.
- internal-api-harness/src/App.jsx: Main App component.
- internal-api-harness/src/api/client.js: API client for making requests to the backend.
- internal-api-harness/src/api/krowSDK.js: SDK for interacting with Krow APIs.
- internal-api-harness/src/assets/react.svg: React logo.
- internal-api-harness/src/components/ApiResponse.jsx: Component for displaying API responses.
- internal-api-harness/src/components/Layout.jsx: Layout component for the API test harness.
- internal-api-harness/src/components/ServiceTester.jsx: Component for testing individual services.
- internal-api-harness/src/components/ui/button.jsx: Button component.
- internal-api-harness/src/components/ui/card.jsx: Card component.
- internal-api-harness/src/components/ui/collapsible.jsx: Collapsible component.
- internal-api-harness/src/components/ui/input.jsx: Input component.
- internal-api-harness/src/components/ui/label.jsx: Label component.
- internal-api-harness/src/components/ui/select.jsx: Select component.
- internal-api-harness/src/components/ui/textarea.jsx: Textarea component.
- internal-api-harness/src/firebase.js: Firebase configuration file.
- internal-api-harness/src/index.css: Main CSS file.
- internal-api-harness/src/lib/utils.js: Utility functions.
- internal-api-harness/src/main.jsx: Main entry point for the React application.
- internal-api-harness/src/pages/ApiPlaceholder.jsx: Placeholder component for unimplemented APIs.
- internal-api-harness/src/pages/EntityTester.jsx: Component for testing entity APIs.
- internal-api-harness/src/pages/GenerateImage.jsx: Component for testing the Generate Image API.
- internal-api-harness/src/pages/Home.jsx: Home page component.
- internal-api-harness/src/pages/Login.jsx: Login page component.
- internal-api-harness/src/pages/auth/GetMe.jsx: Component for testing the Get Me API.
- internal-api-harness/src/pages/core/CreateSignedUrl.jsx: Component for testing the Create Signed URL API.
- internal-api-harness/src/pages/core/InvokeLLM.jsx: Component for testing the Invoke LLM API.
- internal-api-harness/src/pages/core/SendEmail.jsx: Component for testing the Send Email API.
- internal-api-harness/src/pages/core/UploadFile.jsx: Component for testing the Upload File API.
- internal-api-harness/src/pages/core/UploadPrivateFile.jsx: Component for testing the Upload Private File API.
- internal-api-harness/tailwind.config.js: Tailwind CSS configuration file.
- internal-api-harness/vite.config.js: Vite configuration file.
2025-11-16 21:45:17 -05:00
bwnyasse
6824bded16 feat(Makefile): add data connect management commands to Makefile
This commit introduces new commands to streamline Data Connect
management, including enabling APIs, initializing Firebase, and
deploying schemas. These commands enhance developer experience by
providing easy-to-use shortcuts for common Data Connect tasks.
2025-11-16 17:00:41 -05:00
José Salazar
6e247867e1 configuration makefile and dataconnect init 2025-11-16 16:58:23 -05:00
bwnyasse
b8739164af feat(Makefile): allow filtering issues by state and label in export-issues target
feat(scripts/export_issues.sh): allow filtering issues by state and label

This commit introduces changes to both the Makefile and the
export_issues.sh script to allow users to filter GitHub issues
by state and label when exporting them to a markdown file.

The Makefile's `export-issues` target now accepts an optional
`ARGS` variable, which is passed to the `export_issues.sh`
script. This allows users to specify command-line arguments
such as `--state=all` or `--label=bug` to filter the issues
being exported.

The `export_issues.sh` script has been updated to parse these
command-line arguments and use them to construct the `gh issue
list` command. The script now supports the `--state` and
`--label` options, which allow users to filter issues by their
state (e.g., open, closed, all) and label, respectively.

These changes provide users with more flexibility in exporting
GitHub issues, allowing them to generate markdown files that
contain only the issues that are relevant to their needs.
2025-11-16 11:01:43 -05:00
bwnyasse
cf2a2d89d9 feat(admin-web): add KROW logo and title to admin console
feat(admin-web): display environment badge in admin console
feat(admin-web): configure Nginx for SPA and copy config
fix(Makefile): fix typo in CR_ADMIN_IMAGE_URI variable assignment
feat(firebase): update launchpad title to "Launchpad"
2025-11-16 08:54:11 -05:00
bwnyasse
813988293e feat(Makefile): introduce admin console deployment to Cloud Run with IAP
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.
2025-11-16 08:26:20 -05:00
bwnyasse
3bd2dfc002 refactor(Makefile): remove App Engine configs and scripts, migrate launchpad to Cloud Run
This commit removes legacy App Engine deployment artifacts and updates the Makefile to reflect the successful migration of the `internal-launchpad` service to Cloud Run.

The following changes were made:

- Deleted obsolete permission scripts:
 - `fix-appengine-permissions-complete.sh`
 - `fix-project-level-permissions.sh`
 - `create-missing-repository.sh`
- Removed the `firebase/internal-launchpad/app.yaml` file.
- Updated `firebase.json` to remove the `launchpad` hosting configuration.

These changes streamline the repository, reduce developer confusion, and prevent the accidental use of outdated deployment logic.
2025-11-16 08:10:31 -05:00
bwnyasse
383fc14bf8 feat(Makefile): add admin console commands to Makefile
feat(README.md): update README to reflect monorepo structure and admin console
feat: remove setup_admin_console.sh script

The setup_admin_console.sh script is removed because the admin console setup is now integrated into the Makefile.
The README is updated to reflect the new monorepo structure and the admin console.
The Makefile is updated to include commands for installing, developing, and building the admin console.
2025-11-15 17:38:58 -05:00
bwnyasse
b7477944bc feat: update title and favicon in index.html
This commit updates the title and favicon in the index.html file
to reflect the new KROW branding. It also updates the links in
the internal launchpad to point to the correct environments.

feat: add script to patch index.html during integration

This commit adds a new script to patch the index.html file during
the integration process. This script updates the title and favicon
to reflect the new KROW branding.

style: update badge style in Dashboard.jsx

This commit updates the badge style in the Dashboard.jsx file to
use a span element with rounded corners instead of the Badge
component. This is to match the design of the new KROW branding.
2025-11-14 09:06:30 -05:00
bwnyasse
9bdb250714 feat: add firebase configuration and deployment scripts
This commit introduces Firebase configuration files (.firebaserc,
firebase.json) and updates the Makefile to include deployment
commands for different environments (dev, staging).

The .firebaserc file defines Firebase projects for development and
staging, along with hosting targets.

The firebase.json file configures hosting settings, including
rewrites and ignores. It defines hosting targets for the main app
in dev and staging, and a separate target for an internal launchpad.

The Makefile is updated to include:
- GCP project IDs for dev and staging.
- Environment detection (ENV variable).
- Conditional variables based on the environment (GCP_PROJECT_ID,
 FIREBASE_ALIAS, HOSTING_TARGET).
- Deployment commands for the launchpad and the main app.
- The build command now passes the environment variable to the
 frontend build process.

The internal launchpad is added to firebase/internal-launchpad/index.html
to provide quick access to application URLs and Firebase/GCP
consoles for different environments.

A patch script is added to inject the environment label into the
Dashboard page.

The index.html title is changed to KROW.

These changes enable streamlined deployment and environment
management for the KROW application.
2025-11-14 08:53:00 -05:00
bwnyasse
80cd49deb5 feat(Makefile): install frontend dependencies on dev command
feat(Makefile): patch Layout.jsx queryKey for local development
feat(frontend-web): mock base44 client for local development with role switching
feat(frontend-web): add event assignment modal with conflict detection and bulk assign
feat(frontend-web): add client dashboard with key metrics and quick actions
feat(frontend-web): add layout component with role-based navigation
feat(frontend-web): update various pages to use "@/components" alias
feat(frontend-web): update create event page with ai assistant toggle
feat(frontend-web): update dashboard page with new components
feat(frontend-web): update events page with quick assign popover
feat(frontend-web): update invite vendor page with hover card
feat(frontend-web): update messages page with conversation list and message thread
feat(frontend-web): update operator dashboard page with new components
feat(frontend-web): update partner management page with new components
feat(frontend-web): update permissions page with new components
feat(frontend-web): update procurement dashboard page with new components
feat(frontend-web): update smart vendor onboarding page with new components
feat(frontend-web): update staff directory page with new components
feat(frontend-web): update teams page with new components
feat(frontend-web): update user management page with new components
feat(frontend-web): update vendor compliance page with new components
feat(frontend-web): update main.jsx to include react query provider

feat: add vendor marketplace page
feat: add global import fix to prepare-export script
feat: add patch-layout-query-key script to fix query key
feat: update patch-base44-client script to use a more robust method
2025-11-13 14:56:31 -05:00
bwnyasse
f449272ef0 feat(Makefile): patch base44Client.js for local development
This commit introduces a script to patch the base44Client.js file
within the frontend-web directory. This patch is specifically
designed to facilitate local development by mocking user roles and
authentication, allowing developers to test role-based functionality
without needing a full Base44 SDK setup.

The Makefile is updated to include a call to this script during the
`integrate-export` target, ensuring that the patch is applied
automatically when integrating a fresh Base44 export.

This change streamlines the local development process and enhances
the testing capabilities for role-based features.
2025-11-13 13:44:17 -05:00
bwnyasse
0f9ca9eb15 feat: add git pre-push hook to prevent direct pushes to protected branches
This commit introduces a pre-push Git hook that prevents direct
pushes to the `main` and `dev` branches. This enforces the use of
pull requests for merging changes into these protected branches,
promoting code review and maintaining branch stability.

The changes include:
- Adding a `install-git-hooks` target to the Makefile to symlink
 the pre-push script into the `.git/hooks/` directory.
- Creating the `scripts/git-hooks/pre-push` script that checks the
 target branch and aborts the push if it matches a protected branch.
- Updating the `CONTRIBUTING.md` file to instruct developers to
 install the Git hooks after setting up their development
 environment.
2025-11-13 11:44:01 -05:00
bwnyasse
6540d01175 feat: add SR&ED tracking and project management tools
This commit introduces several new files and updates to support
SR&ED tracking and project management:

- Adds a template for SR&ED tasks to standardize issue creation.
- Adds a Makefile command to set up GitHub labels from a YAML file.
- Adds a Makefile command to export SR&ED-eligible issues to a
 Markdown file.
- Adds a Makefile command to create issues from a file.
- Adds documentation for SR&ED tracking and development
 conventions.
- Adds a YAML file to define GitHub labels.
- Adds scripts to set up GitHub labels, export issues, and create
 issues from a file.
- Updates the project plan to include SR&ED considerations.

These changes aim to improve project organization, facilitate
SR&ED claims, and streamline development workflows.
2025-11-13 11:33:52 -05:00
bwnyasse
554dc9f9e3 feat: Initialize monorepo structure and comprehensive documentation
This commit establishes the new monorepo architecture for the KROW Workforce platform.

Key changes include:
- Reorganized project into `frontend-web`, `mobile-apps`, `firebase`, `scripts`, and `secrets` directories.
- Updated `Makefile` to support the new monorepo layout and automate Base44 export integration.
- Fixed `scripts/prepare-export.js` for ES module compatibility and global component import resolution.
- Created and updated `CONTRIBUTING.md` for developer onboarding.
- Restructured, renamed, and translated all `docs/` files for clarity and consistency.
- Implemented an interactive internal launchpad with diagram viewing capabilities.
- Configured base Firebase project files (`firebase.json`, security rules).
- Updated `README.md` to reflect the new project structure and documentation overview.
2025-11-12 12:50:55 -05:00
bwnyasse
e6cd70d834 feat(Makefile): add integrate-export command to automate
Base44 export integration
feat(README.md): update Base44 integration workflow
for clarity and automation
2025-11-11 07:09:31 -05:00
bwnyasse
e571193362 feat: Initial commit of KROW Workforce Web client (Base44 export) 2025-11-11 06:08:01 -05:00