Work projectAvenue Group

OKKP Operations Platform

Lead developer on the project · 2025

An internal quality-control web system for a network of 9 vehicle depots. I designed the architecture and API and wrote most of the code: violations and fines, employees, a document archive and Excel export.

Private code · NDA

Frontend

React + TypeScript · SPA · Vite · Tailwind
REST · JWT

API

Node.js / Express 5 · REST API
  • Auth · JWT
  • Employees
  • Violations
  • Call-backs
  • Archive
documents · media

Data

MongoDB · Mongoose
Cloudinary · media · local fallback
OKKP Operations Platform preview
The code is private (NDA), so this diagram shows the architecture I built.Open full size

Problem

Avenue Group's 9 vehicle depots needed one internal system to record violations and fines, keep employee records and produce reports without a developer.

Solution

A React + TypeScript SPA on a Node.js / Express API and MongoDB, with server-side filtering, a Cloudinary document archive, JWT sign-in and in-browser Excel export, deployed with Docker Compose and CI on GitHub Actions.

Result

Deployed on the company's Linux server; staff filter violations and export reports to Excel on their own.

Overview

At Avenue Group I was the lead developer on OKKP, an internal quality-control web system for a network of 9 vehicle depots, in a team of three. I designed the architecture and the API and wrote most of the code (~177 of 183 commits in 2025 across the project's three repositories).

The stack is a React 18 + TypeScript single-page app (Vite, Tailwind CSS), a Node.js / Express 5 REST API and MongoDB (Mongoose). The core is the violations and fines module: server-side filtering by name, department, type, status, depot and period, pagination, photo and video attachments, and deletion confirmed by password. Around it sit modules for employees, driver call-backs, a document archive on Cloudinary with a local-disk fallback, and in-app notifications. Sign-in uses JWT (bcrypt), by email or phone.

The home page shows KPI tiles per depot, and violations, employees, driver calls and the depot summary export to Excel right in the browser. Deployment is Docker Compose (MongoDB + API) on a Linux server behind a reverse proxy, with CI on GitHub Actions.

What it does

  • Violations and fines module with server-side filtering (name, department, type, status, depot, period) and pagination
  • Employee profiles with photo, contract and questionnaire uploads; driver call-backs; in-app notifications
  • Document archive on Cloudinary with a local-disk fallback
  • Per-depot KPI tiles and in-browser Excel export (SheetJS)

What's next

Hiring for a full-stack or Python role — or need something like this built? Let's talk.

I'm open to offers — on-site or hybrid in Moscow, or remote; full-time or contract. I reply within 48 hours — faster on Telegram.

Get in touch TelegramDownload CV

Alhassan Alfarran.

© 2026 · Designed and built by me with Next.js, Tailwind and Framer Motion.

My local time: · Moscow

Notes
How this site is built

Stack

Next.js (App Router) and React, styled with Tailwind CSS and animated with Framer Motion. The contact form sends email through Resend; the site is hosted on Vercel.

Three languages, one layout

English, Russian and Arabic each have their own address (/en, /ru, /ar) and share one set of components. The layout uses logical CSS properties (start/end instead of left/right), so Arabic mirrors right to left without separate styles. The server sends every page with its language and text direction already set, so nothing flips after loading, and the Arabic font is only downloaded when Arabic text is on screen.

Performance and accessibility

Sections below the first screen skip rendering until you scroll near them, and the quick menu loads on first use. Everything works from the keyboard, with a skip link and visible focus, and animations switch off when your system asks for reduced motion.

Source code on GitHub