Copods

Building a Scalable, Secure, and Efficient System.

Agritech Platform

A comprehensive Seed-to-Sale Cannabis ERP
solution designed to streamline operations for
businesses within the cannabis industry. It
offers tools for regulatory compliance, sales
enhancement, production efficiency, and
inventory management. With features like
regulatory software integration, dynamic
demand alerts, and real-time inventory
updates. It’s tailored for cultivators,
manufacturers and vertically integrated
businesses, promising visibility, control, and
streamlined workflows across multiple sites
and operations.
  • UX Audit
  • Task Flow Optimization
  • Navigational structure Redesign
  • Wireframing
  • Visual Design
  • The Engagement

    Feature Gating Based on Pricing Plans

    • Plan Definition with Dynamic UI Rendering: Created multiple pricing plans (e.g., Basic, Pro, Enterprise), each offering a distinct set of features / limitations. Adjusted the UI dynamically to show or hide features based on the user’s plan.
    • Feature Flags: Used feature flags to enable or disable features dynamically based on the user’s plan. This was managed using a centralized feature flagging service.

    RBAC (Role-Based Access Control)

    Roles and Permissions

    Defined roles such as Admin (Tenant Owner), Manager, Team Member and Customer, each with specific permissions. Permissions were managed using a centralized policy engine.

    UI Access

    Customized interfaces based on user roles, ensuring that users only see and interact with the features relevant to their responsibilities. This was achieved by dynamically rendering components based on the user’s role.

    Authentication and Authorization

    Implemented using JWT (JSON Web Tokens) and OAuth2 for secure authentication, and fine-grained access control.

    Monorepo Structure

    Frontend

    Two Progressive Web Apps (PWAs) for user interaction, built with Vue and Nuxt for faster development and a better development experience.

    Backend

    Backend server built with Node.js and Express, leveraging GraphQL for flexible and efficient data querying, enabling more precise and efficient data retrieval.

    Shared Component Library

    Maintained a shared component library using Vue and Nuxt to promote code reuse, maintain consistency across both PWAs, and speed up the development process by providing pre-built, standardized components.

    Server-less Functions

    Data-heavy tasks to optimize performance and scalability. These functions handled tasks like data processing, reports, and task automations.

    Apollo GraphQL API

    Utilized with code generation to ensure type-safe queries and mutations across the frontend, enhancing developer productivity and reducing errors.

    Integration

    Government Compliant Body
    • Two-way Integration: Ensured real-time synchronization with the government body, facilitating compliance and inventory management. Implemented using REST APIs to sync data.
    • Inventory Audit: Automated highlighting of inconsistent data, improving data accuracy and compliance.
    • Task Dependencies: Implemented a dependency engine to link dependencies between tasks and resolve them once executed. Enabled users to perform multiple tasks, syncing them in a compliant order with the body.

    Shipment Provider (On Fleet)

    • Two-way Integration: Provided seamless tracking of sales order shipments. Integrated using On Fleet’s API, with real-time updates pushed to the frontend using WebSockets.

    QuickBooks Integration

    • CSV Export: Facilitated easy generation of invoices for QuickBooks, streamlining financial operations.

    Performance Improvements

    Jobs Kanban Board

    • Two-way Integration: Achieved a 70% faster load time by optimizing database queries, implementing client-side caching, and using service workers for offline capabilities.

    Real-time Reports

    • COGS (Cost of Goods Sold)
    • Top Performing Products
    • Sales Report
    • Inventory Value Average Inventory Age
    • Others

    Multi-Tenancy

    Security

    • Data Isolation: Implemented a secure multi-tenant architecture ensuring no data leakage between tenants. Achieved using a combination of tenant-specific database schemas and logical
      data isolation in shared databases.
    • Document Sharing: Used signed URLs expiring after 1 minute for secure document sharing within tenants. Implemented using AWS S3 pre-signed URLs.

    Compliance and Labeling

    When we were looking for a development partner to assist in the delivery of our redesigned SaaS product, Copods was recommended by a trusted advisor. Following a competitive tender process, Copods were selected and engaged. Copods have exceeded expectations around speed and quality of delivery. Being a design-led agency meant that their software development team not only delivered on our designs, but also contributed to its evolution by suggesting ways to improve the UI to make the customer experience better.

    The team have been wonderful to work with, and have become an extension of our own team. We will continue to work with Copods into the next stage of our product development, but I also see us working together long into the future. I highly recommend the Copods team to any prospective client, anywhere in the world.

    CEO & Co-founder

    More Case Studies