Cảnh Báo Sớm
1Landing page: what the platform is
Overview
Cảnh Báo Sớm (CBS) puts the everyday running of a business in one place. It is sold around three pillars — production management covering materials, supplies, finished and semi-finished goods, by-products and shipping; proposals and approvals that digitise any request form a company uses, from leave and travel expenses to purchasing and payment; and maintenance, where periodic service rules are defined and everything the maintenance team does is tracked. One account can belong to several organisations and switch between them from the top bar, so a group of companies shares the same tooling while their data stays separate.
Work runs through two connected modules. Tasks can repeat on a schedule, nest as parent and child, carry watchers and related objects, and raise reminders within a defined window, with email and in-app notifications on every change. Proposals are the configurable half: each proposal type is a form assembled from fields that include repeaters, relation pickers and calculated values, routed through an approval flow, filterable by status — pending, in review, completed, rejected, cancelled — and exportable to Excel with statistics.
Around those sit the operational modules: a device and spare-part register where each item opens onto its basic information, extra attributes and its own reports, with KPI settings per device and category and an inventory management side; warehouses and a product catalogue; customers with classification groups, customer codes and credit limits, plus receivables; economic contracts; an employee directory organised by department and position; an internal newsfeed; and notes.
General settings are where the platform is shaped without code: proposal types and their forms, report templates, reminder rules, customer classifications and tags. An alarm engine watches for data that meets the conditions declared for it and fires the actions configured in response, and triggers can be attached to events on tasks or proposals so finishing one step starts the next. Permissions are granular per object and per action, with view/create/update/delete and their organisation-wide variants declared for every module.
Technically the platform is a Vue single-page application talking to an OctoberCMS/Laravel backend over GraphQL, with PostgreSQL for data, Redis for caching, Beanstalkd for queued work and Firebase Cloud Messaging for push. The backend is split into plugins per business domain — proposals, tasks, devices and alarms, HR and customers, the internal feed, permissions, multi-tenancy — so a new domain arrives as a plugin rather than a rewrite. I designed the platform, built it, and continue to operate it.
Key capabilities
- Multi-organisation platform: one account switches between companies from the top bar
- Production management for materials, supplies, finished and semi-finished goods and shipping
- Proposal types built as configurable forms with repeater, relation and calculated fields
- Approval routing with status filters, statistics and Excel export
- Maintenance rules for periodic servicing, tracked alongside the maintenance team’s work
- Tasks that repeat on a schedule, nest as parent/child and carry watchers and reminders
- Alarm engine that watches declared data conditions and runs the configured actions
- Event triggers on tasks and proposals so completing one step starts the next
- Device and spare-part register with per-device reports and KPI settings
- Warehouses, product catalogue and inventory management
- Customers with classification groups, customer codes, credit limits and receivables
- Economic contracts, employee directory by department and position, newsfeed and notes
- Configurable report templates, reminder rules, classifications and tags
- Granular permissions per object and action, including organisation-wide variants
- Vue SPA over a GraphQL API, with queued jobs and push notifications
- Backend split into plugins per business domain, so new domains ship as plugins