Earlier founder work · not a customer case

MiTA kept a building in two directions, until installation became the product.

A short recording, a building class, and a place became a damage estimate. The question that mattered next was not whether the formula could take another parameter. It was whether someone could turn the device on without a developer in the room.

What this page is, and what it refuses to be

MiTA is earlier work by Sina Esfahani. The first backend starts on 7 January 2022, before OmniTechs was founded in March 2023. The Netherlands rewrite is 219 commits from 23 February to 12 July 2023. The headless device is 13–15 July 2023. The monolith read for this page has 1,379 commits through 2 July 2023.

This is not a customer case, not a current product, and not a structural inspection. The score bands and weights are what the code does. They do not replace an engineer, and this page does not describe repositories that could not be opened.

How a recording became a label

The drawing explains the code. It is not a screenshot and not a measurement of a real building. X and Y are the two horizontal directions of the plan, not height.

X / Y
Two horizontal directions. Y here is not height.
475 / 2475
Two shaking levels stored in the code. The line is an example, not a recording.
The boundaries come from get_damage_state. Only exactly 0 is complete. A negative score stays undefined.

Labels in the Netherlands rewrite

The boundaries come from get_damage_state. Only exactly 0 is complete. A negative score stays undefined.
ScoreLabel in the code
> 15no damage
> 10 through 15slight
> 5 through 10moderate
> 0 through 5extensive
exactly 0complete
otherwiseundefined

What changed, and when

  1. First commit of the Django backend. The calculation and the administration then grow in the same process.

  2. Acceleration data for other parts of the Netherlands lands in the monolith.

  3. The Netherlands rewrite starts: separate apps, and a Next.js structure the same day.

  4. Last monolith commit read locally. 1,379 commits.

  5. Last rewrite commit read locally. 219 commits.

  6. sensor_network: hostname mita, SSH on, and two days spent mostly repairing the install.

The work the software did

Two horizontal axes, two return periods, one score

A building carried a construction year, a storey count, an occupancy, and a frame in two horizontal directions. A recording could carry a device identifier, a place, and a run of samples. Each place held two accelerations, a475 and a2475: a more expected level of shaking and a rarer, heavier one. In February 2023, acceleration data for other parts of the Netherlands was added.

The rewrite calculates each axis, keeps the weaker side of several partial scores, then weights them 0.64, 0.10, and 0.26. A guard rejects a result in which the rarer level outweighs the combined score. Above 15 the label is no damage, above 10 through 15 slight, above 5 through 10 moderate, above 0 through 5 extensive, and only exactly 0 is complete. Anything else stays undefined. That is a boundary in the model, not a standard.

January 2022 to July 2023

The first backend became a company inside one process

The monolith is one Django project with 1,379 commits. Beside the calculation sit users, payments, subscriptions, coupons, support tickets, and translations. There are two different Analysis models, a folder named exception and another named exeptions, and the background worker in the compose file is commented out. Facade and factory patterns showed up inside the same pile.

The pile shows a product trying to become a service, not only a spreadsheet. An Iranian payment package and a PDF link aimed at another domain belong to that earlier commercial attempt. Credentials sitting in old deploy files do not belong on this page.

23 February 2023

The rewrite pulled the domain apart

Mita_The_Netherlands starts the same day with a Django structure and a Next.js structure. Country, building, building class, recording, analysis, notification, and payment become their own apps. Analysis runs through an interface, a service, and a background task, and a failed calculation is stored on the recording instead of disappearing. The results route in the frontend is split into chart, summary, and vulnerability modules.

Settings name app.clever-safety.ir. An older admin helper points a PDF at app.clever-safety.com. This case does not treat either address as a product you can open now. The rewrite is a modular monolith with an explicit boundary between apps. That is the structural work that could be read.

What was not opened

Mobile, microservices, and the website stay closed

The founder describes a mobile phase after the backend, then a period when the code tangled, then a microservice attempt. The repositories Mita_mobile, MiTA_mobile_new, MiTA_microservice, and MiTA-website could not be opened for this text. Their internal design is not described here.

What did open is the Next.js results application in the Netherlands tree, not a native app whose screens could be reconstructed. An .expo directory in the monolith is not evidence of a shippable app. The lesson that still stands: another service layer does not install a measurement in a building.

13–15 July 2023

The device was mostly an install that had to succeed

sensor_network is a much smaller Django project. It stores construction year, frame type on X and on Y, and occupancy. Gunicorn sits behind nginx. The first-boot script sets the hostname to mita and turns SSH on. The commit history of those two days is almost entirely install repair: virtualenv, permissions, nginx, static files.

raspberry_headless is a short public imaging guide: Raspberry Pi Imager, Lite, an ssh file, Wi-Fi. mita_automation is a different thing. That public repository prepares a server disk, with swap and /var, and expects a GitHub token in the environment. One command still hid disks, permissions, and a secret. The Pi image and the server script are two separate attempts to make installation less personal.

For a buyer

This proves judgment, not a package

If you have a measurement, a process, or a device that someone must start without a developer beside them, the order is familiar. Make the domain small enough to calculate. Pull the pile apart when payments, tickets, and the calculation are in each other's way. Only then make installation the product, and believe the commit log when it is mostly permissions and nginx.

MiTA cannot be ordered. A comparable commission starts from the work that must stay true when the formula, the app, or the enclosure changes. Custom software is the route OmniTechs uses to investigate that now. A Raspberry Pi information screen is a different product and stays on its own Lab page.

Do you recognise the installation, not only the formula?

Describe who has to start the system, what is measured or handed over, and where it still waits for a developer. Then we can see whether a smaller first slice is the responsible one.