DEV Community

Andres Ortiz
Andres Ortiz

Posted on

Real-life project: web platform for scheduling and recording microinjections in mesotherapy sessions

Ever worked on something where, halfway through, you think: “Why doesn’t this exist already?” That was me building a platform to manage mesotherapy sessions—scheduling, recording, tracking microinjections. You know, the stuff that doesn’t sound glamorous until you see it actually working.

This project came from a real need. A client running a clinic offering Mesotherapy Chicago IL reached out. They were still using paper charts. Yep, real paper. In 2025. Wild.

Mesotherapy Chicago IL

The Problem

I once shadowed a session just to get a feel for it. The nurse had sticky notes—like actual ones—marking injection areas. You’d think this was a skit. That’s when I knew we had to build something smarter.

5 Key Ideas Behind the Platform

  • Session Scheduler with visual calendar
  • Digital face/body injection mapping tool
  • Role-based access for staff/admins
  • Secure patient history tracking
  • Exportable reports for compliance

Let me show you how we made it real.

Step 1: Set Up the Backend

npm init vite@latest meso-app -- --template react
cd meso-app
npm install express mongoose cors dotenv
Enter fullscreen mode Exit fullscreen mode

Step 2: Build Patient Models (MongoDB)

const mongoose = require('mongoose');
const PatientSchema = new mongoose.Schema({
  name: String,
  dob: Date,
  sessions: Array
});
module.exports = mongoose.model('Patient', PatientSchema);
Enter fullscreen mode Exit fullscreen mode

Step 3: Create the Scheduler API

app.post('/api/schedule', async (req, res) => {
  const { patientId, date, treatment } = req.body;
  // Save session to DB
});
Enter fullscreen mode Exit fullscreen mode

Step 4: Add Injection Mapping

<div className="face-map" onClick={handleClick}>
  <img src="/face.jpg" alt="Injection map" />
</div>
Enter fullscreen mode Exit fullscreen mode

Step 5: Record Microinjections

const injectionPoint = { x: e.clientX, y: e.clientY, timestamp: Date.now() };
session.injections.push(injectionPoint);
Enter fullscreen mode Exit fullscreen mode

Step 6: Authentication Layer

const jwt = require('jsonwebtoken');
function verifyToken(req, res, next) {
  const token = req.headers['authorization'];
  if (!token) return res.sendStatus(403);
  jwt.verify(token, process.env.JWT_SECRET, (err, decoded) => {
    if (err) return res.sendStatus(401);
    req.user = decoded;
    next();
  });
}
Enter fullscreen mode Exit fullscreen mode

Step 7: Build Admin Dashboard

<Route path="/admin" element={<AdminPanel />} />
Enter fullscreen mode Exit fullscreen mode

Step 8: Generate PDF Report

const PDFDocument = require('pdfkit');
const doc = new PDFDocument();
// Add text and points, then stream to response
Enter fullscreen mode Exit fullscreen mode

Step 9: Patient Search Component

<input type="text" placeholder="Search patient..." onChange={handleSearch} />
<ul>{patients.map(p => <li>{p.name}</li>)}</ul>
Enter fullscreen mode Exit fullscreen mode

Step 10: Notifications and Alerts

if (appointmentToday) {
  toast.success("You have a session scheduled today!");
}
Enter fullscreen mode Exit fullscreen mode

What Made It Work

We used React + Node.js, MongoDB for data, and simple JPEG overlays for injection zones. Not fancy, but super effective.

One of the nurses literally asked if I had experience with Mesotherapy Chicago clinics before. I hadn’t. I just listened.

And another client? They asked if we could scale it for Mesotherapy in Chicago providers citywide. That was the moment it clicked—we weren’t just solving a one-off problem.

Why You Might Wanna Try Something Similar

  • It’s a real-world use case that isn’t a to-do app
  • You’ll work across backend/frontend/auth/reporting
  • You’ll learn how to solve real workflow problems
  • And it feels dang good to build something people actually need

Final Thoughts

Give this a shot—especially if you're tired of tutorials and want something that hits different.

Work with someone in healthcare. Or beauty. Or clinics. There's always something chaotic that tech can clean up.

You’ll be surprised how much your code can matter.

Top comments (0)