WIM
Watch Inventory Manager
A bespoke workshop management system for fine watchmaking. Manage parts inventory, assembly guides, timing tests, waterproof records, and job workflows — all in one app, available offline on any device.
Version v43.0
Platform PWA (Web App)
Works Offline Yes

🏠Overview

WIM is a complete workshop management platform built specifically for fine watchmaking. It combines inventory management, assembly workflows, precision test recording, and production tracking in a single offline-capable web application.

📦 Inventory & Orders

Track all movement parts across multiple storage locations. Manage the full order lifecycle from draft to delivery. Forecast stock needs based on production targets.

🔧 Assembly Workflows

Step-by-step assembly guides with 3D model integration. Job assignment to watchmakers with progress tracking and QC checklists.

⏱ Timing & Waterproof

Record Witschi timing machine results with full statistical analysis. Track pressure tests across assembly phases. All data linked to the watch event timeline.

📱 Watchmaker App

Mobile-optimised interface for the workshop floor. Job execution, step-by-step guides, timing test recording — all accessible from a phone or tablet.

💡

WIM works fully offline once installed. For multi-device sync, cloud sync must be configured by the administrator.

🔐Login & Roles

WIM uses a session-based login. Sessions are cleared when the browser is closed — you will need to log in again each session. Sessions expire automatically after 8 hours.

User Roles

Admin
Full access to all features including user management, settings, and the complete Assembly Hub.
User
Full inventory and order management. Access to assembly guides. Cannot manage users or change system settings.
Watchmaker
Access to the Watchmaker's Companion App (WCA). Job execution, timing/waterproof recording. No inventory editing.
Orderer
View inventory and manage orders. Cannot edit stock, import data, or access settings.

Changing Your Password (Watchmakers)

Watchmakers can change their own password from within the Watchmaker's Companion App.

  1. Log in to the Watchmaker's Companion App
  2. Tap the 🔑 button in the top navigation bar
  3. Enter your new password twice and confirm
ℹ️

For account creation, role changes, or password resets, contact your administrator.

📊Dashboard

The dashboard is your home screen after login. It provides an at-a-glance overview of all active movements and quick access to key actions.

Movement Cards

Each card shows the movement's stock health, current job status, and quick links to Inventory, Orders, Assembly Hub, 3D Viewer, Timing Tests, and Waterproof Tests for that movement.

📦Parts & Stock

The inventory system tracks all parts required for each movement, across multiple storage locations.

Viewing Inventory

Open a movement from the dashboard, then click the Inventory tab. The parts table shows all parts with their reference, supplier, quantity needed per watch, stock per location, and alert status.

Stock Alert Colours

ColourMeaning
● Red / CriticalStock will run out within the critical forecast window (default 1 month)
● Amber / LowStock will run out within the low-stock window (default 2 months)
● Green / OKStock is sufficient for the current production period

Editing Stock

Click any stock number in the table to edit it inline. Press Enter or click away to confirm. Undo the last change with Ctrl+Z or the Undo button.

Focus View

Use Focus View (🔍 button) to pin specific parts or locations to the table, hiding everything else. Useful when working at a specific bench with a limited parts set.

Write-offs

Record parts used, lost, or damaged using the Write-off button. Enter the quantity and reason. Write-offs are tracked in the history and cannot be undone.

Exporting

Export the current inventory table to CSV or Excel using the Export button in the toolbar.

🛒Orders

The order system manages the full lifecycle from draft order to delivery.

Creating a Draft Order

  1. Open the Orders tab for a movement
  2. Click ➕ Add to Draft or use the autocomplete search to find parts
  3. WIM suggests quantities based on current stock vs. production needs — adjust as needed
  4. Review the draft order summary at the bottom
  5. Click Send Order to confirm and move it to the sent orders list

Sent Orders

Sent orders appear in the Order History tab with their expected delivery date. When parts arrive, use the Receiving flow to match the delivery against the order.

Legacy Orders

For orders placed before WIM was set up, use Add Legacy Order to register them as pending. They will count against the suggested order quantities until marked as received.

📬Receiving Deliveries

Record incoming parts deliveries to automatically update stock levels.

  1. Click 📬 Record Delivery from the inventory toolbar or dashboard
  2. Choose mode: Against Existing Order (links to a sent order) or Unregistered Delivery
  3. Select the movement and parts received, enter quantities
  4. Optionally assign to a storage location
  5. Confirm — stock is updated immediately

Use Batch Receive to record multiple parts in a single delivery efficiently.

⚙️Production

Production tools help you understand how many watches you can build with current stock and when you need to reorder.

⚠️

Production targets and alert thresholds are set per movement in System → Settings. Contact your administrator to adjust them.

🔧Assembly Guides & Jobs

The Assembly Hub manages the full watchmaking workflow from guide authoring to job execution.

Assembly Guides (Admin)

Guides are organised into Phases (e.g. "Mainplate Prep", "Keyless Works") and Steps within each phase.

Each step can contain:

Exporting a Guide

Export any guide as a PDF (cover page, table of contents, one step per page with 3D screenshots) or as a DOCX document. Both are available from the guide editor.

Creating a Job

  1. Open Assembly Hub → select a movement → click Create Job
  2. Select the guide and assign it to a watchmaker
  3. Set the serial reference (optional) and start date
  4. Confirm — the job appears on the watchmaker's home screen in WCA

QC Checklists

Admins can define QC item templates per movement. When a job is complete, the watchmaker runs through the QC checklist in WCA, signing off each item. Results are timestamped and traceable.

Job Transfer

Jobs can be transferred between watchmakers by the admin if needed (illness, change of assignment, etc.).

🟣3D Viewer

Each movement can have an associated 3D CAD model displayed using the Autodesk Platform Services (APS) viewer. The viewer integrates with inventory, assembly guides, and part isolation.

Features

Administrator Setup — Step by Step

The 3D viewer requires three one-time configuration steps: an Autodesk APS application, a PHP token proxy on your server, and WIM settings. All done from the Admin → 3D Model panel.

Step 1 — Create an Autodesk APS Application

  1. Go to aps.autodesk.com → sign in → My AppsCreate App
  2. Choose Server-side web app (2-legged OAuth)
  3. Select the Data Management API (scope: data:read)
  4. Copy your Client ID and Client Secret — you will need these for the PHP file
  5. Upload your Revit/Inventor model to ACC (Autodesk Construction Cloud) or BIM 360 and translate it to SVF2 format via the Model Derivative API. Once translated, copy the model's URN (base64-encoded string starting with urn:adsk.objects:)

Step 2 — Deploy the Token Proxy on Your Server

The token proxy keeps your Autodesk credentials server-side and validates requests with a shared secret so only WIM can fetch tokens.

  1. Open aps-token.php from the WIM project folder
  2. Fill in your credentials at the top of the file:
    $clientId     = 'YOUR_APS_CLIENT_ID';
    $clientSecret = 'YOUR_APS_CLIENT_SECRET';
    $proxyKey     = 'CHANGE_ME';   // ← set this after Step 3 below
  3. Upload aps-token.php to your OVH/web server (e.g. https://yourserver.com/aps-token.php)
  4. Verify it works: open the URL in a browser — it should return {"error":"Unauthorized"} (correct — it's blocking requests without the shared key)

Step 3 — Configure WIM

  1. In WIM: Admin → 3D Model Settings
  2. In the APS Token URL field, enter the full URL of your deployed PHP file (e.g. https://yourserver.com/aps-token.php) → click Save Token URL
  3. In the APS Proxy Key field, click Generate Key — this creates a random 48-character secret → click Save Key
  4. Copy the generated key, open aps-token.php on your server and paste it as the value of $proxyKey, then save the file
  5. For each movement, enter its Model URN in the movement's field and click Save URN
  6. Open the movement → go to the 3D Model tab → the viewer should load
⚠️

The Proxy Key in WIM and the $proxyKey in your PHP file must match exactly. If you regenerate the key in WIM, you must also update the PHP file, or the viewer will stop loading (401 Unauthorized).

ℹ️

The 3D viewer requires an internet connection. The model is streamed from Autodesk's servers. The token proxy only needs to be reachable when WIM first loads or refreshes a session token (every ~60 minutes).

Part Matching

Components are matched to WIM parts using the Bestandsnummer property embedded in the CAD model. WIM normalises accented characters (ü→u, é→e) and strips movement suffixes automatically to maximise auto-match rates. Components with no auto-match can be linked manually.

Troubleshooting

SymptomLikely causeFix
Viewer shows "Loading…" foreverToken URL not reachable or URN not setCheck Token URL in Admin → 3D Model; verify the PHP is live
401 Unauthorized in consoleProxy key mismatchRegenerate key in WIM, paste into $proxyKey in aps-token.php
Model loads but no parts matchBestandsnummer property missing from modelUse Revit/Inventor to add Bestandsnummer = part reference to each component, re-upload and re-translate
Viewer not appearing for a movementURN not saved for that movementAdmin → 3D Model → enter URN for that movement → Save URN

Timing Tests

Record, analyse, and export timing machine results for each movement. Supports all standard test phases and all 6 positions.

Adding a Test

  1. Open a movement → click ⏱ Timing (from any context)
  2. Click + Add Test
  3. Enter Serial/Reference, Test Phase, Winding State, and Lift Angle (°)
  4. Fill in Rate (s/day), Amplitude (°), and Beat Error (ms) for each position
  5. Optionally upload a Witschi photo and click 🔍 Parse OCR to auto-fill the DU row
  6. Click Save Test

Test Phases

PhaseWhen to use
Pre AssemblyBare movement before assembly begins
Final AssemblyMovement fully assembled, case not yet closed
Final TestWatch fully cased, ready for final certification
Watch CompleteFinal record after all adjustments complete

Statistics & Tolerances

Each test row shows automatically calculated statistics:

If your administrator has configured tolerances for this movement, out-of-spec results are automatically flagged:

Viewing & Exporting a Test

Click ▼ View on any test row to expand the full position table with individual status flags. From the expanded view, export the test as PDF or CSV.

Lift Angle

The lift angle (°) is the escapement's lift angle, used by the timegrapher to compute amplitude. Common values: 45° (pocket watches), 52° (ETA/Sellita), 53°, 55°, 60°. WIM pre-fills this from the last test for that movement.

🌊Waterproof Tests

Record pressure test results for each movement, tracked by test phase.

Test Phases

PhaseDescription
Case OnlyEmpty case without movement, gaskets freshly replaced
Case & MovementMovement installed, crown fitted
Final TestComplete watch, final certification
Watch Back for ServiceCustomer watch returned for service

Recording a Test

  1. Open 🌊 Waterproof for a movement
  2. Click + Add Test
  3. Select test type (overpressure or underpressure), phase, and pressure (bar)
  4. Record the result: Pass, Fail, or Conditional
  5. Note gasket replacement status if applicable
  6. Save

📋Watch Event Timeline

A unified chronological log of everything that has happened to a specific movement. The timeline automatically aggregates events from all WIM modules.

Event TypeSource
⏱ Timing TestAutomatically logged when a timing test is saved
🌊 Waterproof TestAutomatically logged when a pressure test is saved
✅ Assembly CompleteLogged when a job phase is completed
🔍 QC Passed / FailedLogged when QC checklist is completed
🏷 Serial AssignedManual event
🔄 SAV / Service ReturnManual event or SAV log entry
📦 ShippedManual event
📝 NoteManual event

Access the timeline from the movement card (📋 History button) or from WCA's History tab.

📱Watchmaker's Companion App

The WCA is a mobile-optimised interface designed for use on the workshop floor. It replaces the full admin UI for users with the Watchmaker role.

Home Screen

Shows your active jobs with progress and status. Tap a job to enter the step-by-step execution view.

Executing a Job

  1. Tap the job from your home screen
  2. Work through each step — read the description and check off each checklist item
  3. If a step shows the 3D viewer, you can view the highlighted parts for that step
  4. For steps marked ⏱ Timing Test Required, record a timing test before completing the step
  5. Tap Complete Step once all checklist items are ticked
  6. When all steps in a phase are complete, the phase is marked done

Bottom Navigation

ButtonFunction
⏱ TimingRecord and view timing machine tests
🌊 WaterproofRecord and view pressure tests
📋 HistoryView the watch event timeline
🔄 SAVLog a service/SAV return event
✅ QCComplete the QC checklist for the current job

Timing Test Required Steps

Some steps are configured to require a timing test before completion. When you reach such a step:

  1. The step shows an info banner: "A timing test is required to complete this step."
  2. Tap 📊 Record Timing Test
  3. The timing modal opens — enter your Witschi results and save
  4. The step panel updates to show "✓ Timing test recorded"
  5. The Complete Step button is now enabled

☁️Cloud Sync

Cloud sync keeps your data consistent across multiple devices (desktop, tablet, phone).

🔧

Cloud sync configuration (server URL and token) is managed by the administrator. Contact your admin to set it up.

Using the Sync Widget (Admin / User)

The sync status indicator appears in the top-right of the screen. It shows the current sync state:

Use the ↓ Pull and ↑ Push buttons to manually sync. Ctrl+S saves and pushes simultaneously.

💾Backup & Restore

Creating a Backup

Click 💾 Backup on the dashboard to download a complete JSON snapshot of all WIM data. Store it safely — on your computer, a USB drive, and ideally a cloud drive.

💡

WIM auto-saves a backup every 60 minutes automatically. Manual backups are also recommended before major changes.

Restoring from Backup

  1. Click 📂 Restore on the dashboard
  2. Select the JSON backup file from your computer
  3. Confirm the restore — cloud sync settings are preserved
  4. The app reloads with the restored data
⚠️

Restoring overwrites all current local data. Make sure to create a backup of your current data first if there is any risk of needing it.

⚙️Admin Settings

Admin-only settings are available under System in the main navigation.

📞Contact & Support

🔧 Technical Issues

For any technical problems, configuration questions, or feature requests, contact the administrator.

🔐 Credentials & Access

For password resets, new accounts, or access level changes, contact the administrator. For security reasons, credentials are not published in this document.

☁️ Cloud Sync & Server

For sync configuration, server URL, or token information, contact the administrator. Server credentials are not included in this document.

📱 App Installation

To install WIM as a standalone app on your device, open it in Chrome or Safari and look for the "Install" or "Add to Home Screen" option in the browser menu. The app will then work offline like a native application.

ℹ️

WIM is a bespoke application built for this workshop. It has no external support line. All questions should be directed to the administrator.