Skip to content
Duku Constantin

Project / 2025

DiveIn

Platform connecting youth organizations and young people through opportunities.

Role
Owner. 66 of 74 commits are mine.
Team
Team of 8.
  • Vite
  • React
  • TypeScript
  • Tailwind
  • shadcn/ui
  • Supabase
  1. Problem
  2. What I built
  3. Result
  4. In the code
  5. Size

01

Problem

Civic and educational opportunities for young people in Romania are spread across many places. DiveIn gathers them in one.

02

What I built

Two roles, organization and talent, each with its own dashboard. Access rules live in the database as row level security. Business rules sit in one config file.

03

Result

A site where organizations post and edit opportunities, talents create profiles and apply, and organizations manage their applications. The interface is in Romanian. It brought together more than 50 opportunities and reached 170+ young people.

04

In the code

  • Roles are defined once and drive both dashboards.

    src/lib/roles.ts

  • Row level security covers organizations, opportunities and applications.

    supabase/migrations/20250805094022_02188b35-d8d3-4175-93ac-1d492a07249e.sql

  • Reactivating an expired opportunity extends its date by 7 days, set in one config file.

    src/config/business-rules.ts

05

Size

  • 74 commits
  • 19 routes
  • 4 migrations

← All work