All projects
B
Music / Gaming

Node.js/Express/Sequelize, Next.js, MySQL, Dgraph-to-MySQL migration, Docker/CI

Built a Node.js/Express/Sequelize API to replace the original Laravel/Dgraph monolith, migrated the data model to a relational MySQL schema, added OAuth/JWT authentication, PayPal payments, and Docker/CI containerization. Next.js frontend.

Node.js Backend
MySQL Database
Dgraph Migration
Lead Role

The core of the project was building a Node.js/Express/Sequelize API meant to replace the existing Laravel/Dgraph monolith. I analyzed the original Laravel routes and models to define what the new API had to reproduce, after weighing several architectural approaches (including a breakdown into microservices) before settling on a unified Express API. The Next.js frontend provides server-side rendering for SEO and smooth client-side navigation.

Migrating the data model from Dgraph to MySQL was a major undertaking. The initial graph database modeled the complex relationships well (artist-track-competition-vote-ranking) but caused performance and maintenance problems. Flattening it into a relational MySQL schema, via Sequelize migrations, improved query times and simplified backups.

Artist ranking relies on an existing ELO-style system that I reworked and extended. Each artist's score evolves according to their competition results, weighted by the level of their opponents, for more balanced contests and fair progression regardless of seniority on the platform.

Technical architecture

Node.js/Express/Sequelize API replacing the original Laravel/Dgraph monolith.

MySQL schema migrations (beats, playlists, purchases, genres) via Sequelize.

OAuth/JWT authentication (Google, Facebook, Apple, Twitter) and PayPal payments.

Migration of the data model from Dgraph (graphs) to a relational MySQL schema.

Took over and extended an existing ELO-style scoring system (weighted rankings).

Docker containerization and a continuous integration (CI) pipeline.

Contributed to planning the frontend migration from React to Next.js.

Technical highlights

Migration

Dgraph to MySQL

Node/Express

Replacement API

OAuth / JWT

Auth and PayPal payments

Technical stack

Node.js
Next.js
MySQL
Sequelize
Dgraph
Docker
Laravel
PHP
Role Tech Lead
Duration 2022-2023
Engagement Long-term contract (Tier B)

A similar technical engagement?

A brief, a repo, or a quick call - whatever works.