Skip to main content

What it is

The tutorbloc-client is a Vue 2 Single Page Application that serves the public-facing website, tutor registration, student booking flows, and user profile management. It communicates with the tutorbloc-api backend via REST — see the backend architecture and API reference for the other half of the system.

Tech stack

LayerTechnologyVersion
FrameworkVue.js2.6.10
RoutingVue Router3.0.3 (history mode)
HTTP clientAxios + XMLHttpRequest0.19.0
CSS frameworkBootstrap4.3.1
CSS preprocessorSCSS/Sass1.22.7
Build toolVue CLI3.9 (Webpack)
LintingESLint5.16 + vue plugin
TranspilerBabel@vue/app preset
Image optimizationimagemin-webpack-plugin2.4.2
Production serverNginx + DockerAlpine
Node version (build)Node.js10
No TypeScript — the entire codebase is plain JavaScript. Data structures are implicit through usage, not typed interfaces.

What it does NOT have

  • No Vuex or any state management library — component-level state only
  • No test framework (no Jest, Cypress, or Playwright)
  • No CI/CD pipeline — manual Docker builds
  • No TypeScript
  • No external form library — manual validation in components
  • No external design system (no shadcn, Radix, MUI, Tailwind)

Key characteristics

  • 55+ routes with code-splitting via Webpack dynamic imports
  • ~53 reusable components + ~27 page views
  • Multi-step registration flow (6 steps for tutors)
  • Session-based auth via sessionKey header (stored in sessionStorage)
  • Mixed API patterns — both Axios and raw XMLHttpRequest used
  • Responsive design — custom CSS breakpoints at 768px (mobile) and 1000px (desktop)

Environment URLs

EnvironmentClient URLAPI URL
Developmentlocalhost:8080http://localhost:9000
Testingwww.testing.web.tutorbloc.comhttps://www.testing.web.tutorbloc.com/api
Stagingstaging.web.tutorbloc.comhttps://staging.web.tutorbloc.com/api
Productiontutorbloc.comhttps://tutorbloc.com/api

Analytics & tracking

ServiceIDPurpose
Google Tag ManagerGTM-WLHL7KMTag management
Crisp Chat94b4b159-cf02-42a3-b30f-4b545f024fb2Support chat bot
ActiveCampaignAccount 610405066CRM / email tracking
Google Analyticsvia GTMConversion tracking (purchase events on booking)

Color palette (CSS variables)

--wf-dark-blue: #2e3b51
--wf-light-blue: #3963a4
--wf-steel-blue: #bacae7
--wf-beige: #fcecd7
--wf-grey: #f1f1f1
--wf-mist: #ebebeb
--wf-red: #c16673
--wf-green: #698f73