FEW Cutting Tools
'n Webwerf, 'n winkel, 'n verkoopspaneel en 'n fabriek-sakrekenaar op een API.
French Engineering Works maak snygereedskap in Suid-Afrika. Ek herbou hul webteenwoordigheid as een Laravel-API met vier Vue-apps, en skuif hul fabrieksberekeninge van 'n ou Windows XP-rekenaar af voordat dit opgee.
- Rol
- Ontwerp, bou en ontplooiing
- Stack
- Laravel 13
- PostgreSQL 17
- Redis
- Sanctum
- Vue 3
- TypeScript
- Tailwind CSS v4
- Docker
- Cloudflare Tunnel
- Skakels
- few.co.za (huidige werf)Demo (toegang op aanvraag)
Die demo is agter 'n aanmelding. Vra my vir toegang.
Die probleem
FEW het 'n WordPress-webwerf gehad, 'n gedrukte katalogus, kwotasieversoeke per e-pos en telefoon, en 'n stel fabrieksberekeningsprogramme in Eloquence BASIC. Daardie programme loop op een enkele Windows XP-rekenaar. Baie min mense lees nog Eloquence, en niemand wil uitvind wat gebeur as daardie masjien eendag nie meer aanskakel nie.
Wat ek gebou het
Een Laravel 13-API op PostgreSQL en Redis, met vier Vue 3 + TypeScript-enkelbladsy-apps daarbo:
- Die webwerf, met takke, kantoorure, gereelde vrae en aflaaie wat van die API af kom.
- 'n Aanlyn winkel: die gedrukte katalogus as data (een lêer per katalogusbladsy), soek op naam, katalogusbladsy of FEW-kode, 'n kwotasielys in plaas van 'n mandjie, en kliëntrekeninge wat die status van elke versoek wys.
- 'n Verkoopspaneel waar personeel kwotasieversoeke hanteer, wysig en interne notas hou. Elke verandering word in die versoek se geskiedenis bewaar, met wie dit gedoen het en wanneer.
- 'n Personeel-sakrekenaar wat die oorgedraagde fabrieksprogramme op die bediener laat loop, agter 'n aanmelding.
Die moeilike deel
Die sakrekenaar moet presies dieselfde antwoorde gee as die ou programme, foute en al. Daarom het ek eers gedokumenteer hoe Eloquence afrond en invoer lees voordat ek enigiets oorgedra het, en ek dra een program op 'n slag oor, elkeen met toetse teen die oorspronklike se uitvoer.
Waar die ou kode verkeerd lyk, maak ek dit nie stilletjies reg nie. Elke vermoede gaan op 'n bevindingelys waaroor FEW besluit, van 'n ontbrekende komma in 'n datalys tot 'n veranderlike wat nooit 'n waarde kry nie. Die getalveld aanvaar selfs somme soos “16 + 0.381”, want so het die personeel in die ou program getik.
Ingenieursnotas
- Ses repositories: API, vier front-ends en devops, met eenopdrag-opstelling in Docker.
- Aparte PostgreSQL-skemas per domein (content, accounts, catalog, sales, calculator).
- Sanctum-koekie-aanmelding met aparte guards vir kliënte en personeel; die API dwing admin-regte af.
- Publieke endpoints met 'n spoedlimiet, en 'n honeypot op die kontakvorm.
- Produksie-images agter 'n Cloudflare Tunnel; 'n push na main ontplooi die demo.