Skip to content
All work
Full-stack platform2026Academic project · Jan – May

5ademni.tn

A freelancing marketplace with two faces — desktop and web — sharing one domain.

A freelancing platform built as a JavaFX desktop application and a Symfony 6.4 web application over one shared domain model and MySQL database. I worked on the gigs module across both clients.

Full-stack platform02

5ademni.tn

01

The problem

A freelancing marketplace only works when freelancers can publish services clearly and clients can find them without noise. Keeping those rules coherent across a desktop client and a web app adds a second layer of complexity.

02

The approach

Build one platform with two front doors — a JavaFX desktop app and a Symfony web app — over a shared domain and database, with accounts, gigs, applications, contracts, payments, messaging and Face ID authentication.

03

What I built

  • ✱Gig creation, editing and browsing across both the desktop and web clients
  • ✱Search, category/status filters and dashboard statistics for managing listings
  • ✱AI-assisted gig generation, price suggestions and content moderation services
  • ✱Approval and email notification flow for newly published gigs
  • ✱Shared MySQL schema and domain model used by both versions
04

Challenges

01

Keeping gig states, validation and business rules consistent between JavaFX and Symfony

02

Moderating user-generated listings with spam detection, bad-word checks and manual approval

03

Integrating the gigs module with the wider platform's contracts, payments, messaging and Face ID flows

05

What I learned

  • ✱How much of a feature lives in the domain model rather than the interface
  • ✱Working across Java, PHP and Python in one product
  • ✱Designing moderation and approval into a marketplace from the start

Where it landed

A gigs module working in both clients — covering creation, discovery, search, statistics, moderation and approval — as part of the wider 5ademni.tn platform.

06

What I'd improve next

A shared API contract between the desktop and web clients, plus automated tests around gig status transitions.

05Contact

Let's make something worth remembering.

I'm always up for a conversation about cloud security, infrastructure, thoughtful engineering, or a project that needs an extra pair of careful hands. The best way to reach me is email — I read everything.

emna.bouraoui0822@gmail.com

Currently open to internships and junior roles in cloud, security and infrastructure. Response time varies with coursework, but I aim to reply within a few days.