Project · published from Studio

CRM — Galaxy Vision

A React + Express CRM for Galaxy Vision’s training center, with RBAC and Issabel call-to-contact routing.

Role
Full-stack engineer for product UI, APIs, auth, and telephony integration
Outcome
Shipped an internal Galaxy Vision CRM with React, Express auth/RBAC, and Issabel open-on-call behavior.
Status
Client delivery — private live URL and source

No public live URL or repository is available for this client CRM. Screenshots are partial and redacted; full product imagery is not published.

Partial redacted screenshot of the CRM people grid

Outcome

Context and why it mattered

Faster recognition of known callers and clearer permission boundaries reduce mistakes in a busy training-center desk.

Outcome

Problem

Staff needed one place for people, courses, finance, and SMS—and inbound Issabel calls had to open the matching contact immediately.

Delivery detail

Constraints

Client confidentiality: no public product URL, no public source, and only partial redacted screenshots may be shown.

  • Client confidentiality: no public product URL, no public source, and only partial redacted screenshots may be shown.

Delivery detail

Role and scope

Client delivery for Galaxy Vision. Internal staff names and phone numbers in screenshots are redacted for publication.

Responsibilities

  • React CRM interface (RTL)
  • Express.js APIs, auth, and session handling
  • Full RBAC across CRM modules
  • Issabel inbound call → open contact record
  • People, courses, finance, SMS, and definitions modules

Included in scope

  • React CRM interface (RTL)
  • Express.js APIs, auth, and session handling
  • Full RBAC across CRM modules
  • Issabel inbound call → open contact record
  • People, courses, finance, SMS, and definitions modules

Outside scope

  • Live deployment URL is private to the client.
  • Source repository is private.
  • Screenshots are partial and PII-redacted; full UI capture is not published.

Delivery detail

People / contact center

Person directory and contact-center workflows for staff.

  1. 1

    People / contact center

    Person directory and contact-center workflows for staff.

    • gvc-people-shot

Step outputs

  • gvc-people-shot

Delivery detail

RBAC matrix

Per-module create/read/update/delete permissions for users.

  1. 1

    RBAC matrix

    Per-module create/read/update/delete permissions for users.

    • gvc-rbac-shot

Step outputs

  • gvc-rbac-shot

Delivery detail

Issabel telephony bridge

Inbound call from a known number opens that person’s CRM record.

  1. 1

    Issabel telephony bridge

    Inbound call from a known number opens that person’s CRM record.

    • gvc-sms-shot

Step outputs

  • gvc-sms-shot

Delivery detail

People grid (partial)

Shows the contact-center people surface without exposing a live URL.

People grid (partial)

Shows the contact-center people surface without exposing a live URL.

Galaxy Vision CRM — people (partial)
Contains visual content

Delivery detail

Permissions matrix (partial)

Documents granular RBAC across CRM modules.

Permissions matrix (partial)

Documents granular RBAC across CRM modules.

Galaxy Vision CRM — RBAC (partial)
Contains visual content

Delivery detail

Program students (partial)

Shows course/program roster workflows inside the CRM.

Program students (partial)

Shows course/program roster workflows inside the CRM.

Galaxy Vision CRM — program students (partial)
Contains visual content

Delivery detail

Person SMS / profile (partial)

Shows person detail + messaging adjacent to telephony-driven contact open.

Person SMS / profile (partial)

Shows person detail + messaging adjacent to telephony-driven contact open.

Galaxy Vision CRM — person SMS (partial)
Contains visual content

Engineering detail

Architecture

React SPA talks to Express APIs with session auth; RBAC gates modules; Issabel events resolve phone → person and open the record.

React CRM

other

RTL staff UI

Express API

other

Auth + RBAC

Issabel

other

Inbound call events

  • uiapi · HTTPS session
  • pbxapi · Call → person

Engineering detail

Module-level RBAC

Situation
Different staff roles need different create/read/update/delete rights per module.
Decision
Per-module action matrix
Reasoning
Training-center desks mix contact, course, and finance duties that must not share one blunt role.
Cost / trade-off
More permission UI and tests to maintain.

Alternatives considered

  • Coarse admin/user flags
  • Per-module action matrix

Outcome

Result

Shipped an internal Galaxy Vision CRM with React, Express auth/RBAC, and Issabel open-on-call behavior.

Engineering detail

Reflection

For client CRM work, disclosure UI (no URL / private source / partial screens) must be first-class in the portfolio card.

Lessons

  • Telephony value shows up when the CRM record opens in the same second as the call.

Next steps

  • Keep Studio as the edit surface for title, summary, and gallery.

Published content

Claim boundary

No public live URL or repository is available for this client CRM. Screenshots are partial and redacted; full product imagery is not published.

Published content

Next step

Start with your goal

Share the outcome you need; the next step will be scoped around it.

Project gallery

Partial redacted screenshot of the CRM permissions matrix
Per-module permissions
Partial redacted screenshot of program students
Course program roster
Partial redacted screenshot of person SMS detail
Person messaging
Mohsen
Mohsen
contact@mohsen.info

Tehran, Iran

نسخهٔ فارسی

© 2026 Mohsen.