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
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